css - CSS 级联到子元素
问题描述
我正在尝试创建一个 CSS 布局,在其中我使用一组类来确定元素及其内容的配色方案。
我在级联方面遇到了一些问题(我认为)——这对我来说似乎是一个非常基本的问题,但我就是想不出一个简单的方法。
.red-content p {
color: red;
}
.blue-content p {
color: blue;
}
<div class="blue-content">
<div class="inner">
<p>Blue</p>
</div>
<div class="red-content">
<div class="inner">
<p>Red</p>
</div>
</div>
</div>
这是一个说明我遇到的问题的 Codepen:https ://codepen.io/tomhayes/pen/OJVqKoo
基本上,蓝色文本应该是蓝色的,红色文本应该是红色的,但是规则是冲突的并且使所有的文本都是蓝色的。
我不能使用 CSS 规则的顺序来实现这一点,因为元素的顺序会改变,并且我试图避免需要使用>
,因为元素有时必须嵌套几层深。
解决方案
您可以为您的红色课程添加一些特殊性。
.red-content:not(.blue-content) p {
color: red;
}
.blue-content p {
color: blue;
}
<div class="blue-content">
<div class="inner">
<p>Blue</p>
</div>
<div class="red-content">
<div class="inner">
<p>Red</p>
</div>
</div>
</div>
:not()
伪类允许编写无用的选择器。例如
:not(*|*)
,它根本不代表任何元素,或者div:not(span)
,它等价于div
但具有更高的特异性。
推荐阅读
- node.js - 此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未处理的承诺
- python - 如何让 Discord 机器人在用户加入时添加角色?
- java - 为什么 throwExceptionIfNoHandlerFound 在 spring mvc 中的 web.xml 中不起作用
- javascript - 为什么它的返回未定义?
- r - 如何在 r 中打开这些功能?
- python - 通过正则表达式从文件中提取数据
- strapi - Strapi 查询与 IN 过滤器和 AND 子句的关系
- tensorflow - 用梯度带子类化python中的多输入
- elasticsearch - Kibana Discover 中缺少时间选择器
- javascript - 跨度上的颜色更改关键字问题