Sass混合器、继承(0725)

混合器     

Sass中的混合器类似于js的函数,将一段代码定义成混合器以实现代码的重用。

声明混合器:@mixin mixName
调用混合器 @include minName

混合器分为:无参 有参 有默认值

无参:

/*无参*/

@mixin name {
    font-size: 20px;
    font-weight: bold;
}

.p1 {
    color: red;
    @include name;
}

.p2 {
    color: yellowgreen;
    @include name;
}

编译后

/*无参*/
.p1 {
  color: red;
  font-size: 20px;
  font-weight: bold;
}

.p2 {
  color: yellowgreen;
  font-size: 20px;
  font-weight: bold;
}

有参:

/*有参*/

@mixin name2($a1, $a2, $a3, $a4, $a5) {
    width: $a1;
    height: $a2;
    background-color: $a3;
    border: $a4 solid $a5;
}

.div11 {
    @include name2(40px, 40px, pink, 2px, yellowgreen);
}

.div12 {
    @include name2(50px, 50px, red, 5px, yellowgreen);
}


编译后

/*有参*/
.div11 {
  width: 40px;
  height: 40px;
  background-color: pink;
  border: 2px solid yellowgreen;
}

.div12 {
  width: 50px;
  height: 50px;
  background-color: red;
  border: 5px solid yellowgreen;
}

有默认值:

/*有默认值*/

@mixin name3($a1, $a2, $a3, $a4:$a1) {
    width: $a1;
    height: $a2;
    background-color: $a3;
    font-size: $a4;
}

.div21 {
    @include name3(60px, 60px, red);
}


编译后


/*有默认值*/
.div21 {
  width: 60px;
  height: 60px;
  background-color: red;
  font-size: 60px;
}

继承

Sass中也可实现继承类似面向对象思想子类继承父类,sass可以继承多个父类 这个”父类“可以是类,id 标签 状态等。
继承语法 @extend name

/*继承 %占位符(不会被编译例:%jc)*/

.jc {
    width: 100px;
    height: 100px;
}

.div3 {
    display: flex;
}

.div31 {
    @extend .jc;
    background-color: aqua;
    border: 5px solid fuchsia;
}

.div32 {
    @extend .jc;
    background-color: seagreen;
    border: 5px solid saddlebrown;
}



编译后



/*继承 %占位符(不会被编译例:%jc)*/
.jc, .div32, .div31 {
  width: 100px;
  height: 100px;
}

.div3 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.div31 {
  background-color: aqua;
  border: 5px solid fuchsia;
}

.div32 {
  background-color: seagreen;
  border: 5px solid saddlebrown;
}

多个继承:

.one{
	color:red;
}
.two{

	border:1px solid red;
}
.three{
	@extend .one;
	@extend .two;
	//或者这样写@extend .one,.two
	//
	background:blue;
}
//编译后
.one, .three {
  color: red; 
}
.two, .three {
  border: 1px solid red;
}
.three {
  background: blue;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值