好的,我试图将 CSS 级联和特异性理解为一门“科学”,而不是总是将其留给“命中或失败”的方法。我希望有人能帮助我。
我有一个规则:
.bluebutton {margin: 0 10px 6px 0;} /* rule 1 */
我需要覆盖以更改特定实例中的边距。
所以我添加了一个class
并div
写道:
.aside-right .bluebutton a {margin:30px 0 0 100px;} /* rule 2 */
但是,规则 2 并没有覆盖规则 1。
所以我将规则 2 修改为:
.aside-right a.bluebutton {margin:30px 0 0 100px;} /* rule 3 */
它会覆盖“ .bluebutton
”规则。/* 规则1 */
起初我写了这个 HTML
<a class="blueButton aside-right" href="enrollNow.html"><span>Enroll Now</span></a> <!-- html-1 -->
然后我修改并将按钮包含在 a 中div
并写道:
<div class="aside-right"><a class="blueButton" href="enrollNow.html"><span>Enroll Now</span></a></div> <!-- html-2 -->
html-2 适用于规则 3。
有人可以帮我理解为什么规则 3 会覆盖规则 1,而规则 2 不会覆盖规则 1?看起来规则 2 和 3 具有相同的权重(对我而言)。是因为规则 2以 a of和anchor
的任何元素内的任何标签为目标,而规则 3 仅以a of 为目标吗?我希望我能清楚地解释我想要理解的内容。class
.bluebutton
.aside
anchor
class
.bluebutton
谢谢!