设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间11 现在时间11 缓存数据 以后别遇到像我这样的人敏感多疑 总是吵着让你陪我经常瞎想 总让你很累吧 但又希望碰到这样的人 因为这样的人真的真的很爱你

以后别遇到像我这样的人敏感多疑 总是吵着让你陪我经常瞎想 总让你很累吧 但又希望碰到这样的人 因为这样的人真的真的很爱你 -- 敏感多疑

查看: 1231|回复: 1

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

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:205
  • 打卡月天数:0
  • 打卡总奖励:3013
  • 最近打卡:2023-08-27 04:24:37
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
388
主题
361
精华
0
金钱
4155
积分
765
注册时间
2022-12-22
最后登录
2025-3-15

发表于 2023-2-11 06:51:50 | 显示全部楼层 |阅读模式

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

如果使用js来判断哪个是第一个、最后一个也并不是不可以。
但是,完全

  1. 属于css
复制代码
的管理范围
  1. 为什么要去使用js
复制代码
呢?

css选择器出场!

下面仅展示

  1. :last-child
复制代码
效果

1.期望效果

代码展示:

  1. <template>
  2. <div class="root-container">
  3. <div class="father">
  4. <div class="child" v-for="item in 10" :key="item">
  5. 一共10个元素,我是第{{item}}个
  6. <template v-if="item== 10">(css控制我的颜色)</template>
  7. </div>
  8. </div>
  9. </div>
  10. </template>
  11. <style lang='scss' scoped>
  12. .father {
  13. width: 500px;
  14. border: 1px solid #b2b6b6;
  15. text-align: center;
  16. .child {
  17. padding: 10px 0;
  18. &:last-child {
  19. color: red;
  20. }
  21. }
  22. }
  23. </style>
复制代码

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

075230vsl3n3se9ghep3yf.png

2. 非期望效果

但有时候

  1. :last-child
复制代码
实现的却和想象中的 不太一样!!!!
代码如下:

  1. <template>
  2. <div class="root-container">
  3. <div class="father">
  4. <div class="child" v-for="item in 10" :key="item">
  5. 一共10个元素,我是第{{item}}个
  6. <template v-if="item== 10">(css控制我的颜色)</template>
  7. </div>
  8. <p>我是多余的元素</p>
  9. </div>
  10. </div>
  11. </template>
  12. <style lang='scss' scoped>
  13. .father {
  14. width: 500px;
  15. border: 1px solid #b2b6b6;
  16. text-align: center;
  17. .child {
  18. padding: 10px 0;
  19. &:last-child {
  20. color: red;
  21. }
  22. }
  23. }
  24. </style>
复制代码

看代码也可以看出来,仅仅是

  1. 多了一个p标签
复制代码
,明明把
  1. :last-child
复制代码
是设置给了
  1. .child
复制代码
,但是需要的效果却没有了。

075231ypcbutgvtceatgjt.png

3. 分析问题

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

3.1 el:last-child 的匹配规则

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

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

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

期望中的效果实现了,是因为

  1. el:last-child
复制代码
匹配到的最后一个元素也是
  1. .child
复制代码

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

4. 解决办法

方法1、

  1. :last-child
复制代码
在其父元素内没有其它的标签,即让其父元素仅包含该种类型标签

方法2、
使用其它标签选择器

  1. :last-of-type
复制代码

具体使用规则 :last-of-type — MDN

075231dueed2jo9ezdu69d.png

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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
18
积分
16
注册时间
2022-12-28
最后登录
2022-12-28

发表于 3 天前 | 显示全部楼层
感谢楼主,顶。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表