SASS має функцію, @extend
яка називається, що дозволяє селектору успадковувати властивості іншого селектора, але без копіювання властивостей (наприклад, міксин).
Чи має LESS також цю функцію?
SASS має функцію, @extend
яка називається, що дозволяє селектору успадковувати властивості іншого селектора, але без копіювання властивостей (наприклад, міксин).
Чи має LESS також цю функцію?
Відповіді:
Так, Less.js представлений extend
у версії 1.4 .
:extend()
Замість того, щоб реалізувати @extend
синтаксис at-rule ( ), використовуваний SASS та Stylus, LESS реалізував синтаксис псевдокласу, який дає можливість реалізації LESS гнучкість застосовуватись безпосередньо до самого селектора, або всередині оператора. Тож обоє будуть працювати:
.sidenav:extend(.nav) {...}
або
.sidenav {
&:extend(.nav);
...
}
Крім того, ви можете використовувати all
директиву і для розширення "вкладених" класів:
.sidenav:extend(.nav all){};
Ви можете додати список розділених комами класів, які ви хочете розширити:
.global-nav {
&:extend(.navbar, .nav all, .navbar-fixed-top all, .navbar-inverse);
height: 70px;
}
Розширюючи вкладені селектори, ви повинні помітити відмінності:
вкладені селектори .selector1
та selector2
:
.selector1 {
property1: a;
.selector2 {
property2: b;
}
}
Тепер .selector3:extend(.selector1 .selector2){};
виходи:
.selector1 {
property1: a;
}
.selector1 .selector2,
.selector3 {
property2: b;
}
, .selector3:extend(.selector1 all){};
виходи:
.selector1,
.selector3 {
property1: a;
}
.selector1 .selector2,
.selector3 .selector2 {
property2: b;
}
, .selector3:extend(.selector2){};
виходи
.selector1 {
property1: a;
}
.selector1 .selector2 {
property2: b;
}
і нарешті .selector3:extend(.selector2 all){};
:
.selector1 {
property1: a;
}
.selector1 .selector2,
.selector1 .selector3 {
property2: b;
}
@extend
синтаксис at-rule ( ), реалізований SASS та Stylus, який, як правило, зарезервований для надання інструкцій чи директив CSS-аналізатору в браузері." <- що це, значить, означає? Пахне маркетинговим мовленням.
.sibling-1 {
color: red
}
.sibling-2 {
background-color: #fff;
.sibling-1();
}
Вихідні дані
.sibling-1 {
color: red
}
.sibling-2 {
background-color: #fff;
color: red
}
Перегляньте https://codepen.io/sprushika/pen/MVZoGB/