css:selector_weight
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| css:selector_weight [2022/09/19 23:13] – so_v_a | css:selector_weight [2026/08/06 09:19] (текущий) – so_v_a | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | < | ||
| + | |||
| # CSS. Вес селектора | # CSS. Вес селектора | ||
| - | Все CSS-селекторы имеют свой **вес**, который определяет **как взаимодействуют одинаковые свойства, | + | Все CSS-селекторы имеют свой **вес**, который определяет **как взаимодействуют одинаковые свойства, |
| Иногда это может создавать трудности, | Иногда это может создавать трудности, | ||
| Пример: | Пример: | ||
| - | ```html | + | ``` |
| <div id=" | <div id=" | ||
| < | < | ||
| Строка 28: | Строка 30: | ||
| Казалось бы, ссылки в тексте должны получить оранжевый фон, а ссылки в списке — зеленый, | Казалось бы, ссылки в тексте должны получить оранжевый фон, а ссылки в списке — зеленый, | ||
| - | |||
| ## Принцип расчета | ## Принцип расчета | ||
| Специфичность селектора рассчитывается по 4-м позициям: | Специфичность селектора рассчитывается по 4-м позициям: | ||
| - | ^0^0^0^0^ | + | | 0 | 0 | 0 | 0 | |
| + | |: | ||
| |style="" | |style="" | ||
| Строка 43: | Строка 45: | ||
| #container <a> | #container <a> | ||
| ``` | ``` | ||
| - | + | | 0 | 1 | 0 | 1 | | |
| - | ^0^1^0^1^ | + | |: |
| |style="" | |style="" | ||
| Строка 51: | Строка 53: | ||
| ``` | ``` | ||
| - | ^0^0^1^2^ | + | | 0 | 0 | 1 | 2 | |
| + | |: | ||
| |style="" | |style="" | ||
| - | Вес селекторов (по убыванию): | + | ## Вес селекторов (по убыванию): |
| - | * * | + | |
| - | style="" | + | | * | * | |
| - | # | + | |: |
| - | .class 0, | + | |style="" |
| - | [attr=value] 0, | + | |#id|0,1,0,0| |
| - | LI 0,0,0,1 | + | |.class|0,0,1,0| |
| - | * 0,0,0,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.1663629193.txt.gz · Последнее изменение: (внешнее изменение)
