2017-01-12 3 views
1

Есть ли способ нацеливать элементы, которые должны иметь класс A, и может ли они иметь либо класс B, либо C или D или F ... и т. Д.? Требуется класс A, за которым следует один из других. Я не хочу повторять почти один и тот же код для каждого, так как в моем файле css довольно много.Целевые множественные классы CSS с и/или

Я играл с селекторами атрибутов, но не могу понять, надеялся ли я что-то пропустить.

+0

Возможно, вы могли бы что-то сделать с помощью небольшого JS, чтобы добавить класс к вещам, которые соответствуют определенным критериям. –

ответ

3

старый путь:

.a.b, .a.c, .a.d, .a.e, .a.f 

Предлагаемый способ (что несколько современных браузеров поддерживают)

.a:matches(.b, .c, .d, .e, .f) 

Некоторые браузеры поддерживают его как

.a:moz-any(.b, .c, .d, .e, .f) 
.a:webkit-any(.b, .c, .d, .e, .f) 

См MDN - The :any pseudo-class

+1

Я думаю, что Safari поддерживает: matches(), отличную статью в блоге [webkit blog] (https://webkit.org/blog/3615/css-selectors-inside-selectors-discover-matches-not-and-nth-child/). – Stickers

+0

это именно то, что я ищу, но если мне нужно использовать префиксы браузера, то мне все равно придется повторять три раза ... так же, как просто привязать их к старому пути ..... . или? –

+1

[Caniuse] (http://caniuse.com/#search=%3Amatches), результаты которого поддерживают браузеры: matches() 'и как. – TylerH