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

如果使用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>

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

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

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 无效?相关推荐

  1. css样式属性值无效问题

    我出现的问题是单位写错导致css样式属性值无效,如图所示,倾斜度单位是deg而不是dep,原因:对此单位不熟悉: 经过看其他人文章发现还有可能出现以下问题: 1.css写属性值,一个标签的中括号后面加 ...

  2. 前端开发审查元素时CSS样式有个横线(该CSS样式定义后无效) 的解决办法

    问题概述 关于这个问题,博主是在前端开发,样式调试的时候遇到的, 进行盒模型,CSS Debugger调试时,遇到样式设值后不可用的情况! 如下图: 解决办法 左看右看,上看下看,最终发现是前面在编码 ...

  3. html怎么防止左边溢出,css防止溢出 css+div 溢出隐藏 无效

    div+css 为什么div内的div总会溢出,怎么解决 明明设定的宽度是一样的,为什么会里面的div会出来呢,CSS布局HTML小编今天和大家分享解决办法 除了宽以外你还设置了什么? 你把宽度设置好 ...

  4. html中隐藏溢出怎么写,html溢出隐藏代码 css+div 溢出隐藏 无效

    css+div 溢出隐藏 无效 隐藏图片超出div部分代码如何写的? 把图片作为div的背景图片是最容易实现你所要的效果的方式: 如果一定要用img标签那就要css和js结合才能实现了: 请html代 ...

  5. 【vue项目部署CSS失效】VUE部署后css样式加载无效和失效多种情况解决方案

    [写在前面]vue3在vscode运行正常.build后在IDEA运行正常,但是当部署在服务器上运行发现样式加载不出来,下面我们针对这些情况进行复现与解决. 一.问题分析 困扰我好久,当即百度原因,百 ...

  6. css表格宽度设置无效

    table-layout: fixed table-layout: fixed,table和td设置宽度有效,但在第一行有合并列的情况时,列宽会被均分,从而导致td设置宽度无效(table宽度仍然有效 ...

  7. css 文字溢出隐藏 css 文字溢出隐藏无效解决办法

    作为一个码农,css技术有时候网上cv来的更方便一些,溢出隐藏显示...,网上百度了两个小时,居然没一个正确的??现在网上都怎么了,我表示很服气,而且他们是一模一样的代码,请这些人都确定了正确性在发出 ...

  8. 在CSS布局中max-width 无效的解决方法

    max-width 无效的解决方法: width:100% 和 max-width:100%的区别: width: 100%是将所有指定元素的宽度 拉伸或收缩到和父元素的宽度一致, 而max-widt ...

  9. CSS文字超出省略号无效

    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; 在使用上面三条属性时,文字并没有出现省略号,使用display: blo ...

  10. 解决animate.css在谷歌浏览器下无效,动画没了的问题

最新文章

  1. linux 安装程序丢失链接动态库,Linux安装软件过程中提示缺少动态链接库.so的解决方法...
  2. Codeforces Round #462 (Div. 2) C. A Twisty Movement dp + 思维转换
  3. SpringBoot2整合Activiti6工作流框架 源码
  4. Hostiko v54.0 – WordPress WHMCS-云服务器VPS主机销售模板源码
  5. 苹果汽车真是全自动驾驶?分析师称不要指望有方向盘
  6. android 模仿uc标签页,android模仿UC首页天气效果
  7. 如何将网站前端如何添加登录密码访问_如何在Mac上查找保存的密码的所有信息...
  8. android 代码混淆原理,Android 代码混淆
  9. LCD1602的四线驱动
  10. (MTT)连续能量函数最小化方法
  11. python cad 二次开发bom_python处理BOM
  12. PHP开源CRM客户管理系统源码介绍分享
  13. No Matter What
  14. 我们如何在Linkerd 2.2里设计重试 1
  15. 图观——渲染一个简易的三维场景
  16. Oracle官网用户名密码
  17. Redis 实现搜索关键词自动补全
  18. Android基于红米系列手机读取本地图片路径失败的解决方案
  19. SimpleMind Pro for Mac(思维导图)中文完整版
  20. 狠!删库跑路!一行代码蒸发10亿人民币!

热门文章

  1. word出现错误报告的解决办法
  2. linux添加fcitx输入法,Ubuntu下轻松安装FCITX输入法
  3. NodeJS 爬取lol英雄数据信息
  4. java json去掉中括号,去掉json中的中括号
  5. 微信小程序 java理发店美容院预约系统springboot
  6. c语言输入一个三位数由小到大排序,c语言程序设计练习题.doc
  7. 全球及中国航空机电开关行业重点领域需求及未来发展展望报告2022-2028年
  8. 庄股高手和你谈选股绝招(2)
  9. 新塘单片机烧写器_ICP Programming Tool下载|新唐单片机烧录工具ICP Programming Tool v3.00.6909 官方版 下载 - 巴士下载站...
  10. 人民币为什么会贬值?