Css 为什么要指定html名称空间?

Css 为什么要指定html名称空间?,css,firefox,css-selectors,xml-namespaces,Css,Firefox,Css Selectors,Xml Namespaces,通过研究Mozilla的Firefox代码,我进一步加深了对CSS的理解 在browser.css中,代码如下: .ac-tags文本[选定]>html | span.ac-tag{ 背景色:hsl(0,0,100%); 颜色:hsl(210,80,40%); } html | span.ac-emphasis-text-title, html | span.ac-emphasis-text-tag, html | span.ac-emphasis-text-url{ 字号:600; } 反复

通过研究Mozilla的Firefox代码,我进一步加深了对CSS的理解

browser.css
中,代码如下:

.ac-tags文本[选定]>html | span.ac-tag{
背景色:hsl(0,0,100%);
颜色:hsl(210,80,40%);
}
html | span.ac-emphasis-text-title,
html | span.ac-emphasis-text-tag,
html | span.ac-emphasis-text-url{
字号:600;
}
反复使用
html | span
,而不仅仅是
span

通过指定
html
名称空间,其他哪些名称空间受到保护

如果需要指定名称空间,为什么不在CSS代码中的任何地方指定名称空间

通过指定
html
名称空间,其他哪些名称空间受到保护

如果您询问browser.css中的默认名称空间是什么,那么它就是XUL名称空间。您可以在样式表顶部附近找到通常需要的名称空间声明:

@命名空间url(“http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
@命名空间html url(“http://www.w3.org/1999/xhtml");
@名称空间svg url(“http://www.w3.org/2000/svg");
由于默认名称空间是XUL,而不是HTML,所有匹配HTML元素的类型选择器都必须包含
HTML |
名称空间前缀,否则它们将尝试匹配默认名称空间中的元素

如果需要指定名称空间,为什么不在CSS代码中的任何地方指定名称空间

如果您询问为什么没有为
[selected]
属性选择器之类的对象指定它,那是因为该属性(以及其他一些属性)是默认名称空间的一部分,而不是HTML名称空间

如果您询问为什么没有为
.ac tags text
类选择器之类的对象指定它,请记住,没有显式类型选择器或通用选择器的复合选择器伴随着隐式
*
。回想一下你之前的一个问题

指定默认名称空间时,
*
仅匹配默认名称空间中任何类型的元素。这将防止默认名称空间之外的元素(如HTML和SVG元素)与选择器匹配,即使它们碰巧具有相同的类名

通过指定
html
名称空间,其他哪些名称空间受到保护

如果您询问browser.css中的默认名称空间是什么,那么它就是XUL名称空间。您可以在样式表顶部附近找到通常需要的名称空间声明:

@命名空间url(“http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
@命名空间html url(“http://www.w3.org/1999/xhtml");
@名称空间svg url(“http://www.w3.org/2000/svg");
由于默认名称空间是XUL,而不是HTML,所有匹配HTML元素的类型选择器都必须包含
HTML |
名称空间前缀,否则它们将尝试匹配默认名称空间中的元素

如果需要指定名称空间,为什么不在CSS代码中的任何地方指定名称空间

如果您询问为什么没有为
[selected]
属性选择器之类的对象指定它,那是因为该属性(以及其他一些属性)是默认名称空间的一部分,而不是HTML名称空间

如果您询问为什么没有为
.ac tags text
类选择器之类的对象指定它,请记住,没有显式类型选择器或通用选择器的复合选择器伴随着隐式
*
。回想一下你之前的一个问题

指定默认名称空间时,
*
仅匹配默认名称空间中任何类型的元素。这将防止默认名称空间之外的元素(如HTML和SVG元素)与选择器匹配,即使它们恰好具有相同的类名。

您所说的“everywhere”到底是什么意思?您所说的“everywhere”到底是什么意思?