有人能向我解释为什么这不起作用吗?
<html>
<head>
<style>
body:first-child
{
color:#f00;
}
</style>
</head>
<body>
<div>I should be red.</div>
<div>This is not red.</div>
</body>
</html>
根据我所读到的内容,第一个子选择器应该从body标记中选择第一个div对象。如果它没有选择div元素,那么它选择的是什么?
body:first-child
中的:first-child
伪类对body标记进行操作,因此它是将要选择的父级的第一个子级的body标记,如果您希望body
的第一个子项使用子级选择器
body > :first-child{
color:#f00;
}
这将给你身体的第一个孩子。
要针对第一个div,需要执行body div:first-child
。现在(我想)你只是在选择第一个孩子的身体。(事实上,我不完全确定你现在选择的是什么,仔细想想。我认为first-child
选择器不能直接挂在body标签上。)
body div:first-child {
color:#f00;
}
这个CSS会按照你的期望给它上色。将其读取为"body的第一个子div"。
您的CSS表示,选择任何BODY元素,该元素是其父元素(即HTML元素)的第一个子元素。BUt HEAD是第一个孩子,而不是BODY。
至少我认为这是正确的:-)
要瞄准body
的第一个div
,可以使用
body div:first-of-type {
/* style */
}