好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Sass混合宏实例介绍

在Sass中,我们可以使用[混合宏(mixin)]来处理经常被多个地方使用的相同的CSS代码块。混合宏,跟JavaScript中的函数很相似,我们可以称之为[Sass中的函数]。

 

一、混合宏的定义和调用

在Sass中,我们使用[@mixin]来定义一个混合宏,然后使用[@include]来调用一个混合宏。

语法:

 //定义一个混合宏
@mixin 混合宏名
{
    样式属性1:取值1;
    样式属性2:取值2;
    ……
}
//调用一个混合宏
选择器
{
    @include 混合宏名;
} 

说明:

Sass中的混合宏跟C语言的宏是非常相似的。所谓的[宏],指的是可重用的代码块。

@mixin用来定义一个混合宏,@include用来调用一个混合宏。此外,@mixin跟CSS3中的@font-face和@media语法是一样的。

举例:

 @mixin radius
{
    border-radius:5px;
    -webkit-border-radius:5px;
    -moz-border-radius:5px;
}
#header
{
    color:red;
    @include radius;
}
#footer
{
    color:green;
    @include radius;
} 

编译出来的CSS代码如下:

 #header
{
    color: red;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
}
#footer
{
    color: green;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
} 

 

二、混合宏的参数

在Sass中,我们不仅可以定义[不带参数的混合宏],也可以定义[带参数的混合宏]。其中,混合宏的参数可以是1个,也可以是N个。

举例:带一个参数的混合宏

 @mixin radius($radius)
{
    border-radius:$radius;
    -webkit-border-radius:$radius;
    -moz-border-radius:$radius;
}
#header
{
    color:red;
    @include radius(3px);
}
#footer
{
    color:green;
    @include radius(5px);
} 

编译出来的CSS代码如下:

 #header
{
    color: red;
    border-radius: 3px;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
}
#footer
{
    color: green;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
} 

举例:带多个参数的混合宏

 @mixin center($width,$height)
{
    width: $width;
    height: $height;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -($height) / 2;
    margin-left: -($width) / 2;
}
div
{
    @include center(100px,80px);
} 

编译出来的CSS代码如下:

 div 
{
    width: 100px;
    height: 80px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -40px;
    margin-left: -50px;
} 

分析:

这个混合宏里面的CSS代码是一个功能代码块,是用来同时实现元素的水平居中和垂直居中的。在实际开发中,对于这些功能代码块,我们都是配合混合宏(mixin)来使用,非常的简单快速。现在大家体会到Sass比纯CSS强大的地方了吧。

在Sass中,我们还可以为混合宏传递的参数定义默认值。混合宏参数的默认值,跟变量的默认值是非常相似的,小伙伴们记得对比一下,这样更能加深理解和记忆。

举例:参数带默认值

 @mixin radius($radius:3px)
{
    border-radius:$radius;
    -webkit-border-radius:$radius;
    -moz-border-radius:$radius;
}
#header
{
    color:red;
    @include radius;
}
#footer
{
    color:green;
    @include radius(5px);
} 

编译出来的CSS代码如下:

 #header
{
    color: red;
    border-radius: 3px;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
}
#footer
{
    color: green;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
} 

分析:

在这个例子中,我们给[混合宏radius]传了一个参数[$radius],并且给这个参数定义了一个默认值[3px]。如果我们页面有很多地方的圆角都是[3px]的话,那么这种默认值的方式就会非常好用。因为在调用的时候,我们只需要调用默认的[混合宏radius]就可以了。

查看更多关于Sass混合宏实例介绍的详细内容...

  阅读:27次

上一篇

下一篇

第1节:Sass安装步骤    第2节:Sass 继承、占位符和混合宏    第3节:Sass变量简介    第4节:Sass插值实例讲解    第5节:Sass 教程 - Sass入门学习    第6节:Sass代码重用    第7节:Sass开发工具介绍    第8节:Sass的三种基本运算介绍    第9节:Sass继承实例讲解    第10节:Sass混合宏实例介绍    第11节:Sass流程控制@if语句    第12节:Sass流程控制@for循环    第13节:Sass流程控制@each循环    第14节:Sass基本运算介绍    第15节:Sass 数据类型详细介绍    第16节:Sass 嵌套方式讲解    第17节:Sass语法基础总结    第18节:Sass四种数字运算详细介绍    第19节:实现Sass注释的三种方式    第20节:Sass流程控制详细介绍    第21节:Sass占位符实例讲解    第22节:Sass颜色运算详细介绍    第23节:Sass字符运算介绍    第24节:Sass流程控制@while循环