div.red > p
选择器和选择器有什么区别div.red p
?
请指出这些 CSS 选择器之间的主要区别。
HTML
<div class="red"><p></p><div class="blue"><p></p></div>
第一个选择器是否只选择第一个<p>
元素?
解释这一点的最简单方法是制作一个简单的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
. 第二个不匹配,因为在anddiv
之间还有另一个。div#id
p
但是,它们都是绿色的,因为无论文档对象模型的深度如何,都div#id p
匹配 的所有p
后代。div#id
第一个选择器说“所有p
标签都是div
”的直接子级。第二个说“p
里面的所有标签div
,不管他们是孩子,孙子”等等。
考虑以下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。