css:selector_weight
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| css:selector_weight [2022/09/19 23:03] – создано so_v_a | css:selector_weight [2026/08/06 09:19] (текущий) – so_v_a | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | CSS. Вес селектора | + | < |
| - | Все CSS-селекторы имеют свой вес, который определяет как взаимодействуют одинаковые свойства, | + | |
| - | Иногда это может создавать трудности, | + | # CSS. Вес селектора |
| - | Пример | + | Все CSS-селекторы имеют свой **вес**, который определяет **как взаимодействуют одинаковые свойства, |
| + | Иногда это может создавать трудности, | ||
| + | |||
| + | Пример: | ||
| + | ``` | ||
| <div id=" | <div id=" | ||
| < | < | ||
| Строка 14: | Строка 17: | ||
| </ul> | </ul> | ||
| </ | </ | ||
| + | ``` | ||
| + | |||
| + | ```css | ||
| #container A { | #container A { | ||
| background: orange; | background: orange; | ||
| } | } | ||
| + | |||
| .list A { | .list A { | ||
| background: mediumspringgreen; | background: mediumspringgreen; | ||
| } | } | ||
| + | ``` | ||
| + | |||
| Казалось бы, ссылки в тексте должны получить оранжевый фон, а ссылки в списке — зеленый, | Казалось бы, ссылки в тексте должны получить оранжевый фон, а ссылки в списке — зеленый, | ||
| + | ## Принцип расчета | ||
| - | Принцип расчета | ||
| Специфичность селектора рассчитывается по 4-м позициям: | Специфичность селектора рассчитывается по 4-м позициям: | ||
| - | 0 0 0 0 | + | | 0 | 0 | 0 | 0 | |
| - | style="" | + | |: |
| + | |style="" | ||
| Для каждого из них подсчитывается количество подходящих элементов в селекторе, | Для каждого из них подсчитывается количество подходящих элементов в селекторе, | ||
| Пример: | Пример: | ||
| + | ```murkup | ||
| #container <a> | #container <a> | ||
| - | 0 1 0 1 | + | ``` |
| - | style="" | + | | 0 | 1 | 0 | 1 | |
| + | |: | ||
| + | |style="" | ||
| + | |||
| + | ```murkup | ||
| .container <ul> <a> | .container <ul> <a> | ||
| - | 0 0 1 2 | + | ``` |
| - | style="" | + | |
| - | Вес селекторов (по убыванию): | + | | 0 | 0 | 1 | 2 | |
| - | * * | + | |: |
| - | style="" | + | |style="" |
| - | # | + | |
| - | .class 0, | + | ## Вес селекторов (по убыванию): |
| - | [attr=value] 0, | + | |
| - | LI 0,0,0,1 | + | | * | * | |
| - | * 0,0,0,0 | + | |: |
| + | |style="" | ||
| + | |#id|0,1,0,0| | ||
| + | |.class|0,0,1,0| | ||
| + | |[attr=value]|0,0,1,0| | ||
| + | |< | ||
| + | |*|0,0,0,0| | ||
| У стилей, | У стилей, | ||
| - | Переопределить стили, заданные в style, можно дописав !important к значению свойства в таблице стилей. | + | Переопределить стили, заданные в style, можно дописав |
| Обратный вариант — универсальный селектор *, он не имеет веса: 0,0,0,0. | Обратный вариант — универсальный селектор *, он не имеет веса: 0,0,0,0. | ||
| - | Примеры: | + | **Примеры: |
| + | |||
| + | `< | ||
| + | |||
| + | `<ul> <li>` - 0,0,0,2 — селектор c двумя тегами весит больше, | ||
| - | < | + | `.orange` |
| - | <ul> <li> - 0,0,0,2 — селектор | + | `.orange |
| - | .orange - 0,0,1,0 — селектор с классом | + | `# |
| - | .orange <a> < | ||
| - | #page .orange - 0,1,1,0 — селектор с ID перевесит всё, кроме inline-стилей. | + | ## Итог |
| - | Итог | ||
| Теперь сравним селекторы из исходного примера: | Теперь сравним селекторы из исходного примера: | ||
| - | #container A - 0,1,0,1 | + | `#container A` - 0,1,0,1 |
| - | .list A - 0,0,1,1 | + | `.list A` - 0,0,1,1 |
| 0,1,0,1 > 0,0,1,1 — хорошо видно, что селектор с ID весит больше, | 0,1,0,1 > 0,0,1,1 — хорошо видно, что селектор с ID весит больше, | ||
| - | #css | ||
/var/www/html/dokuwiki/data/attic/css/selector_weight.1663628580.txt.gz · Последнее изменение: (внешнее изменение)
