我看过语法:
ul#nav li a
{
}
我不确定这意味着什么,就像说:
#nav ul li a
我想我真的不明白在没有空格的id选择器之前有一个元素类型是什么意思...
答案 0 :(得分:7)
ul#nav
将适用于<ul id="nav">
,而:
#nav ul
将适用于 <ul>
<tag id="nav">
答案 1 :(得分:6)
ul#nav li a
将选择:
<a>
元素...... <li>
元素...... <ul>
且id
属性等于nav
。它不会选择任何非<ul>
元素的后代,即使它是id
nav
。
它有点多余,因为ID是唯一的。出于所有实际目的,#nav li a
将会这样做。
是否与说
相同#nav ul li a
?
请注意,#nav ul li a
不一样,如果a
的后代li
,这会选择ul
中的nav
标识为<div id="nav">
<ul>
<li><a>This would be selected</a></li>
</ul>
<div>
<ul id="nav">
<li><a>This would not be selected</a></li>
</ul>
的元素。
a#message.error.active[rel="foobar"]:hover {}
我想我真的不明白在没有空格的id选择器之前有一个元素类型是什么意思...
您可以在一个元素上组合多个选择器。这是一个愚蠢的例子:
<a>
这会在id="message"
元素悬停时选择error
元素,只有当它具有类active
以及类rel
时,它才会{ {1}}属性为foobar
。
这里解释了基础知识:http://www.w3.org/TR/CSS2/selector.html
答案 2 :(得分:1)
在具有ID“nav”
的无序列表中的列表项内选择一个锚所以
<ul id='nav'>
<li>
<a href='test.com'>Test</a>
</li>
<ul>
<ul>
<li>
<a href='test.com'>Test</a>
</li>
<ul>
它会与第一个Anchor匹配,而不是第二个。
它与第二个不同,如果它完全有用,它只匹配UL的父母ID为'nav'的地方。
答案 3 :(得分:1)
值得注意的是,虽然tag#id_name
语法是多余的,因为id是唯一的,但在处理类时该语法很有用。
ul.nav li { }
可用于区分同一类的多个标签。
像这样:
<ul class="nav">
<li>Stuff</li>
</ul>
<ol class="nav">
<li>First Item</li>
</ol>
ul.nav li { }
会影响“Stuff”
ol.nav li { }
会影响“第一项。”