К примеру, есть довольно сильно вложенное дерево dom, и так как довольно часто имена классов повторяются на разных уровнях вложенности то нет особой возможности сократить селекторы.
Вот как должен выглядеть css для общего селектора.
.ammenu-menu-wrapper.-desktop .ammenu-main-container .ammenu-items .ammenu-item.-main.-full .ammenu-submenu .ammenu-categories-container.ammenu-categories .ammenu-item.-child .ammenu-wrapper .ammenu-link.-level1 {
content: '';
width: 100%;
height: 150px;
background-size: 120px 120px !important;
background-repeat: no-repeat !important;
display: block;
padding-top: 120px;
}
И кроме того, есть индивидуальные селекторы, которые необходимо выделить, у каждого свой background.
Например,
.ammenu-menu-wrapper.-desktop .ammenu-main-container .ammenu-items .ammenu-item.-main.-full:nth-child(1) .ammenu-submenu .ammenu-categories-container.ammenu-categories .ammenu-item.-child:nth-child(1) .ammenu-wrapper .ammenu-link.-level1 {
background-image: url(/pub/media/wysiwyg/pp-shop/pp-mega-menue/mm_jahresplaketten.png);
}
И таких будет штук 25-30, первый nth-child от 1 до 8, и второй- от 1 максимум до 7.
Отличие только background.
И вот все это должно быть в less.
Каким образом все это должно выглядеть?
Ну если для общего селектора записать как положено
spoiler.ammenu-menu-wrapper {
&.-desktop {
.ammenu-main-container {
.ammenu-items {
.ammenu-item {
&.-main {
&.-full {
.ammenu-submenu {
.ammenu-categories-container {
&.ammenu-categories {
.ammenu-item {
&.-child {
.ammenu-wrapper {
.ammenu-link {
&.-level1 {
content: '';
width: 100%;
height: 150px;
background-size: 120px 120px !important;
background-repeat: no-repeat !important;
display: block;
padding-top: 120px;
overflow: visible;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
То что делать для конкретных? Ну не писать же 30 раз
spoiler.ammenu-menu-wrapper {
&.-desktop {
.ammenu-main-container {
.ammenu-items {
.ammenu-item {
&.-main {
&.-full {
&:nth-child(1) {
.ammenu-submenu {
.ammenu-categories-container {
&.ammenu-categories {
.ammenu-item {
&.-child {
&:nth-child(1) {
.ammenu-wrapper {
.ammenu-link {
&.-level1 {
background-image: url(/pub/media/wysiwyg/pp-shop/pp-mega-menue/mm_jahresplaketten.png);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
Есть какой то способ, позволяющий лаконично все это описать?
Или забить и записать все в css ситнаксисе, да не мучаться?