css中:last-child不生效的解决方法


Posted in HTML / CSS onAugust 05, 2022

在产品需求中,总有对第一个或者最后一个同类元素进行特殊的样式处理。

如果使用js来判断哪个是第一个、最后一个也并不是不可以。
但是,完全属于css的管理范围为什么要去使用js呢?

css选择器出场!

下面仅展示:last-child效果

1.期望效果

代码展示:

<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>

展示的效果也和期望中的一样,最后一个元素文字为红色

css中:last-child不生效的解决方法

2. 非期望效果

但有时候: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,但是需要的效果却没有了。

css中:last-child不生效的解决方法

3. 分析问题

为什么:last-child没有起作用?

3.1 el:last-child 的匹配规则

1.查找 el 选择器匹配元素的所有同级元素(siblings)

2.在同级元素中查找最后一个元素

3.检验最后一个元素是否与选择器 el 匹配

期望中的效果实现了,是因为el:last-child匹配到的最后一个元素也是.child
非期望效果出现,是因为el:last-child匹配到的最后一个元素也是p标签而不是.child

4. 解决办法

方法1、
:last-child在其父元素内没有其它的标签,即让其父元素仅包含该种类型标签

方法2、
使用其它标签选择器:last-of-type
具体使用规则 :last-of-type — MDN

css中:last-child不生效的解决方法

到此这篇关于css中:last-child不生效的解决方法的文章就介绍到这了,更多相关css :last-child不生效内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
纯CSS3实现质感细腻丝滑按钮
Mar 09 HTML / CSS
纯CSS3实现Material Design效果
Mar 09 HTML / CSS
CSS3教程(3):border-color网页边框色彩
Apr 02 HTML / CSS
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
Feb 04 HTML / CSS
HTML5时代CSS设置漂亮字体取代图片
Sep 04 HTML / CSS
CSS3中的opacity属性使用教程
Aug 19 HTML / CSS
CSS实现进度条和订单进度条的示例
Nov 05 HTML / CSS
详解CSS3+JS完美实现放大镜模式
Dec 03 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
Jun 11 HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
Feb 29 HTML / CSS
吃透移动端 1px的具体用法
Dec 16 HTML / CSS
解决html5中的video标签ios系统中无法播放使用的问题
Aug 10 HTML / CSS
CSS浮动引起的高度塌陷问题
Aug 05 #HTML / CSS
使用CSS实现六边形的图片效果
Aug 05 #HTML / CSS
el-form每行显示两列底部按钮居中效果的实现
Aug 05 #HTML / CSS
纯CSS打字动画的实现示例
Aug 05 #HTML / CSS
新的CSS 伪类函数 :is() 和 :where()示例详解
前端使用svg图片改色实现示例
Jul 23 #HTML / CSS
详解flex:1什么意思
Jul 23 #HTML / CSS
You might like
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
php中日期加减法运算实现代码
2011/12/08 PHP
php记录代码执行时间(实现代码)
2013/07/05 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
谈谈JS中的!!
2017/12/07 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
JavaScript实现留言板案例
2020/03/17 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
python中__call__内置函数用法实例
2015/06/04 Python
python实现俄罗斯方块游戏
2020/03/25 Python
pycharm安装和首次使用教程
2018/08/27 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
邮政员工辞职信
2014/01/16 职场文书
经营目标管理责任书
2014/07/25 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
2014年信用社工作总结
2014/11/25 职场文书
2015年端午节国旗下演讲稿
2015/03/19 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python
修改并编译golang源码的操作步骤
2021/07/25 Golang
spring cloud 配置中心native配置方式
2021/09/25 Java/Android