混合器和继承选择器

混合器使用语法@mixin标示符定义,需要大量重用代码,或重复使用代码,时使用,能够解决代码重用的问题,提高代码的复用性,(使用场景:把复用性高的代码放到里面,便于复用)

调用:通过@include调用

<style>
    /*混合器*/
    @mixin border-radius {
        border-radius: 20px;
        -webkit-border-radius: 20px;
        -moz-border-radius: 20px;
        
    }
    .button{
        list-style: none;
        background-color: pink;
        color: white;
        /*混合器的调用*/
        @include border-radius;
    }
</style>

应用场景比较多时:一组多个属性放到一个单元

他包含了css规则的最终样式

混合器规则(他可以包含标签选择器) 

传参

 混合器传参

@mixin color($normal,$hover,$visited){
    color:$normal;
    &:hover{
        color:$hover;
    }
    &:visited{
        color:$visited;
    }
}
a{
    @include color(red,green,blue)
}
/*按照顺序写,如果不按照顺序的话,要在实际参数前加上形参的名字*/
a{
    @include color($hover:green,$visited:blue,$normal:red)
}
/*混合器传参 key:value可以设置默认值*/
@mixin color($normal,$hover:$normal,$visited:$normal){
    color:$normal;
    &:hover{
        color:$hover;
    }
    &:visited{
        color:$visited;
    }
}
/*设置默认值的时候只用传默认值的参数就可以了*/
a{
    @include color(red)
}

选择器的继承

一个选择器继承另一个选择器的样式,使用@extend来实现它(把共有的属性抽离出来,然后让其余有需要这个样式的选择器去继承这个共有的选择器,两个,甚至多个选择器共有的属性,选择器独有的属性单独显示出来

<style>
    .div{
        width:100%;
        height:40px;
    }    
    .group{
        background-color:pink;
        @extend .div;
    }
</style>

继承的高级用法(继承一个html元素的样式)

.inherit{
    background-color: plum;
    @extend a;
}
/*.inherit继承a标签的所有样式*/

继承生成的代码比混合选择器要少(继承增加的是选择器而不是属性)

混合选择器不会层叠规则所以不会引起权重问题

不能使用后代选择器去继承css规则,可以用选择器去继承后代选择器

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值