html - 在 css 中取消设置 css 属性。是否可以?
问题描述
在 css 中取消设置 css 属性。是否可以?
让我解释一下css代码的问题。
我们手头有两个类:.whenRolledUp
和.whenRolledDown
。
我希望我的元素遵守以下规则:
1 当一个具有类的元素.whenRolledUp
位于 DOM 层次结构中并且在层次结构中的.rolledDown
某个位置有一个具有类的元素时,我想禁用该元素。否则,我不想对元素的显示做任何事情。我能够在这个 css 的帮助下满足这一点:
.rolledDown .whenRolledUp {
display: none;
}
2 当一个具有类的元素.whenRolledDown
位于 DOM 层次结构中并且在层次结构中的.rolledDown
某个位置有一个具有类的元素时,我不想对 元素的显示做任何事情。否则,我希望元素display: none 。我能够使用这个来满足第二部分:
.whenRolledDown {
display: none;
}
但这就是问题所在。我不能仅仅使用这个来满足第一部分:
.rolledDown .whenRolledDown {
display: block;
}
因为在这里我实际上将显示设置为阻止,而没有这个 css 它可能有不同的值。
似乎仅使用 css 无法解决此问题。是这样吗?
解决方案
您可以使用display: unset
:
如果属性是从其父级继承的,则 unset CSS 关键字会将属性重置为其继承值,否则重置为其初始值。
function add() {
document.querySelector('.target').classList.add('rolledDown');
}
.whenRolledUp {
display: none;
}
.rolledDown .whenRolledUp {
display: unset;
}
<div class="target">
<div class="whenRolledUp">whenRolledDown</div>
</div>
<button onClick="add()">Add rolledDown</button>
推荐阅读
- spring - 是否有可能在不使用任何开箱即用工具的情况下使用 Spring 5 生成 pdf?
- html - 使用 :hover 选择器不被 SCSS 定位的内部元素:
- python-3.x - 如何克服覆盖运算符中的“a > b > c”到“a > b and b > c”的Python解析器/解释器翻译?
- python - 我想将随机选择的图像保存在我的文件夹中
- ios - Problems starting ViewController from a widget click
- openssl - 具有 OpenSSL 1.0.2 密码套件配置的 RSyslog 客户端
- postgresql - 分区表中的慢查询
- azure - 我们如何在函数应用程序的 ARM 模板中包含连接字符串?
- kubernetes - 在 K8s 中重启 n 个 pod
- serialization - 如何为 rkyv serde 框架创建通用函数?