Вы можете использовать следующую конструкцию:
[class^="name"]{
&[class$="-1"]{
padding: 10px;
}
}
Для справки ЗАКАНЧИВАТЬ W3C Selectors section.
EDIT
CSS Version on JSFiddle
Как уже упоминалось Beterraba это также будет соответствовать .nameother-1
. Во избежание этого используйте следующее:
[class|="name"]{
&[class$="-1"]{
padding: 10px;
}
}
Если вы, например. хотите, чтобы соответствовать .name-1-2
вы можете сделать следующее:
[class|="name"]{
color: red;
&[class*="-1"]{
padding: 10px;
color: green;
&[class$="-2"]{
padding: 30px;
color: yellow;
}
}
}
Но это будет также соответствовать .name-15-2
. Чтобы избежать этого, вам нужно сделать что-то вроде этого:
[class|="name"]{
color: red;
&[class$="-1"]{
padding: 10px;
color: green;
}
&[class$="-1-2"]{
padding: 30px;
color: yellow;
}
}
Но это будет также соответствовать name-5-1-2
. И так далее .. Я думаю, что список бесконечен. Так или иначе, он становится очень нечитаемым. Я не рекомендую вам это делать. Почему бы просто не нацеливать эти элементы напрямую?
А что вы написали не работает? Какой CSS он генерирует? –
Зачем вы это делаете? –