标签和 class 之间的 space 有多重要?

how important the space between tag and class?

我阅读了 http://www.w3.org/TR/CSS21/selector.html#class-html 的相应部分,但找不到明确的注释,即点-class 和标签之间的 space 改变了含义。根据规范 tag.clazz 等同于 tag[class~="clazz"],我希望 tag .clazz 等同于 tag *.clazz。是真的吗?

I expect that tag .class is equivalent to tag *.clazz. Is that true?

没有。这是因为classclazz不一样。

但是,如果您指的是 tag .clazztag *.clazz,那么是的。

解释:

  • tag .clazz 表示某处带有 class clazz 的任何元素 在标签 tag.
  • tag *.clazz 表示在标签 tag.[=35= 的某处带有 class clazz 的任何标签名称 (*) 的任何元素]

…实际上是相同的。 space 本质上意味着“内部某处”。

5.2 - Selector syntax

A simple selector is either a type selector or universal selector followed immediately by zero or more attribute selectors, ID selectors, or pseudo-classes, in any order. The simple selector matches if all of its components match.

Note: the terminology used here in CSS 2.1 is different from what is used in CSS3.

A selector is a chain of one or more simple selectors separated by combinators. Combinators are: white space, ">", and "+". White space may appear between a combinator and the simple selectors around it.

因此类型选择器和 class 选择器之间的 space 是 descendant combinator