Ответ 1
Селекторы атрибутов - это очень гибкий способ управления стилями для крупномасштабного CSS, поскольку селектор атрибутов всегда будет иметь специфичность 0-0-1-0
.
[aria-*]
отлично подходят для использования в качестве стилей, и я также рекомендую использовать пользовательские атрибуты [data-*]
, чтобы заполнить пробелы, где вам может понадобиться одноразовый. Разумеется, селектор классов следует продолжать использовать, однако вы можете сделать некоторые очень элегантные расширения стиля с помощью селекторов атрибутов:
[data-foo] {
color: red;
}
[data-foo="bar"] {
color: blue;
}
[data-foo="fizz"] {
color: green;
}
Каждый из этих селекторов имеет одинаковую специфичность, и каскад позволит применять стили соответствующим образом.
Вы можете создать свою собственную форму классов с помощью селектора [attr~="value"]
, если это необходимо.
Использование атрибута "содержит" селектор, может быть полезно для метода, который я называю "классными изображениями"
Одним из скрытых преимуществ использования атрибутов над классами является увеличение производительности в JavaScript. Вместо того, чтобы проверять наличие класса на элементе (что очень легко ошибиться), браузеры поддерживали getAttribute
, hasAttribute
и setAttribute
в течение длительного времени.