Приоритет селекторов в CSS

Пояснения к статье:

  1. Селекторы — указатели, которые ссылаются на определенный элемент и изменяют его стилизацию.
  2. {background} — свойство фона в CSS.
  3. <ul>, <li>, <div>, <body> — HTML теги. Могут указываться в качестве селекторов.
  4. "style" — HTML тег, который позволяет изменить стилизацию элементов.

Здравствуйте, в этой статье мы расскажем вам о том, как определяется каскадность страницы. Вы узнаете о приоритете стилей в CSS.

Наверное у многих возникала такая проблема — некоторые стили применялись и отображались, а некоторые не работали. Почему так? Это связано с тем, что в CSS селекторы имеют свой приоритет, который влияет на их отображение.

Если вы укажите один и тот же блок с помощью 2‑х селекторов и зададите 2 фона, то будет применен только один. Будет отображаться только то свойство background, селектор которого имеет более высокий приоритет.

Давайте узнаем об этом подробнее.

Селекторы и их приоритет

На просторах интернета вы можете найти табличные описания, с множеством значений, которые и определяют приоритет селектора. Но мы разберем отдельные CSS селекторы, а также их места в порядке отображения.

Общие селекторы. Символ "*"

Для начала рассмотрим общий селектор, который указывается с помощью "звездочки". Свойства, которые находятся внутри него, применяются к каждому элементу страницы.

Это свойство редко используется, а если и используется то для того, чтобы убрать отступы и задать позиционирование страницы.

Приоритет селектора: 0

Внимание! В строке "Приоритет селектора" будут указываться значения по возрастанию. То есть, чем ниже значение, тем ниже приоритет.

Селекторы тегов

Следующие по списку — селекторы тегов. Они используются для того, чтобы задать стили для определенного тега на веб-странице.

Используется для создания общих стилей для каждого тега, так как применяется к каждому указанному тегу на странице.

Приоритет селектора: 1

Родительские и соседние селекторы. Псевдоселекторы.

В этом пункте мы рассмотрим сразу несколько селекторов. Сюда относятся родительские селекторы, соседние селекторы и псевдоселекторы.

Эти элементы используются чаще предыдущих, так как позволяют работать на более детализированном уровне, указывая стили для определенного участка веб-страницы.

Чем больше указано селекторов, тем выше специфичность. То есть, если вы сделаете запись <ul> <li>, то специфичность будет равна 2. Если же указать селектор <body> <div> <p> <a>, то специфичность будет равна 4.

Чем выше специфичность, тем выше приоритет селектора. Но 1 единица этого значения, перед другими селекторами, особой роли не играет.

Приоритет селектора: 3

Классы в HTML/CSS.

Далее идут классы, специфичность которых намного выше чем у тегов или родительских и соседских селекторов.

Классы являются самыми популярными селекторами, так как могут применяться к разным элементам веб-страницы, которые находятся в разных местах.

Повысить приоритет классов можно методом удвоения. Если вы укажите 2 класса в одном селекторе, то его приоритет возрастет в 2 раза.

Внимание! Если вы укажите 2 одинаковых класса в одном селекторе, то принцип удвоения работать не будет. Это касается и остальных селекторов.

Приоритет селектора: 4

Селекторы идентификаторов.

Далее идут селекторы с самым высоким приоритетом — идентификаторы.

Это элементы, которые используются для стилизации отдельных элементов. Используются реже, так как применяются только к 1 тегу.

С идентификаторами также работает принцип удвоения, но они и без этого имеют самый высокий приоритет.

Приоритет селектора: 5

Таблица специфичности

В предыдущем разделе мы разобрали общий приоритет селекторов. Но есть также и таблица специфичности.

Приоритет селекторов в HTML/CSS

Она показывает те же данные, но с большей точностью. В основном значения разнятся на 1-2, что большой роли не играет.

Пару слов о теге "style"

Теперь вы узнали всё о приоритете селекторов и можете их смело применять. Для примера задайте <background> и шрифт в теге <body>, можете создать свой класс или <id>.

После этого создайте тег "style", в теге <head>, и сбросьте все указанные свойства. Что у нас получилось? Исходная HTML страница.

Это связано с тем, что специфичность селекторов тега <style> равна 000. Из-за этого они перекрывают все внешние стили.

Заключение

Теперь вы знаете все о приоритетах и специфичности. Надеемся что вы больше не будете задаваться вопросом о том, почему не применяется фон или шрифт.

Не обязательно запоминать таблицу специфичности. Главное запомнить общую расстановку приоритетов. Желаем вам удачи в изучении!



Теги:
0

Оставить своё мнение

Ваш e-mail не будет опубликован. Обязательные поля помечены *