空间在声明样式规则的两种方式之间有什么不同

时间:2013-06-22 19:36:10

标签: css css-selectors

这两个版本之间的功能差异是什么:

#someID.SomeClass a

#someID .SomeClass a

所有格式差异都是在#someID.SomeClass之间插入一个空格。当我在观看教程时,人们有时会做空间,有时候不会,所以我不确定它是否意味着什么,或者只是代码设计。

谢谢!

4 个答案:

答案 0 :(得分:6)

#someID.SomeClass选择标识为someID SomeClass的元素。

#someID .SomeClass选择类SomeClass 的元素,而 的父级ID为someID

答案 1 :(得分:5)

#someID.someClass a

将选择上面的元素a。但它不会选择下面示例中的元素。

这个表明someClass是一个具有id someID的同一元素的类。然后包含在此元素中(任意数量的级别)将是元素a

示例:

<div id="someID" class="someClass">
  ...
  <a ...> </a>
</div>

#someID .someClass a

这个表明你有一个标识为someID的元素,然后有一些级别,那里有一个类someClass的元素,最后,一些更低级别,你有元素{{1} }。

示例:

a

将选择上面的元素<div id="someID"> ... <div class="someClass"> ... <a ...> ... </a> </div> </div>

答案 2 :(得分:1)

#someID.SomeClass a表示元素下的标记,其中someID为id ,同时为类的SomeClass,而#someID .SomeClass a表示某个元素下的标记为“ SomeClass“本身在另一个元素下 与”someID“

答案 3 :(得分:1)

这是来自w3.org - 非常有趣的阅读(示例)

要匹配“class”值的子集,每个值必须以“。”开头。

例如,以下规则匹配任何P元素,其“class”属性已分配了包含“pastoral”和“marine”的空格分隔值列表:

p.marine.pastoral { color: green }

当class =“pastoral blue aqua marine”时,此规则匹配,但与class =“pastoral blue”不匹配。

请注意。 CSS为“类”属性提供了如此强大的功能,作者可以设想基于几乎没有相关表示的元素(例如HTML中的DIV和SPAN)设计自己的“文档语言”,并通过“类”属性分配样式信息。作者应该避免这种做法,因为文档语言的结构元素通常具有公认和接受的含义,作者定义的类可能没有。

注意:如果元素具有多个类属性,则在搜索类之前,它们的值必须与值之间的空格连接。到目前为止,工作组还没有意识到可以达到这种情况的任何方式,因此这种行为在本说明书中明确是非规范性的。