javascript - 样式顺序的重要性
问题描述
我正在用香草 Javascript 编码。为什么样式的顺序很重要?例如在伪代码中:
<head>
.show {display: block;}
.drop {display: none;}
</head>
<body>
<button id="btn" onclick></button>
<div id="example" class="drop">
<p>sample text</p>
</div>
</body>
<script>
document.getElementById('btn').onclick = () => {(function(){
document.getElementById('example').classList.toggle('show');
})();}
</script>
如果我要执行此代码并按下按钮,它不会显示示例文本,但是,如果我要切换样式的顺序:
<head>
.drop {display: none;}
.show {display: block;}
</head>
示例文本将从此顺序出现。两个问题:
- 为什么顺序很重要?
- 我有一个切换类的按钮,所以顺序无关紧要,因为我只激活按钮和切换方法中的类,对吗?
解决方案
CSS 代表层叠样式表。按照设计,他们假设您将有多个相互冲突的规则。您需要知道的归结为规则和顺序的特殊性。
在您的情况下,这两个规则具有完全相同的特异性(都只有一个类),因此在这种情况下,后面的规则将优先,因为它是后面的。
但是,如果第一个是两个类,或者一个 id,或者一个类和标签名称等......那么由于更高的特异性,它将优先。
推荐阅读
- javascript - 通过 LZString 压缩 Base64 字符串会产生 SyntaxErrors
- python - 正则表达式环视 (?![\+\.])
- reactjs - 在“Connect(withRedux(MyApp))”的上下文中找不到“store”
- sas - 从 SAS 中的多个数据集中获得并减去观察总数
- c# - 使用 mvvm 时可以更改属性文本的颜色吗?
- c# - IIS 中的 Xaml 渲染不起作用(但在 IISExpress 中)
- sql - Access 2013 追加查询仅添加新的日期记录不存在
- javascript - 视频 JS 在 iOS Safari 浏览器和 Android 默认浏览器中无法正常播放
- sql - 如何在 Postgresql 中连接两个表以更新一个表
- python - 从派生自 C++ 抽象类的 Python 对象转换 C++ 抽象类