Collate - это просто фантастика (ну, вроде). Таким образом, это порядок сортировки, основанный на локализованных предпочтениях (то есть алфавите и условных обозначениях текущего языка) в конечном порядке asc .
кровавые детали в спецификации на самом деле достаточно читабельны. Вкратце:
! Important
правила и правила встроенного стиля
выигрывают больше всего.
В противном случае обычно побеждает более конкретный. #id
является более конкретным селектором, чем .classname
- более конкретным селектором, чем тэг
.
Если правила одинаково специфичны, побеждает тот, который объявлен последним.
Нет особой причины, почему этого «не должно происходить». Обычно можно указать общее правило, а затем добавить более конкретное правило для одного случая; несколько правил одного и того же свойства для одного элемента не являются необычными или нежелательными.
Приоритет между селекторами определяется их конкретностью. Более конкретные селекторы имеют преимущество перед менее специфичными.
Если два селектора одинаково специфичны, последний выигрывает у первого.
Есть три уровня специфичности: идентификатор, класс и элемент. Итак, #elem
побеждает .elem
, поскольку идентификатор более конкретен. .elem .cont
выигрывает у .elem
, поскольку у него больше селекторов на том же уровне.
Подробнее читайте в разделе «Что происходит при возникновении конфликтов?» на Selectutorial .
См. Раздел спецификации порядок специфичности (наряду с остальной частью этой главы! Важные правила и порядок, в котором правила появляются в таблице стилей, также имеют влияние) .
Это должно случиться! Вот почему это называется CASCADING таблиц стилей. Вы можете найти пример приоритетов здесь
CSS означает Каскадные таблицы стилей. Это означает, что правила применяются к элементам каскадно. Совершенно нормально, что к элементу применяются разные селекторы. Рассматривает, например, следующее:
<div class="wrapper">
<div id="foo" class="bar" style="some rules">Test</div>
</div>
Следующие правила повлияют на элемент "foo":
.wrapper {
//some other rules
}
#foo {
// some more rules
}
.bar {
// some more rules
}
Правила для приоритетов можно найти здесь .
Я всегда советую использовать Плагин Firefox "firebug" . Он покажет вам, какие именно свойства оцениваются для конкретного элемента и почему, с акцентом на переопределения во время каскада.
Порядок в файле CSS имеет значение только в том случае, если селекторы имеют одинаковую специфичность.
Подробнее о специфичности селекторов: Энди Кларк написал Specificity Wars, который является лучшим обзором того, как они работают.