老师 对于first-child 和last-child 这种结构类的选择器我的理解是这样的

老师 对于first-child 和last-child 这种结构类的选择器我的理解是这样的

在这些选择器进行选择时,会默认忽视第一个标签

比如这段代码

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>结构类</title>

<style type="text/css">

div:first-child{

color:red;

}

/*div:last-child{

color:green;

}*/

</style>

</head>

<body>

<!-- <section></section> -->

<div>

<div>1-1</div>

<div>1-2</div>

<div>1-3</div>

<div>1-4</div>

<div>1-5</div>

<div>1-6</div>

<div>1-7</div>

</div>

<div>

<div>2-1</div>

<div>2-2</div>

<div>2-3</div>

</div>


</body>

</html>


这段代码的结果时1-1 1-2 1-3 2-1 都会变红

原因是,选择器忽视了第一个父级div标签,所以第一个div下面的所有标签都被当做同级,都属于第一个子元素。只要在body下第一个div前面加任意一个标签,都会使结果变为1-1 2-1是红色。


课程中只讲了这种结果,而没有讲原因。通过我的测试,我的这种猜想是正确的。

正在回答

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

5回答

同学你好,:first-child 选择器用于选取属于其父元素的首个子元素的指定选择器。

在同学提供的代码中,下列框出的div都是其父级的首个子元素。字体颜色都会变红,

之所以红框中元素的所有子级的字体颜色都是红色,是因为给父级设置的字体颜色,子级也可以继承到。

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

:last-child的原理和上方的思路是一致的,同学可以根据视频中老师的讲解再理一下思路。

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

提问者 吾怯二日 2019-11-29 09:40:54

last-child 也适用 当它是最后一个 且通标签嵌套也都会变红

提问者 吾怯二日 2019-11-29 09:35:14

好吧 也不是我说的这种

应该是相同标签嵌套 第一个才会被忽视

而且这个相同标签嵌套必须处于body下的第一个

提问者 吾怯二日 2019-11-29 09:29:12

这种子元素 必须需要一个父级


而选择器充当了第一组元素的父级 忽视了他们的真正父级

  • 提问者 吾怯二日 #1
    不应该这么说 应该是 对于每一个标签 它都会做筛查 检测它的父级 前面7个div的父级被忽视 所以 当它筛选时会作为这7个div的单独的父级
    2019-11-29 09:31:58
提问者 吾怯二日 2019-11-29 09:27:37

是1-1 1-2 1-3 1-4 1-5 1-6 1-7 2-1 都会变红

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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