前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【一起来烧脑】一步Sass学会体系

【一起来烧脑】一步Sass学会体系

作者头像
达达前端
发布2019-07-20 20:28:23
4940
发布2019-07-20 20:28:23
举报
文章被收录于专栏:达达前端达达前端

CSS 的辅助工具 增加了变量,嵌套,混合,导入 等高级功能

image.png

代码语言:javascript
复制
# Convert Sass to SCSS
$ sass-convert style.sass style.scss
 
# Convert SCSS to Sass
$ sass-convert style.scss style.sass

使用变量

变量声明

Sass变量声明和CSS属性的声明很像:

代码语言:javascript
复制
$highlight-color: #F90;
代码语言:javascript
复制
$nav-color: #F90;
nav {
  $width: 100px;
  width: $width;
  color: $nav-color;
}
 
//编译后
nav {
  width: 100px;
  color: #F90;
}

变量引用

代码语言:javascript
复制
$highlight-color: #F90;
.selected {
  border: 1px solid $highlight-color;
}
 
//编译后
.selected {
  border: 1px solid #F90;
}
代码语言:javascript
复制
$highlight-color: #F90;
$highlight-border: 1px solid $highlight-color;
.selected {
  border: $highlight-border;
}
 
//编译后
.selected {
  border: 1px solid #F90;
}
代码语言:javascript
复制
$link-color: blue;
a {
  color: $link_color;
}
 
//编译后
a {
  color: blue;
}

嵌套CSS规则

代码语言:javascript
复制
#content article h1 { color: #333 }
#content article p { margin-bottom: 1.4em }
#content aside { background-color: #EEE }
代码语言:javascript
复制
#content {
  article {
    h1 { color: #333 }    p { margin-bottom: 1.4em }
  }  aside { background-color: #EEE }
}
 /* 编译后 */
#content article h1 { color: #333 }
#content article p { margin-bottom: 1.4em }
#content aside { background-color: #EEE }

父选择器标识符& 下面这种情况sass就无法正常工作:

代码语言:javascript
复制
article a {
  color: blue;
  :hover { color: red }
}
代码语言:javascript
复制
article a {
  color: blue;
  &:hover { color: red }
}

群组选择器的嵌套

代码语言:javascript
复制
.button, button {
  margin: 0;
}

.container h1, .container h2, .container h3 { margin-bottom: .8em }

.container {
  h1, h2, h3 {margin-bottom: .8em}
}
代码语言:javascript
复制
article {
  ~ article { border-top: 1px dashed #ccc }
  > section { background: #eee }
    dl > {
        dt { color: #333 }
        dd { color: #555 }
  }
    nav + & { margin-top: 0 }
}

Sass 导入SASS文件 Sass的@import规则在生成css文件时就把相关文件导入进来

代码语言:javascript
复制
$link-color: blue;
$link-color: red;
a {
color: $link-color;
}

.blue-theme {@import "blue-theme"}
//生成的结果跟你直接在.blue-theme选择器内写_blue-theme.scss文件的内容完全一样。
.blue-theme {
  aside {
    background: blue;
    color: #fff;
  }

/*...*/的注释语法

Sass 混合器 混合器使用@mixin标识符定义

代码语言:javascript
复制
@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;
}
 
//sass最终生成:
.notice {
  background-color: green;
  border: 2px solid #00aa00;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  border-radius: 5px;
}

放在@include被调用的地方

选择器继承 通过@extend语法实

代码语言:javascript
复制
//通过选择器继承继承样式
.error {
  border: 1px solid red;
  background-color: #fdd;
}
.seriousError {
  @extend .error;
  border-width: 3px;
}

使用sass编写清晰、无冗余、语义化的css


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档