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绘制出各种几何图形
Aug 17 HTML / CSS
CSS3教程(6):创建网站多列
Apr 02 HTML / CSS
CSS3转换功能transform主要属性值分析及实现分享
May 06 HTML / CSS
今天学到的CSS最新技术(与图片背景相关)
Dec 24 HTML / CSS
使用CSS禁止textarea调整大小功能的方法
Mar 13 HTML / CSS
非常漂亮的CSS3百叶窗焦点图动画
Feb 24 HTML / CSS
解决margin 外边距合并问题
Jul 03 HTML / CSS
关于HTML5的安全问题开发人员需要牢记的
Jun 21 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
Jun 04 HTML / CSS
一些常用的HTML5模式(pattern) 总结
Jul 14 HTML / CSS
使用HTML5进行SVG矢量图形绘制的入门教程
Feb 19 HTML / CSS
HTML5 图片预加载的示例代码
Mar 25 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
各种战术和打法的原创者
2020/03/04 星际争霸
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
PHP中CURL的CURLOPT_POSTFIELDS参数使用细节
2014/03/17 PHP
举例讲解PHP面对对象编程的多态
2015/08/12 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
简述vue状态管理模式之vuex
2018/08/29 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
python从ftp下载数据保存实例
2013/11/20 Python
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
Python中函数参数匹配模型详解
2019/06/09 Python
连接pandas以及数组转pandas的方法
2019/06/28 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
人工作失职检讨书
2015/05/05 职场文书
《三国志》赏析
2019/08/27 职场文书
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL