Перейти к основному содержимому

Селекторы атрибутов CSS

С помощью селекторов атрибутов можно выбирать и стилизовать HTML-элементы по атрибуту, по значению атрибута или по тому и другому. Они записываются в квадратных скобках [].

Вот какие селекторы есть в CSS:

  • [attribute] - Выбирает элементы, у которых есть этот атрибут
  • [attribute="value"] - Выбирает элементы, атрибут которых содержит в точности это значение
  • [attribute~="value"] - Выбирает элементы, значение атрибута которых включает определённое слово
  • [attribute|="value"] - Выбирает элементы, значение атрибута которых точно равно указанному значению или начинается с этого значения и дефиса (-)
  • [attribute^="value"] - Выбирает элементы, значение атрибута которых начинается с определённого значения
  • [attribute$="value"] - Выбирает элементы, значение атрибута которых заканчивается определённым значением
  • [attribute*="value"] - Выбирает элементы, значение атрибута которых где-либо содержит определённое значение

Совет: По умолчанию сопоставление чувствительно к регистру. Если добавить i перед закрывающей скобкой, как в [attribute="value" i], сопоставление будет выполняться без учёта регистра.


Селектор CSS [attribute]

Чтобы [attribute] выбрал элемент, достаточно самого наличия атрибута.

В примере ниже он выбирает каждый элемент <a> с атрибутом target:

Пример

Каждый элемент <a> с атрибутом target получает жёлтый фон.

Prompt
Продемонстрируйте селектор CSS [attribute]. Используйте селектор "a[target]", чтобы задать background-color: yellow на всех элементах , у которых есть атрибут target. Включите несколько ссылок, некоторые с атрибутом target, а некоторые без него, чтобы показать разницу.
Output: complete HTML page

Селектор CSS [attribute="value"]

При [attribute="value"] атрибут должен ещё и иметь одно точное значение.

В примере ниже выбираются только элементы <a> с target="_blank":

Пример

Жёлтый фон получают только элементы <a> с target="_blank".

Prompt
Продемонстрируйте селектор CSS [attribute="value"]. Используйте селектор a[target="_blank"], чтобы задать background-color: yellow на всех элементах с target="_blank". Включите несколько ссылок с разными значениями target (например, _blank, _self, _top) и некоторые без атрибута target, чтобы показать, что стилизуются только ссылки с target="_blank".
Output: complete HTML page

Селектор CSS [attribute~="value"]

Поиск определённого слова в значении атрибута — назначение [attribute~="value"].

В примере ниже он выбирает элементы, у которых атрибут title представляет собой список слов, разделённых пробелами, включающий «flower»:

Пример

Жёлтая рамка отмечает каждый элемент, атрибут title которого содержит слово «flower».

Prompt
Продемонстрируйте селектор CSS [attribute~="value"]. Используйте селектор [title~="flower"], чтобы задать жёлтую сплошную рамку 5px на всех элементах, у которых атрибут title содержит слово «flower» как отдельное слово. Включите элементы с title="flower", title="summer flower", title="flower new", title="my-flower" и title="flowers", чтобы показать, что выбираются только совпадения целых слов, разделённых пробелами.
Output: complete HTML page

Селектор CSS [attribute|="value"]

Элемент соответствует [attribute|="value"], когда значение атрибута равно указанному значению или начинается с этого значения и следующего сразу за ним дефиса (-).

Примечание: Требуется целое слово: либо отдельно, например top, либо с последующим дефисом (-), например top-text.

Пример

Жёлтый фон применяется к элементам, у которых значение атрибута class равно точно «top» или начинается с «top-».

Prompt
Продемонстрируйте селектор CSS [attribute|="value"]. Используйте селектор [class|="top"], чтобы задать background: yellow на элементах, у которых значение атрибута class равно точно «top» или начинается с «top», за которым следует дефис. Включите элементы с class="top", class="top-text", class="top-header", class="topcontent" и class="content", чтобы показать, какие из них совпадают.
Output: complete HTML page