命名空间 | @namespace
@namespace url(http://www.w3.org/1999/xhtml);
@namespace svg url(http://www.w3.org/2000/svg);
/* This matches all XHTML <a> elements, as XHTML is the default unprefixed namespace */
a {}
/* This matches all SVG <a> elements */
svg|a {}
/* This matches both XHTML and SVG <a> elements */
*|a {}
任何@namespace
规则都必须遵循所有@charset和@import规则,并且在样式表中的所有其他规则和样式声明之前。
@namespace
可以用来定义样式表的默认名称空间。定义默认名称空间时,所有通用类型选择器(而不是属性选择器,请参阅下面的注释)仅适用于该名称空间中的元素。
该@namespace
规则也可以用来定义一个名称空间前缀。如果通用类型或属性选择器的前缀是名称空间前缀,那么只有当元素或属性的名称空间和名称匹配时,该选择器才会匹配。
注意:在XML中,除非直接在属性(例如,xlink:href
)上定义前缀,否则该属性没有名称空间。换句话说,属性不会继承它所在元素的名称空间。要匹配此行为,CSS中的默认名称空间不适用于属性选择器。
语法
/* Default namespace */
@namespace url(XML-namespace-URL);
@namespace "XML-namespace-URL";
/* Prefixed namespace */
@namespace prefix url(XML-namespace-URL);
@namespace prefix "XML-namespace-URL";
形式语法
@namespace <namespace-prefix>? [ <string> | <url> ];where
<namespace-prefix> = <ident>
规范
Specification | Status | Comment |
---|---|---|
CSS Namespaces ModuleThe definition of '@namespace' in that specification. | Recommendation | Initial definition |
浏览器兼容性
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 1.0 | (Yes) | 1.0 (1.7 or earlier) | 9.0 | 8.0 | 1.0 |
Namespace selector (|) | 1.0 | (Yes) | 1.0 (1.7 or earlier) | 9.0 | 8.0 | 3.0 |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | ? | ? | (Yes) | ? | ? | ? | ? |
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com