Как CSS определяет, когда применять один стиль поверх другого?
Я несколько раз просматривал документ о селекторах *1003* W3 *, и это помогло мне понять, как лучше использовать селекторы CSS в jQuery, но на самом деле это не помогло мне понять, когда одно правило CSS будет наноситься поверх другого.
У меня есть следующий HTML-код:
<div class='item'>
<a>Link 1</a>
<a class='special'>Link 2</a>
</div>
У меня есть следующий CSS:
.item a {
text-decoration: none;
color: black;
font-weight: bold;
font-size: 1em;
}
.special {
text-decoration: underline;
color: red;
font-weight: normal;
font-size: 2em;
}
Учитывая вышеизложенное, оба, Link 1 и Link 2, будут стилизованы одинаково, как определено .item a
CSS. Почему стиль, связанный с .special
, не имеет приоритета для ссылки 2?
Очевидно, я могу обойти это так:
.special {
text-decoration: underline !important;
color: red !important;
font-weight: normal !important;
font-size: 1em !important;
}
Но я чувствую, что это хак, в который я должен засыпать из-за недостатка понимания.