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制作动感导航条示例
Jan 26 HTML / CSS
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
Aug 08 HTML / CSS
CSS3打造磨砂玻璃背景效果
Sep 28 HTML / CSS
HTML5应用之文件上传
Dec 30 HTML / CSS
localStorage 设置过期时间的方法实现
Dec 21 HTML / CSS
HTML5中判断用户是否正在浏览页面的方法
May 03 HTML / CSS
Application Cache未缓存文件无法访问无法加载问题
May 31 HTML / CSS
HTML5中indexedDB 数据库的使用实例
May 11 HTML / CSS
Html5 canvas画图白板踩坑
Jun 01 HTML / CSS
Html分层的box-shadow效果的示例代码
Mar 30 HTML / CSS
CSS3新特性详解(五):多列columns column-count和flex布局
Apr 30 HTML / CSS
bootstrapv4轮播图去除两侧阴影及线框的方法
Feb 15 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
php缓存技术介绍
2006/11/25 PHP
PHP一些常用的正则表达式字符的一些转换
2008/07/29 PHP
PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
JavaScript 私有成员分析
2009/01/13 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
几种tab切换详解
2017/02/03 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
JavaScript监听键盘事件代码实现
2020/06/03 Javascript
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
用python找出那些被“标记”的照片
2017/04/20 Python
python脚本爬取字体文件的实现方法
2017/04/29 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
Etam德国:内衣精品店
2019/08/25 全球购物
师范应届生求职信
2013/11/15 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
重阳节标语大全
2014/10/07 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
Python re.sub 反向引用的实现
2021/07/07 Python
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android