Нет, ваш первый способ написать это правильно. Вы можете искать только одно совпадение за раз с помощью селектора атрибутов, поэтому самая близкая вещь, представляющая собой смесь двух ваших методов:
.foo[class~="a"],
.foo[class~="b"],
.foo[class~="c"],
.foo[class~="d"] {
/* stuff */
}
Что на самом деле не является сокращением или чем-то еще: P Лучший способ выбора по классам - это обычный способ с .className
. Селекторы атрибутов действительно полезны только для выбора других атрибутов, или если у вас есть класс, который начинается с определенного слова и использует css3. Например, вы можете использовать что-то вроде:
.foo[class^="mah-class"]{ }
Что будет соответствовать mah-class-a
mah-class-b
mah-classAHHH
... и т. Д.