css - 如何将样式应用于元素的所有子元素

标签 css css-selectors

我有一个带有 class='myTestClass' 的元素。如何将 css 样式应用于该元素的所有子元素?我只想将样式应用于元素子项。不是它的孙子。

我可以用

.myTestClass > div {
  margin: 0 20px;
}

适用于所有 div child ,但我想要一个适用于所有 child 的解决方案。我以为我可以使用 *,但是

.myTestClass > * {
  margin: 0 20px;
} 

不起作用。

编辑

.myTestClass> *选择器不适用firefox 26中的规则,根据firebug也没有其他的margin规则。如果我将 * 替换为 div,它就会起作用。

最佳答案

正如 David Thomas 评论的那样,这些子元素的后代将(可能)继承分配给这些子元素的大部分样式。

您需要将 .myTestClass 包装在一个元素中,并通过添加 .wrapper * descendant selector 将样式应用于后代.然后,添加 .myTestClass > * child selector将样式应用于子元素,而不是其孙子元素。例如像这样:

JSFiddle - DEMO

.wrapper * {
    color: blue;
    margin: 0 100px; /* Only for demo */
}
.myTestClass > * {
    color:red;
    margin: 0 20px;
}
<div class="wrapper">
    <div class="myTestClass">Text 0
        <div>Text 1</div>
        <span>Text 1</span>
        <div>Text 1
            <p>Text 2</p>
            <div>Text 2</div>
        </div>
        <p>Text 1</p>
    </div>
    <div>Text 0</div>
</div>

关于css - 如何将样式应用于元素的所有子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26349987/

相关文章:

html - 如果列表项分成两行,则需要一个全宽的上边框

CSS - 有表亲选择器吗?

html - CSS 最后一个 child 不工作

javascript - 将一个 div 标签对齐到另一个标签下方

JavaScript DOM 如何实现?

css - 更灵活的占位符选择器用法

jquery - 已解决 : How can I toggle between 2 colors

html - 多选选项垂直溢出

jquery - jquery中两个类之间的淡入淡出

css - 直接将文件夹添加到 Assets 路径