Sass中@mixin与@include有什么用
这篇文章主要介绍了Sass中@mixin与@include有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
Sass 是一种 CSS 的预编译语言。它提供了 变量(variables)、嵌套(nested rules)、 混合(mixins)、 函数(functions)等功能,并且完全兼容 CSS 语法。Sass 能够帮助复杂的样式表更有条理, 并且易于在项目内部或跨项目共享设计。
@mixin 指令允许我们定义一个可以在整个样式表中重复使用的样式。
@include 指令可以将混入(mixin)引入到文档中。
定义一个混入
混入(mixin)通过 @mixin 指令来定义。 @mixin name { property: value; property: value; … } 以下实例创建一个名为 “important-text” 的混入:
Sass 代码:
@mixinimportant-text{color:red;font-size:25px;font-weight:bold;border:1pxsolidblue;}
注意:Sass 的连接符号 – 与下划线符号 _ 是相同的,也就是 @mixin important-text { } 与 @mixin important_text { } 是一样的混入。
使用混入
@include 指令可用于包含一混入:
Sass @include 混入语法:
selector{@includemixin-name;}
因此,包含 important-text 混入代码如下:
实例
.danger{@includeimportant-text;background-color:green;}
将以上代码转换为 CSS 代码,如下所示:
Css 代码:
.danger{color:red;font-size:25px;font-weight:bold;border:1pxsolidblue;background-color:green;}
混入中也可以包含混入,如下所示:
实例
@mixinspecial-text{@includeimportant-text;@includelink;@includespecial-border;}
向混入传递变量 混入可以接收参数。
我们可以向混入传递变量。
定义可以接收参数的混入:
实例
/*混入接收两个参数*/@mixinbordered($color,$width){border:$widthsolid$color;}.myArticle{@includebordered(blue,1px);//调用混入,并传递两个参数}.myNotes{@includebordered(red,2px);//调用混入,并传递两个参数}
以上实例的混入参数为设置边框的属性 (color 和 width) 。
将以上代码转换为 CSS 代码,如下所示:
Css 代码:
.myArticle{border:1pxsolidblue;}.myNotes{border:2pxsolidred;}
混入的参数也可以定义默认值,语法格式如下:
实例
@mixinbordered($color:blue,$width:1px){border:$widthsolid$color;}
在包含混入时,你只需要传递需要的变量名及其值:
实例
@mixinsexy-border($color,$width:1in){border:{color:$color;width:$width;style:dashed;}}p{@includesexy-border(blue);}h2{@includesexy-border(blue,2in);}
将以上代码转换为 CSS 代码,如下所示:
Css 代码:
p{border-color:blue;border-width:1in;border-style:dashed;}h2{border-color:blue;border-width:2in;border-style:dashed;}
可变参数
有时,不能确定一个混入(mixin)或者一个函数(function)使用多少个参数,这时我们就可以使用 … 来设置可变参数。
例如,用于创建盒子阴影(box-shadow)的一个混入(mixin)可以采取任何数量的 box-shadow 作为参数。
实例
@mixinbox-shadow($shadows...){-moz-box-shadow:$shadows;-webkit-box-shadow:$shadows;box-shadow:$shadows;}.shadows{@includebox-shadow(0px4px5px#666,2px6px10px#999);}
将以上代码转换为 CSS 代码,如下所示:
Css 代码:
.shadows{-moz-box-shadow:0px4px5px#666,2px6px10px#999;-webkit-box-shadow:0px4px5px#666,2px6px10px#999;box-shadow:0px4px5px#666,2px6px10px#999;}
浏览器前缀使用混入 浏览器前缀使用混入也是非常方便的,如下实例:
实例
@mixintransform($property){-webkit-transform:$property;-ms-transform:$property;transform:$property;}.myBox{@includetransform(rotate(20deg));}
将以上代码转换为 CSS 代码,如下所示:
Css 代码:
.myBox{-webkit-transform:rotate(20deg);-ms-transform:rotate(20deg);transform:rotate(20deg);}
感谢你能够认真阅读完这篇文章,希望小编分享的“Sass中@mixin与@include有什么用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。