Выбор элементов по атрибуту в CSS
Возможно ли выбрать элементы в CSS по их HTML5 атрибутам данных (например, data-role
)?
3 ответ(ов)
Да, в современных браузерах можно выбирать атрибуты независимо от их содержимого с помощью следующих селекторов:
[data-my-attribute] {
/* Стили */
}
[anything] {
/* Стили */
}
Например, вот ссылка на код-пен: http://codepen.io/jasonm23/pen/fADnu.
Этот подход поддерживается значительной частью браузеров.
Стоит отметить, что данный метод также можно использовать в jQuery селекторах или с помощью document.querySelector
.
Эти CSS селекторы используются для выбора элементов на веб-странице в зависимости от значений атрибута data-value
. Вот краткий обзор каждого из них:
[data-value]
: Этот селектор выбирает все элементы, у которых существует атрибутdata-value
, независимо от его значения.[data-value="foo"]
: Здесь мы выбираем элементы, у которых атрибутdata-value
имеет точно значениеfoo
.[data-value*="foo"]
: Этот селектор выбирает элементы, атрибутdata-value
которых содержит подстрокуfoo
где-либо в своем значении.[data-value~="foo"]
: Данный селектор используется для выбора элементов, у которых атрибутdata-value
имеет значениеfoo
в виде одного из элементов списка, разделенного пробелами.[data-value^="foo"]
: Этот селектор выбирает элементы, у которых значение атрибутаdata-value
начинается сfoo
.[data-value|="foo"]
: Здесь мы выбираем элементы, у которых значение атрибутаdata-value
начинается сfoo
, и это значение может быть частью списка, разделенного дефисами (например,foo-bar
,foo
).[data-value$="foo"]
: Этот селектор выбирает элементы, у которых значение атрибутаdata-value
заканчивается наfoo
.
Эти селекторы позволяют довольно гибко фильтровать элементы в зависимости от значений атрибутов и могут значительно упростить работу с динамическими данными на странице.
Стоит отметить, что в CSS3 есть селекторы атрибутов для работы с подстроками:
[attribute^=value] { /* селектор: начинается с указанного значения */
/* Стили */
}
[attribute$=value] { /* селектор: заканчивается указанным значением */
/* Стили */
}
[attribute*=value] { /* селектор: содержит указанное значение */
/* Стили */
}
Эти селекторы позволяют вам выбирать элементы на основе значений их атрибутов, что делает стилизацию более гибкой. С помощью таких селекторов вы можете применить стили к элементам, даже если их атрибуты не являются полными совпадениями, а только частично соответствуют заданным условиям.
Как расположить div внизу своего контейнера?
Перенос строки в HTML с использованием '\n'
Как отключить перенос строк в HTML?
Установить фиксированную ширину столбца таблицы независимо от количества текста в ячейках?
Как сделать перенос строки с помощью CSS, не используя <br />?