【发布时间】:2019-09-02 14:35:42
【问题描述】:
我正在使用 CSS 的 display:contents 和 element>elementselector。
至于the definition,display:contents 属性:
使容器消失,使子元素成为 DOM 中上一层的元素
所以我有这个示例代码:
.wrapper {
background-color: red;
}
.hidden {
display: contents;
}
.wrapper > .child {
background-color: yellow;
}
<div class='wrapper'>
<div class='hidden'>
<div class='child'>I'm a child</div>
<div class='child'>I'm a child</div>
</div>
<div class='child'>I'm a child</div>
<div class='child'>I'm a child</div>
</div>
我希望所有的孩子都有黄色背景,因为element>element 选择器应该将它们全部作为目标(当属性display:contents 发挥作用时,它们都处于同一级别)。
为什么不是这样? CSS无法以这种方式定位儿童吗?
【问题讨论】:
-
CSS 选择器只考虑没有应用 CSS 的 DOM 结构。如果您在元素上使用
display:none(例如:jsfiddle.net/gca6bm9y),则逻辑相同,因此这是合乎逻辑的预期结果 -
查看这里以获得解释:bitsofco.de/how-display-contents-works 基本上它不会取出元素,而是 only 显示元素的内容(文本节点、子节点)。同样不,它不适用于其他 CSS 规则
标签: html css css-selectors