Каскад CSS и почему вы должны заботиться
Это сводится к Специфичность CSS и CSS Cascading. Будьте внимательны и знайте, что вы делаете, и CSS Specificity может стать вашим другом.
// bring CSS into the Page
<style type="text/css">@import url("importedStyles.css");</style>
/// Link to CSS Style Sheet
<link rel="stylesheet" type="text/css" href="linkedStyles.css" />
Поскольку @import переносит стиль на эту страницу, эти правила будут переопределять Внешние или "связанные" таблицы стилей. Встроенный CSS превосходит любой из-за более высокой специфики CSS :
<span style="color: red;">I am DEFINITELY RED</span>
Однако это работает только тогда, когда правила имеют одинаковую специфичность
Примите следующее:
<div class="error">I am an error message</div>
Если у меня в importStyles.css есть правило так:
.error { color: blue; } /* specificity = 10 */
И правило в "externalStyles.css" выглядит так:
div.error { color: red; } /* specificity = 11 */
Это займет версию внешних стилей
Примечание: Специфичность CSS встроенного стиля равна 1000, поэтому он превосходит все, кроме тега! Important, который равен 10000. Еще одна статья о специфике CSS
Справочник по специфике CSS
Итак, несколько примеров:
body .selected { color: red; } /* 11 */
ul li { color: red; } /* 2 */
ul li.selected { color: blue; } /* 12 */
#content ul li.selected a { color: red; } /* 113 */
/* Careful, can't override this, ever */
a { color: blue; !important } /* 10,000 - Override everything */
Итак ... Каскад применяется только к элементу той же Специфичности . Каскады применяются ПОСЛЕ ТОГО, как применяются правила специфичности.