为什么最后面的数字3是蓝色的,不应该是红色吗?

为什么最后面的数字3是蓝色的,不应该是红色吗?

<head>
   <meta charset="UTF-8">
   <title>Title</title>
   <style>
       div:first-child{color:#00ffff;} /*其父元素的的第一个子元素为DIV时发生颜色变化*/
       div:last-child{color:#f00;}     /*其父元素的的最后一个子元素为DIV时发生颜色变化*/
   </style>
</head>
<body>
<!--first-child-->
<div>99</div>
<section>
   <span>-1</span>
   <div>0</div>
   <div>1</div>
   <div>2</div>
</section>
<section>
   <div>3</div>
   <div>4</div>
   <div>5</div>
</section>
<!--last-child-->
<div>99
<section>
   <span>-1</span>
   <div>0</div>
   <div>1</div>
   <div>2</div>
</section>
<section>
   <div>3</div>
   <div>4</div>
   <div>5</div>
</section>
</div>
</body>
</html>

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,问题解答如下:

 div:last-child可以选中body中最后一个div,该div是3所在的div的父元素,所以红色对于3所在的div来说是继承样式,而div:first-child可以直接选中3所在的div,所以对于3所在的div来讲,该样式的优先级更高,因此样式以div:first-child为准,如下:

http://img1.sycdn.imooc.com//climg/5f6d82b2094798e406220441.jpg

另外,单纯对“3”而言,两个样式,都是作用在它的父元素上,权重相同(继承样式),但是3直接父元素的样式离“3”更近,因此也会以first的样式为准(离得近,不是指代码的书写位置,而是指结构上更近)。

祝学习愉快!

好帮手慕久久 2020-09-25 10:08:49

同学你好,“3”应该是蓝色,不是红色。

"element:last-child"选择属于其父元素下的最后一个子元素,并且该子元素是element,而first-child是选择第一个,“3”所在的div,是父元素section中的第一个div元素,所以“div:first-child{color:#00ffff;} ”这句样式可以匹配到,因此是蓝色:

http://img1.sycdn.imooc.com/climg/5f6d512a0946d10e05290154.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

  • 提问者 一穷二白入前端 #1
    老师我还是没理解,body标签里的最后一个子元素div符合我所写的css。div:last-child{color:#f00;} 所以body里的最后一个div标签里的所有元素都应该是红色的呀。“3”不是也应该是红色的吗?并且我div:last-child{color:#f00;}写在css最后面。权重的话也应该显示“3”为红色呀。
    2020-09-25 11:04:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师