less 技巧 css extend

:extend是一个伪类,使用它的选择器,将和它引用的选择器一起使用它引用的选择器的样式,如:

先定义一个扩展的选择器,我们就叫它 .a,然后定义一个选择器 .b(用来扩展),在 .a内使用 :extend 扩展,代码如下:

.a{
    &:extend(.b);  //这里的 & 为 父选择符,代表的 父选择符 .a 扩展 .b
    font-size: 12px;
}
.b{
    font-weight: bold;
}

输出:

.a {
  font-size: 12px;
}
.b,
.a {
  font-weight: bold;  //这里 a 扩展也引用了 b 的样式
}

注意:如果这里的 .b 内没有定义任何样式,那么编译后的css中, 不会有 .b 的任何输出,相应的 .a 也不会扩展到任何样式

1.  :extend 语法

:extend()可以附加到选择器后面,也可以放到样式规则中,它看起来就像是一个选择器的伪类,在使用的时候我们可以选择性的加上 关键字 all

语法示例:

.a:extend(.b){}   //方法一:附加到选择器后
.a{
    &:extend(.b)    // 方法二:写在样式规则中
}

3.  :extend()在样式规则中使用

把 :extend() 放到多个选择器共用的样式规则集中,是把样式扩展到每个选择器的最佳选择。

下面来个对比:

直接把: extend() 放到样式规则中,

.a,
.c,
.d{
    &:extend(.b);
}
.b{
    font-size: 12rem;
}

输出:

.b,
.a,
.c,
.d {
  font-size: 12rem;
}

如果把 :extend 放在选择器后,那么需要单独对 .a , .c , .d单独处理,会增加代码量,后期维护也很繁琐

.a:extend(.b){}
.c:extend(.b){}
.d:extend(.b){}

4. 扩展 嵌套选择器

将:extend() 直接放在选择器后,可以扩展嵌套选择器样式规则,示例:

.my-table{
   .my-tr{
        font-size: 50px;
    }
}

.mt-other-table:extend(.my-table .my-tr){}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值