CSS中last-child不生效该怎样处理呢?
Admin 2022-09-21 群英技术资讯 1075 次浏览
今天我们来学习关于“CSS中last-child不生效该怎样处理呢?”的内容,下文有详解方法和实例,内容详细,逻辑清晰,有需要的朋友可以参考,希望大家阅读完这篇文章后能有所收获,那么下面就一起来了解一下吧。
在产品需求中,总有对第一个或者最后一个同类元素进行特殊的样式处理。
如果使用js来判断哪个是第一个、最后一个也并不是不可以。
但是,完全属于css的管理范围为什么要去使用js呢?
css选择器出场!
下面仅展示:last-child效果
代码展示:
<template>
<div class="root-container">
<div class="father">
<div class="child" v-for="item in 10" :key="item">
一共10个元素,我是第{{item}}个
<template v-if="item== 10">(css控制我的颜色)</template>
</div>
</div>
</div>
</template>
<style lang='scss' scoped>
.father {
width: 500px;
border: 1px solid #b2b6b6;
text-align: center;
.child {
padding: 10px 0;
&:last-child {
color: red;
}
}
}
</style>
展示的效果也和期望中的一样,最后一个元素文字为红色

但有时候:last-child实现的却和想象中的 不太一样!!!!
代码如下:
<template>
<div class="root-container">
<div class="father">
<div class="child" v-for="item in 10" :key="item">
一共10个元素,我是第{{item}}个
<template v-if="item== 10">(css控制我的颜色)</template>
</div>
<p>我是多余的元素</p>
</div>
</div>
</template>
<style lang='scss' scoped>
.father {
width: 500px;
border: 1px solid #b2b6b6;
text-align: center;
.child {
padding: 10px 0;
&:last-child {
color: red;
}
}
}
</style>
看代码也可以看出来,仅仅是多了一个p标签,明明把:last-child是设置给了.child,但是需要的效果却没有了。

为什么:last-child没有起作用?
3.1 el:last-child 的匹配规则
1.查找 el 选择器匹配元素的所有同级元素(siblings)
2.在同级元素中查找最后一个元素
3.检验最后一个元素是否与选择器 el 匹配
期望中的效果实现了,是因为el:last-child匹配到的最后一个元素也是.child。
非期望效果出现,是因为el:last-child匹配到的最后一个元素也是p标签而不是.child。
方法1、
让:last-child在其父元素内没有其它的标签,即让其父元素仅包含该种类型标签
方法2、
使用其它标签选择器:last-of-type
具体使用规则 :last-of-type — MDN

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
css中sticky属性的介绍:1、position的新属性sticky,在屏幕范围内(viewport)设置sticky元素时,该元素的位置不会受到定位的影响。2、sticky属性解决了对象脱离常规流时下部对象瞬间偏移的问题。
css将文字放在div的底部方法:1、利用position属性,将div元素设置为相对定位,将文字元素设置为绝对定位;2、利用bottom属性将文字放在div的底部,只需要给文字元素添加“bottom:0;”样式即可。
html中如何给select添加CSS样式?给select标签添加id或class属性并设置属性值,在style标签对中,使用id或class选择器选中select元素并设置样式
这篇文章主要介绍了纯CSS实现下拉菜单的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这篇文章主要介绍了如何使用canvas绘制可移动网格的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008