博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sass--混合指令 (Mixin Directives)
阅读量:6622 次
发布时间:2019-06-25

本文共 1975 字,大约阅读时间需要 6 分钟。

hot3.png

混合指令(@mixin、、 @content)

混合指令(Mixin)用于定义可重复使用的样式,避免了使用无语意的 class,比如 .float-left。混合指令可以包含所有的 CSS 规则,绝大部分 Sass 规则,甚至通过参数功能引入变量,输出多样化的样式。

定义混合指令  (Defining a Mixin: )

混合指令的用法是在  后添加名称与样式,比如名为 large-text 的混合通过下面的代码定义:

@mixin large-text {  font: {    family: Arial;    size: 20px;    weight: bold;  }  color: #ff0000;}混合也需要包含选择器和属性,甚至可以用 & 引用父选择器:@mixin clearfix {  display: inline-block;  &:after {    content: ".";    display: block;    height: 0;    clear: both;    visibility: hidden;  }  * html & { height: 1px }}

引用混合样式 @include (Including a Mixin: @include)

使用 @include 指令引用混合样式,格式是在其后添加混合名称,以及需要的参数(可选):

.page-title {  @include large-text;  padding: 4px;  margin-top: 10px;}编译为.page-title {  font-family: Arial;  font-size: 20px;  font-weight: bold;  color: #ff0000;  padding: 4px;  margin-top: 10px; }

参数 (Arguments)

参数用于给混合指令中的样式设定变量,并且赋值使用。在定义混合指令的时候,按照变量的格式,通过逗号分隔,将参数写进圆括号里。引用指令时,按照参数的顺序,再将所赋的值对应写进括号:

@mixin sexy-border($color, $width) {  border: {    color: $color;    width: $width;    style: dashed;  }}p { @include sexy-border(blue, 1in); }编译为p {  border-color: blue;  border-width: 1in;  border-style: dashed; }

参数变量 (Variable Arguments)

有时,不能确定混合指令需要使用多少个参数,比如一个关于 box-shadow 的混合指令不能确定有多少个 'shadow' 会被用到。这时,可以使用参数变量 … 声明(写在参数的最后方)告诉 Sass 将这些参数视为值列表处理:

@mixin box-shadow($shadows...) {  -moz-box-shadow: $shadows;  -webkit-box-shadow: $shadows;  box-shadow: $shadows;}.shadows {  @include box-shadow(0px 4px 5px #666, 2px 6px 10px #999);}编译为.shadowed {  -moz-box-shadow: 0px 4px 5px #666, 2px 6px 10px #999;  -webkit-box-shadow: 0px 4px 5px #666, 2px 6px 10px #999;  box-shadow: 0px 4px 5px #666, 2px 6px 10px #999;}

向混合样式中导入内容 (Passing Content Blocks to a Mixin)

在引用混合样式的时候,可以先将一段代码导入到混合指令中,然后再输出混合样式,额外导入的部分将出现在 @content 标志的地方:

@mixin apply-to-ie6-only {  * html {    @content;  }}@include apply-to-ie6-only {  #logo {    background-image: url(/logo.gif);  }}编译为* html #logo {  background-image: url(/logo.gif);}

 

转载于:https://my.oschina.net/u/3412211/blog/1550800

你可能感兴趣的文章
[俗一下]世界500强公司的面试问题与答案提示 [转]
查看>>
使用 Excel Services ,结合 Analysis Services 在 SharePoint 中发布报表
查看>>
SQL Server数据导入导出技术概述与比较
查看>>
format的用法
查看>>
DHCPv6 server port and DHCPv6 client port
查看>>
10个最佳的触控手式的JavaScript框架(转)
查看>>
BitmapFactory.Options避免 内存溢出 OutOfMemoryError的优化方法
查看>>
Python中通过Image的open之后,去show结果打不开bmp图片,无法正常显示图片
查看>>
DNGuard 免费的DotNet加密保护工具 V1.0
查看>>
编程中的命名设计
查看>>
easyui form validate总是返回false原因
查看>>
在(CListView)列表视图中添加右键菜单的方法
查看>>
推荐《HeadFirst设计模式》
查看>>
自定义服务器控件(处理不同的浏览器)
查看>>
解决IE6-IE7下li上下间距
查看>>
配置级别greenplum 可用空间计算
查看>>
聚集索引更新后会不会马上重新排序
查看>>
幸运大抽奖
查看>>
消除人声的方法
查看>>
Post请求
查看>>