:first-child的坑

:first-child的坑

:first-child 选择器用于选取属于其父元素的首个子元素的指定选择器

错误理解

  1. 认为E:first-child选中E元素的第一个子元素
<style>
div:first-child{color: red;}
</style>

<div class="demo">
<a>123</a>
<a>123</a>
<a>123</a>
<a>123</a>
</div>

事实上全部变红
第一种理解,应该只有第一个a元素字体颜色变红,然而事实上全部变红了。

  1. E:first-child选中E元素的父元素的第一个E元素
<style>
div a:first-child{color: red;}
</style>

<div class="demo">
<p>123</p>
<a>123</a>
<a>123</a>
<a>123</a>
<a>123</a>
</div>

事实上没有一个变成红色
照第二种理解,div里的第一个a元素字体应该是红色的,事实证明这种理解也是错的。

正确理解

正确的理解应该是:只要E元素是它的父级的第一个子元素,就选中。需要同时满足两个条件,一个是“第一个子元素”,另一个是“这个子元素刚好是E”

<style>
.demo div:first-child{color: red;}
</style>

<div class="demo">
	<div>123</div>
    <div>123</div>
    <div>123</div>
</div>

第一个div的123背景颜色为红色
正确理解:只要E元素是它的父级的第一个子元素,就选中
它需要同时满足两个条件,一个是“第一个子元素”,另一个是“这个子元素刚好是E”。

类似容易误解的结构选择器还有:nth-child()、:nth-last-child、:only-child

猜你喜欢

转载自blog.csdn.net/weixin_44749729/article/details/107319332
今日推荐