旧文章从语雀迁移过来,原日期为2021-07-14

问题

当时写在写一个列表,列表每一项需要下面加下划线,最后一项不加下划线。第一时间,想到使用 :``last-child 这个伪类来实现。

当时的代码出来的 HTML 片段大致是这样的(省略号代表还有其他元素):

<div class="list-box">
<div class="list-item">...</div>
<div class="list-item">...</div>
<div class="list-item">...</div>
<!-- 最后两行是由vant的list组件添加的 -->
<div class="van-list__finished-text">沒有更多數據了</div>
<div class="van-list__placeholder"></div>
</div>

样式是这样的:

.list-item {
border-bottom: #eaeaea 1px solid;
}
.list-item:last-child {
border-bottom: 0;
}

然后一直没搞明白,为啥最后一行的底部还有下划线呢。

思考

于是我查了 last-child 的定义:

:last-child CSS 伪类 代表父元素的最后一个子元素。

这句定义的重点是元素。

然后我得到第一次的推断:只是通过 :list-item 来定位到父元素而已, :list-child 依然会在父元素上去找最后一个子元素

于是我有写了另外一个例子:

<style>
.list-box {
width: 200px;
} .list-box .list-item {
background: red;
height: 100px;
} .list-box div {
background: yellow;
height: 100px;
} .list-box .list-item:last-child {
background: green;
}
</style>
<body>
<div class="list-box">
<div class="list-item">111</div>
<div class="list-item">222</div>
<div class="list-item">333</div>
<div>沒有更多數據了</div>
</div>
</body>

结果最后一个 div 并没有变绿,所以证明我得推测是错误的。



然后我又改变了例子,把最后一个样式修改为:


.list-box div:last-child {
background: green;
}

就生效了:



那就可以得出结论了:

对于样式 selector:last-child ,要想目标元素生效:既要满足 selector 选择器,还要是当前选择器的父元素最后一个元素。

**

最新文章

  1. IDT HOOK思路整理
  2. 虚拟机安装ubuntu问题解决办法
  3. [转载]Difference between &lt;context:annotation-config&gt; vs &lt;context:component-scan&gt;
  4. cordova 下载更新
  5. 大视野3562 [SHOI2014]神奇化合物
  6. 【COGS 254】【POI 2001】交通网络图
  7. 关于HTTP的几种
  8. Xcode-调试断点不能停在代码区终极解决方案
  9. 初步探讨WPF的ListView控件(涉及模板、查找子控件)
  10. android studio使用发布者证书调试
  11. WIN7 64位系统搭建WINCE6.0系统遇到的问题
  12. VS2013 编译 MySql Connector C 6.1.6
  13. python计算机视觉1:基本操作与直方图
  14. Linux内核源代码解析之——sock&#39;s buffer参数
  15. 第4章 流程控制----编写Java程序,应用for循环打印菱形
  16. PHP语言开发微信公众平台(订阅号)之curl命令
  17. QBC查询、离线条件查询(DetachedCriteric)和分页查询模版
  18. PythonStudy——枚举 enumerate
  19. inner_product
  20. 概念吓死人的webservice

热门文章

  1. C#并发编程-2 异步编程基础-Task
  2. Leetcode链表
  3. Java一次返回中国所有省市区三级树形级联+前端vue展示【200ms内】
  4. 关于多个 Kubernetes 集群指标的采集操作
  5. 驱动开发:内核特征码扫描PE代码段
  6. Conda的使用
  7. fake_useragent—Error occurred during loading data报错问题
  8. React 函数组件
  9. PXE批量装windows(半自动版本)
  10. Java读取txt文件、excel文件的方法