mixin是可以重用的一组CSS声明。mixin有助于减少重复代码,只需声明一次,就可在文件中引用。

可以看出,mixin类似变量,不同的是变量存储值,mixin存储一组css声明。mixin可以传入参数。

要创建一个mixin,可以使用@mixin指令:

@mixin mixin-name() {
/* css 声明 */
}

一旦创建了mixin,就可以引用它,使用@include指令后跟mixin的名称:

...
@include mixin-name();
...

举例说明

mixin的一个常见用法是浏览器厂商前缀。

当浏览器厂商添加新的非标准CSS特性时,通常会标明厂商前缀,表示该特性只在特定浏览器上有效。

例如,-webkit-border-radius在Chrome和Safari浏览器有效,而-mozilla-border-radius在Firefox上有效。

对于这样的特性,通常需要包含所有浏览器的对应特性声明,以便兼容这些浏览器,这里就可以用minxin来实现:

@mixin border-radius() {
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
-ms-border-radius: 8px;
border-radius: 8px;
} aside {
border: 1px solid orange;
@include border-radius();
}

经过编译会输出以下css内容:

aside {
border: 1px solid orange;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
-ms-border-radius: 8px;
border-radius: 8px; }

mixin 参数

可以给mixin传入参数,mixin中的css声明将更加灵活。

示例:

@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
-ms-border-radius: $radius;
border-radius: $radius;
} aside {
border: 1px solid orange;
@include border-radius(7px);
}

经过编译会输出以下css内容:

aside {
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
-ms-border-radius: 7px;
border-radius: 7px; }

mixin是sass中一个非常有用的功能。

最新文章

  1. MySQL存储过程与存储函数的区别
  2. WebLogic中的一些基本概念
  3. Emgu学习之(四)——图像阈值
  4. [转]js中的字符串函数集和代码片段
  5. shell环境
  6. iOS开发网络篇—多线程断点下载
  7. Node.js Web模块
  8. 使用telnet操作memcache,一般不常用
  9. react基于webpack和babel以及es6的项目搭建
  10. Qt根据类名创建对象(元对象反射)
  11. DB2 权限控制
  12. 简单的线性回归问题-TensorFlow+MATLAB·
  13. Android 异步框架 RxJava2
  14. [UE4]Slot
  15. JavaScript如何实现拖放功能
  16. canvas 背景透明
  17. Azkaban调度器
  18. 010---Django与Ajax
  19. 使用unlist将日期型数据的列表转换为向量时,出现的异常
  20. linux yum安装指定版本mysql

热门文章

  1. 六 Hibernate多表操作&级联&外键维护
  2. Eclipse创建一个动态maven项目详细步骤
  3. SciPy 图像处理
  4. 第一单元总结:基于基础语言、继承和接口的简单OOP
  5. 阿里云安装mysql,初始化密码修改
  6. 5G时代能携号转网,你会提前换新手机吗?
  7. (转)如何判断VPS是基于哪种虚拟技术?Xen、OpenVZ、Xen HVM、KVM还是VMware
  8. tensorflow学习笔记(二)常量、变量、占位符、会话
  9. 富文本API
  10. 06.swoole学习笔记--异步tcp服务器