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 :not()选择器实现最后一行li去除某种css样式
Oct 19 HTML / CSS
IE9下html5初试小刀
Sep 21 HTML / CSS
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
Oct 20 HTML / CSS
详解html5 canvas常用api总结(二)--绘图API
Dec 14 HTML / CSS
HTML5中indexedDB 数据库的使用实例
May 11 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
Oct 16 HTML / CSS
HTML5中的Web Notification桌面右下角通知功能的实现
Apr 19 HTML / CSS
解析html5 canvas实现背景鼠标连线动态效果代码
Jun 17 HTML / CSS
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
Jul 18 HTML / CSS
详解HTML5中CSS外观属性
Sep 10 HTML / CSS
CSS实现多个元素在盒子内两端对齐效果
Mar 30 HTML / CSS
html form表单基础入门案例讲解
Jul 21 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
在WIN98下以apache模块方式安装php
2006/10/09 PHP
Email+URL的判断和自动转换函数
2006/10/09 PHP
详解PHP显示MySQL数据的三种方法
2008/06/05 PHP
php中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
ASP中Sub和Function的区别说明
2020/08/30 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
jQuery解决浏览器兼容性问题案例分析
2016/04/15 Javascript
最简单的tab切换实例代码
2016/05/13 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
ES6函数实现排它两种写法解析
2020/05/13 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
python实现定时同步本机与北京时间的方法
2015/03/24 Python
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
python suds访问webservice服务实现
2020/06/26 Python
详解python中的闭包
2020/09/07 Python
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
人事助理自荐信
2014/02/02 职场文书
食品安全检查制度
2014/02/03 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS