css - 是否可以仅使用 CSS 选择元素的绝对最后一个孙子?
问题描述
<div class="a">
<div class="b">
<div class="c"></div>
<div class="c"></div>
<div class="c"></div>
</div>
<div class="b">
<div class="c"></div>
<div class="c"></div> <!-- element to select -->
</div>
<div class="b">
</div>
</div>
在这种情况下使用.a .b:last-child .c:last-child
将不起作用,因为最后div.b
一个是空的。
解决方案
不,不可能有一个选择器来查看下一个兄弟(查看是否为空)并在 DOM 的前一个元素中使用它。
伪类可以帮助您了解元素是否为空,但对:empty
您的情况没有帮助。
:empty
在 Chrome、Firefox、Safari、Opera 9.5+、Internet Explorer 9+ 以及 Android 和 iOS 上受支持。
另请注意,包含空格的元素不被视为空。
另一个不为人知但非常有用的选择器是~
: 这意味着任何出现在特定 DOM 元素之后的兄弟。like a+
除了如果在其间有另一个不是 a like a的 dom 元素,它~
也以 a 为目标。.b + .b
.b
br
我创建了一个 Codepen 来探索方便的选择器,即使响应是“不,你不能这样做”:https ://codepen.io/antoniandre/pen/jOOmKmq
推荐阅读
- ansible - --tags 不会在 ansible 中跳过 vars_prompt
- ruby - 我怎样才能返回到 ruby 的配置默认设置?
- xml - 使用 Data Fusion 将 XML 提取到 BigQuery
- google-bigquery - 如何在 BigQuery 中获得每组出现次数最多的值?
- javascript - 如果新的子文档尚不存在,如何添加它,然后在其下推送另一个子文档
- python - PI控制信号
- javascript - 如何检查数组中的值是否存在于对象数组的对象键中
- php - 如何解决 Magento 2 中的“不允许使用空格以外的字符内容”
- spring-boot - Spring Boot:发布 SessionConnectedEvent 时出错
- ms-access - 服务器中的 vb6 项目与 E 驱动器中的 mdb 位置