sass入门

2018-09-30  本文已影响0人  vsceo

变量

变量定义

$变量名: 变量值;

$color: red;

变量使用

$变量名

$变量名不能使用在CSS选择器和属性名中

$highlight-color: #F90;
$highlight-border: 1px solid $highlight-color;
.selected {
  border: $highlight-border;
}

//编译后

.selected {
  border: 1px solid #F90;
}

嵌套规则

普通嵌套

SCSS源码

@charset "UTF-8";

#content {
  background: red;
  article {
    font-size: 12px;
    h1 {
      font-size:24px;
    }
    p {
      line-height:24px;
    }
  }
  aside {
    background: green;
  }
}

CSS源码

#content {
  background: red; }
  #content article {
    font-size: 12px; }
    #content article h1 {
      font-size: 24px; }
    #content article p {
      line-height: 24px; }
  #content aside {
    background: green; }

父选择器嵌套 &

群组选择器嵌套

SCSS源码

@charset "UTF-8";

nav, aside {
  a {
    color: blue
  }
}

CSS源码

nav a, aside a {
  color: blue; }

组合选择器嵌套

属性嵌套

SCSS源码

@charset "UTF-8";

nav {
  //属性嵌套
  border: {
    style: solid;
    width: 1px;
    radius: 8px;
  };
  //指明例外规则
  margin:0 {
    bottom: 0;
  };
}

CSS源码

nav {
  border-style: solid;
  border-width: 1px;
  border-radius: 8px;
  margin: 0;
    margin-bottom: 0; }

导入SASS文件

@import

SCSS源码

@import "路径";

默认变量值

SCSS源码

@charset "UTF-8";

$box-width: 400px !default;
.box {
  width: $box-width;
}

CSS源码

.box {
  width: 400px; }

嵌套导入

SCSS源码

//width.scss

$box-width: 400px !default;

//theme.scss
aside {
  background: blue;
  color: white;
}


@charset "UTF-8";

@import "width";
.box {
  @import "theme";
  width: $box-width;
}

CSS源码

.box {
  width: 400px; }
  .box aside {
    background: blue;
    color: white; }

以上是两种导入方式

原生CSS导入

注释

// 这种注释内容不会出现在生成的css文件中
/* 这种注释内容会出现在生成的css文件中 */

混合器

混合器定义@mixin

SCSS源码

@mixin 混合器名称 {
    ......
}

混合器的使用@include

SCSS源码

@charset "UTF-8";

@mixin rounded-corners {
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
}

.notice {
  background-color: green;
  border: 2px solid #00aa00;
  @include rounded-corners;
}

CSS源码

.notice {
  background-color: green;
  border: 2px solid #00aa00;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px; }

使用混合器的场景

利用混合器,可以很容易地在样式表的不同地方共享样式。如果你发现自己在不停地重复一段样式,那就应该把这段样式构造成优良的混合器,尤其是这段样式本身就是一个逻辑单元,比如说是一组放在一起有意义的属性。

混合器中的CSS规则

SCSS源码

@mixin no-bullets {
  list-style: none;
  li {
    list-style-image: none;
    list-style-type: none;
    margin-left: 0px;
  }
}

ul.plain {
  color: #444;
  @include no-bullets;
}

CSS源码

ul.plain {
  color: #444;
  list-style: none; }
  ul.plain li {
    list-style-image: none;
    list-style-type: none;
    margin-left: 0px; }

混合器传参

SCSS源码

@charset "UTF-8";

@mixin link-colors($normal, $hover, $visited) {
  color: $normal;
  &:hover { color: $hover; }
  &:visited { color: $visited; }
}

//必须按顺序调用
a {
  @include link-colors(blue, red, green);
}

//不必按顺序调用
a {
  @include link-colors(
  $normal: blue,
  $visited: green,
  $hover: red
  );
}

CSS源码

a {
  color: blue; }
  a:hover {
    color: red; }
  a:visited {
    color: green; }

a {
  color: blue; }
  a:hover {
    color: red; }
  a:visited {
    color: green; }

混合器参数默认值

SCSS源码

@charset "UTF-8";

@mixin link-colors(
$normal,
$hover: $normal,
$visited: $normal
)
{
  color: $normal;
  &:hover { color: $hover; }
  &:visited { color: $visited; }
}

a {
  @include link-colors(red);
}

CSS源码

a {
  color: red; }
  a:hover {
    color: red; }
  a:visited {
    color: red; }

继承 @extend

继承占位符 %

混合器/继承/占位符区别

1040067-20161019114010342-630734152.jpg
上一篇 下一篇

猜你喜欢

热点阅读