选择器div.red > p
和div.red p
之间有什么区别?
请指出这些CSS选择器之间的主要区别。
<div class="red"><p></p><div class="blue"><p></p></div>
第一个选择器是否只选择第一个<p>
元素?
答案 0 :(得分:4)
答案 1 :(得分:1)
最简单的解释方法就是制作一个简单的DEMO。
<强> HTML 强>
<div id="id">
<p>First text</p>
<div>
<p>Second text</p>
</div>
</div>
<强> CSS 强>
div#id > p { background: red; }
div#id p { color: green; }
只有第一个文字有红色背景,因为>
只接受p
的直接子项div#id
。第二个不匹配,因为div
和div#id
之间还有另一个p
。
但是,它们都是绿色的,因为无论文档对象模型有多深,div#id p
都匹配p
后代的所有div#id
。
答案 2 :(得分:0)
第一个选择器显示“所有p
标记,它们是div
的直接子标记”。第二个是“p
内的所有div
个标签,无论他们是否是儿童,孙子”等等。
答案 3 :(得分:-1)
考虑以下HTML:
<div>
<p>1</p>
<p>
<p>2</p>
<p>3</p>
</p>
<p>4</p>
</div>
<p>5</p>
div > p
只会选择直接后代:1,4和嵌套了p
个元素的后代。
div p
将选择div中的所有p标签:1 2 3 4。