我有一些类似的东西:
<ul id="list-cats">
<li><img src="..." alt="" /><a href="#">test 1</a></li>
<li><img src="..." alt="" /><a href="#">test 2</a></li>
<li><img src="..." alt="" /><a href="#">test 2</a></li>
</ul>
ul#list-cats li {border:1px solid red;}
ul#list-cats li li {border:1px solid cyan;}
这是来自W3C文档:
E + F
匹配任何紧跟在兄弟元素e前面的F元素
为什么不是所有其他<li>
标签得到一个青色的边界?
PS:我知道这可以使用:first-child
选择器完成,但我想把这个问题弄清楚。
因为您根本没有使用+
选择器。
我想你是想写
ul#list-cats li + li {border:1px solid cyan;}
/* ^^^ */
将为所有li
提供青色边框,除了第一个(前面没有li
,因为它是第一个)。
您的CSS选择所有li
标签,这些标签是li
标签的后代:
ul#list-cats li li {border:1px solid cyan;}
没有嵌套的li
标签,所以选择器不会找到任何元素。
你的意思是包括一个+
在那里吗?