[关闭]
@brizer 2016-02-20T22:40:08.000000Z 字数 1131 阅读 1064

Sass学习笔记


前言

项目中的css预编译选择的是sass,准确的说应该是scss。由于之前没有用过,所以对其进行初步的学习。


简介

sass是css预处理的一种方法,作用在于使编写css变得更加简化。

sass与scss的区别在于sass没有大括号,通过缩减来控制代码,而scss则和css类似,保留了大括号语法。


语法

变量

sass中可以设置变量

  1. $blue : #1875e7; 
  2. div {
  3. color : $blue;
  4. }

如果变量需要镶嵌在字符串之中,就必须需要写在#{}之中。

  1. $side : left;
  2. .rounded {
  3. border-#{$side}-radius: 5px;
  4. }

嵌套
嵌套特性非常常用,在工程中十分方便:

  1. nav {
  2. ul {
  3. margin: 0;
  4. padding: 0;
  5. list-style: none;
  6. }
  7. li { display: inline-block; }
  8. a {
  9. display: block;
  10. padding: 6px 12px;
  11. text-decoration: none;
  12. }
  13. }
  14. //-----------------------------------
  15. //转化结果为:
  16. nav ul {
  17. margin: 0;
  18. padding: 0;
  19. list-style: none;
  20. }
  21. nav li {
  22. display: inline-block;
  23. }
  24. nav a {
  25. display: block;
  26. padding: 6px 12px;
  27. text-decoration: none;
  28. }

在嵌套的代码块内,可以使用$引用父元素。比如a:hover伪类,可以写成:

  1. a {
  2.     &:hover { color: #ffb3ff; }
  3.   }

文件导入

我们通过@import来导入别的sass文件:

  1. @import 'reset';

mixin

mixin用来处理兼容性代码最合适不过了:

  1. @mixin box-sizing ($sizing) {
  2. -webkit-box-sizing:$sizing;
  3. -moz-box-sizing:$sizing;
  4. box-sizing:$sizing;
  5. }
  6. .box-border{
  7. border:1px solid #ccc;
  8. @include box-sizing(border-box);
  9. }
  10. //转为:
  11. .box-border {
  12. border: 1px solid #ccc;
  13. -webkit-box-sizing: border-box;
  14. -moz-box-sizing: border-box;
  15. box-sizing: border-box;
  16. }

这里注意定义@mixin和引用@include。

上面的特性是比较常用的,还有一些数据的运算和颜色的函数等其实不怎么常用,这里就先不整理了。


感悟

其实sass本身就是一门工具,如果css本身的功能足够强大了,它的作用也就越来越小了,所以说只在用到的时候看看就可以了。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注