下面我对css的想法是:将所有img元素与包含值“left”和p元素的后代的class属性匹配。这是对的吗?
p img.left { float: left; margin: 0.9em 0.9em 0.9em 0; padding: 0; }
答案 0 :(得分:2)
是的,这是完全正确的;您的选择器将match both img
elements:
<p>
<img class="left" src="http://lorempixel.com/200/200/nightlife" />
<span><img class="left" src="http://lorempixel.com/300/300/nature" /></span>
</p>
如果您只想选择img.left
代码的第一级p
后代,则可以:
p > img.left {
/* CSS */
}
这将 与所包含的img
中的span
匹配。
同样,您只能匹配img
中的span
:
p span img,
p span > img,
span img,
span > img {
/* CSS */
}
参考文献:
答案 1 :(得分:1)
你是对的。
p img.left {}
<强> HTML:强>
<p>
<img class="left" /> * MATCHES THIS *
<img /> * NOT THIS *
</p>
<div>
<img class="left" /> * NOT THIS *
<img /> * NOT THIS *
</div>
<p>
<img class="left" /> * MATCHES THIS *
<img /> * NOT THIS *
<span>
<img class="left" /> * ALSO MATCHES THIS *
<img /> * NOT THIS *
</span>
</p>
使用p > img.left {}
,它与img
div
内的p
不匹配