:root¶
Псевдокласс :root определяет корневой элемент документа.
В HTML этот селектор всегда соответствует элементу , но в стилях приоритет :root выше, чем у селектора html .
Синтаксис¶
1 2 3
:root /* . ; */ >
Спецификации¶
- Selectors Level 4
- Selectors Level 3
Пример¶
Использование :root полезно для объявления CSS Переменных:
1 2 3 4
:root --main-color: hotpink; --pane-padding: 5px 42px; >
CSS :: Псевдокласс :root
Псевдокласс :root (от англ. root – корень, коренной) позволяет выбрать корневой элемент, которым в html -документе является элемент , например, :root .
Селектор псевдоклассов напоминает селектор классов, но в отличие от классов, псевдоклассы в разметке html -документа не указываются и отделяются от указанного в селекторе элемента двоеточием «:» . При этом выбираются элементы необходимого типа, которые соответствуют требованиям указанного в селекторе псевдокласса.
Синтаксис
Ссылки
Примеры
HTML Результат htmlCodes
Пример №1 :rootТеперь текст всех элементов в документе по умолчанию будет иметь синий цвет.
Меня это тоже касается!
html.okpython.net Copyright © 2016-2023.
:root
Селектор для выбора корневого элемента в HTML и SVG. Часто используют для кастомных свойств.
Время чтения: меньше 5 мин
Открыть/закрыть навигацию по статье
Обновлено 9 мая 2023
Кратко
Скопировать ссылку «Кратко» Скопировано
Псевдокласс :root нужен для обращения к самому главному родительскому элементу документа. Его также называют корневым элементом. В случае HTML-документа самым главным родителем всей страницы будет тег . Часто :root используется для того, чтобы задавать кастомные свойства.
Пример
Скопировать ссылку «Пример» Скопировано
Укажем в документе нужный нам шрифт и создадим несколько кастомных свойств:
:root font-family: 'Oswald', sans-serif; --button-size: 40px; --main-color: #bada55;>:root font-family: 'Oswald', sans-serif; --button-size: 40px; --main-color: #bada55; >
Как пишется
Скопировать ссылку «Как пишется» Скопировано
Пишется, как обычный псевдокласс: после двоеточия пишем слово root. Однако в отличие от других псевдоклассов :root полностью самостоятельный, его не используют в связке с другими селекторами.
Как понять
Скопировать ссылку «Как понять» Скопировано
Корневой элемент — это самая главная обёртка в документе, самый первый родитель. В HTML-документах псевдокласс :root будет ссылаться на тег . Поскольку CSS работает ещё и в SVG-, и XML-файлах, для них корневой элемент будет другим. В SVG-документах родителем будет тег , а в XML-документах — тег .
На практике
Скопировать ссылку «На практике» Скопировано
Лена Райан советует
Скопировать ссылку «Лена Райан советует» Скопировано
Поскольку :root — это псевдокласс, его специфичность будет выше, чем селекторов по тегу html или svg .
В примере ниже фон документа окрасится в персиковый цвет, а не в томатный.
:root background-color: peachpuff;> html background-color: tomato;>:root background-color: peachpuff; > html background-color: tomato; >
CSS: Переменные
Современный сайт содержит тысячи строк стилей. Стили для блоков, текста, небольших областей — всё это часто лежит в одном месте. Представьте ситуацию: есть определённый оттенок красного цвета, который мы используем во множестве различных блоков.
Насколько удобно будет изменить все значения, если захочется изменить базовый цвет? Правильно — придётся находить все значения внутри файла и заменять их на новые.
Долгое время это было одной из главных проблем CSS. С появлением стандарта CSS3 эта проблема ушла благодаря переменным.
Переменные в программировании — небольшой участок памяти, в котором мы храним нужное значение. К этому значению всегда можно обратиться из любого доступного места.
Как и в программировании, в CSS можно указать переменные, которые будут доступны в течение всего процесса разработки сайта. Если используются переменные, то можно быстро заменить одни значения на другие, вместо того, чтобы заменять значения свойств вручную.
Переменная создаётся с помощью конструкции —имя-переменной . Имя переменной вы можете выбрать сами. Для примера создадим переменную —main-color , которая будет содержать базовый цвет страниц. Пускай он будет чёрным:
--main-color: #000000;
За такой простотой скрывается то, что переменные имеют разные «области видимости» — участки файла, откуда ими можно воспользоваться. Это большая тема, поэтому разберём только «глобальную область видимости». Это даст возможность использовать переменную в любом участке CSS файла.
Для создания глобальной переменной её нужно указать в специальной конструкции :root . Обычно это делается в самом начале CSS файла:
:root
Теперь можно использовать переменную в любой части нашего CSS-кода. Это делается с помощью специальной конструкции var(—имя-переменной) .
:root < --main-color: #000000; >.news-block < background-color: var(--main-color); >.left-sidebar
Если мы хотим установить другой оттенок чёрного цвета, достаточно изменить только значение переменной —main-color , и все изменения автоматически применятся к блокам с классами .news-block и .left-sidebar
Задание
Создайте переменную —main-blue и установите, в качестве значения, голубой цвет #00bfff . Переменную укажите в :root . Стили запишите в теге
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
