Блог Vaden Pro

Все о самостоятельном создании и продвижении сайтов

Все о селекторах атрибутов CSS

Раздел: 

Практически все верстальщики знают о существовании селекторов атрибутов css и хоть раз да встречали у себя в коде конструкции из разряда input[type="submit"], но лишь избранные единицы знают, что на самом деле их существует 7 разновидностей, каждая из которых открывает достаточно широкие возможности по отбору тегов из кода нашей страницы.

Описание селектора атрибутов CSS

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

Синтаксис – квадратные скобки внутри которых находится название атрибута.

Классификация и использование селекторов атрибутов

По наличию атрибута

[title] {
   text-decoration: underline;
}

Позволяет отобрать все элементы у которых задан атрибут с определенным названием. В нашем примере все теги у которых прописан title станут подчеркнутыми.

По точному значению атрибута

input[type="submit"] {
   background-color: green;
}

Пожалуй наиболее часто встречающаяся разновидность данного атрибута. Задает точное соответствие. Будут выбраны только те input, у которых атрибут type задан submit.

По частичному значению атрибута

p[class~="useful"] {
   color: red;
}

Позволяет отобрать элементы, среди заданных значений которых присутствует наше. Для лучшего понимания поясню на примере: все p у которых среди заданных классов встречается useful попадут под данный селектор. (“useful superText”- попадет,  “useful”- попадет,  “superText”- не попадет).

Селектор классов по сути является частным случаем данного селектора атрибутов.

По конкретным значениям атрибутов

[lang|="en"] {
   font-style: italic;
}

Отбор по атрибуту значение которого равно значению селектора или же содержит в себе данное значение с идущим после него дефисом.

Чтобы лучше понять скажу, что в примере элементы с lang="en", lang="en-us", lang="en-au" будут выбранны, а с lang="ru", lang="english" нет.

По началу значения атрибута

[alt^="pony"] {
   margin-bottom: 20px;
}

Отберет атрибуты значение которых начинается с заданного нами. Пояснения: alt=”ponyLand”, alt=”pony can fly”, alt=”pony” — будут выбраны, alt=”I want pony” — не будет выбрано.

По окончанию значения атрибута

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

img[src$=".png"] {
   width: 150px;
}

В примере будут выбраны все изображения, ссылающиеся на файлы .png.

По подстроке в значении атрибута

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

a[href*="vaden-pro.ru"] {
   font-size: 120%;
}

Выберутся все элементы включающие в себя интересную нам подстроку. Пояснение: ссылки с атрибутами href=”/” , href=”vaden-pro.ru”, href=” /vse-o-selektorah” — будут выбраны, а href=”http://vadenpro.ru” уже нет.

Комбинирование

a[title] {
   text-decoration: underline;
}

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

a[title][href*="vaden-pro.ru"] {
   text-decoration: underline;
}

А так мы подчеркнем только те ссылки у которых прописан тайтл и которые ссылаются на сайт vaden-pro.ru.