Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【一起来烧脑】一步Sass学会体系

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

作者头像
达达前端
发布于 2019-07-20 12:28:23
发布于 2019-07-20 12:28:23
54100
代码可运行
举报
文章被收录于专栏:达达前端达达前端
运行总次数:0
代码可运行

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

image.png

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Convert Sass to SCSS
$ sass-convert style.sass style.scss
 
# Convert SCSS to Sass
$ sass-convert style.scss style.sass

使用变量

变量声明

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$highlight-color: #F90;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$nav-color: #F90;
nav {
  $width: 100px;
  width: $width;
  color: $nav-color;
}
 
//编译后
nav {
  width: 100px;
  color: #F90;
}

变量引用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$highlight-color: #F90;
.selected {
  border: 1px solid $highlight-color;
}
 
//编译后
.selected {
  border: 1px solid #F90;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$highlight-color: #F90;
$highlight-border: 1px solid $highlight-color;
.selected {
  border: $highlight-border;
}
 
//编译后
.selected {
  border: 1px solid #F90;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$link-color: blue;
a {
  color: $link_color;
}
 
//编译后
a {
  color: blue;
}

嵌套CSS规则

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#content article h1 { color: #333 }
#content article p { margin-bottom: 1.4em }
#content aside { background-color: #EEE }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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
代码运行次数:0
运行
AI代码解释
复制
article a {
  color: blue;
  :hover { color: red }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
article a {
  color: blue;
  &:hover { color: red }
}

群组选择器的嵌套

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.button, button {
  margin: 0;
}

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

.container {
  h1, h2, h3 {margin-bottom: .8em}
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
$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
代码运行次数:0
运行
AI代码解释
复制
@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
代码运行次数:0
运行
AI代码解释
复制
//通过选择器继承继承样式
.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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Sass常用语法
选择所有跟在article后的同层article元素,不管它们之间隔了多少其他元素:
码客说
2024/07/26
1210
sass 基础——回顾
1.webstorm 自动编译SASS   下载安装包 http://rubyinstaller.org/downloads/   然后点击安装,路径为默认路径就行, 勾选以下两项     add Ruby executables to your PATH     Associate .rb and rbw files with this Ruby information   安装完,打开命令行 输入 gem install sass   webstorm 配置 点击setting选择tool下的f
用户1197315
2018/01/22
1.1K0
sass 基础——回顾
Less常用语法
Sass 也有它独特的优势,比如更多的功能、更强大的模块化系统和更广泛的社区支持。
码客说
2024/08/03
1500
Less常用语法
备份哪吒探针主题
自定义了哪吒探针主题,备份下css。一、样式<style>.nav-bar {padding:0;}.nav-menu li a {background-color:#2f405a;}.info-body ul {font-size:12px;width:auto;align-content:center;justify-items:stretch;}.info-body ul li {margin:.2em;padding:.2em;}ul {padding-inline-start:0;}.server
无敌小菜鸟
2022/11/04
1.8K0
备份哪吒探针主题
前端架构师技术之Sass
CSS 仅仅是一个标记语言,不是编程语言,因此不可以自定义变量,也不可以引用。CSS 主要有以下缺点。
张哥编程
2024/12/13
850
Sass
如果你用了打包工具,比如Gulp、Webpack,又需要写比较多的样式的话,那用Sass来写CSS才是最好不过的。 相比较CSS,Sass能提供很多CSS无法达到的优越性。sass的出现,让前段样式写起来更有结构。各种原因就是,CSS那么难用你怎么还在用CSS。
杜金房
2020/12/21
1.3K0
Sass入门使用指南
&标识符: 在需要避免sass默认解套后空格连接父子选择器导致样式不生效的的情况下使用&处理,如遇到伪类选择器:hover等。
前端小鑫同学
2022/12/24
3.4K0
Sass入门使用指南
scss 学习
sass让人们受益的一个重要特性就是它为css引入了变量。你可以把反复使用的css属性值 定义成变量,然后通过变量名来引用它们,而无需重复书写这一属性值。或者,对于仅使用过一 次的属性值,你可以赋予其一个易懂的变量名,让人一眼就知道这个属性值的用途。
心安事随
2024/07/29
1380
第九十六期:scss中的选择器
当我们编写scss代码的时候,我们需要意识到,scss代码会编译成css代码。scss并不能保证css代码的可读性以及可维护性。
terrence386
2022/07/15
1.6K0
SASS用法介绍
SASS是一种CSS预处理器提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护。 安装SASS SASS需要ruby支持,还需要gem,gem是ruby的包管理工具,ruby 1.9.1是自带gem的,如果是用1.8版本的话,需要另外安装。如果是windows的话,需要安装rubygems。 SASS一般会和Compass一起使用,这个也可以用gem来安装。 Ruby安装完之后,运行 gem install sass --pre gem install compass -
Bob.Chen
2018/05/02
1.7K0
Sass(Scss)、Less的区别与选择 + 基本使用
Sass(Scss)、Less 都是 CSS 预处理器,他们定义了一种新的语言,其基本思想是,用一种专门的编程语言为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行 CSS 的编码工作。
老猫-Leo
2023/12/11
1.8K0
【项目实战】sass使用基础篇(上)
Sass是一种CSS预处理语言。CSS预处理语言是一种新的专门的编程语言,编译后形成正常的css文件,为css增加一些编程特性,无需考虑浏览器的兼容性(完全兼容css3),让css更加简洁、适应性更强,可读性更佳,更易于代码的维护等诸多好处。
马克社区
2022/04/01
6850
Sass速通(二):嵌套与作用域
在 Sass 中,可以在父选择器中写子选择器,以嵌套的形式来表达关联的关系,这样做可以减少我们重复书写父选择器的工作量。
lonelydawn
2021/09/26
1.7K0
Sass 快速入门学习
  众所周知css并不能算是一们真正意义上的“编程”语言,它本身无法未完成像其它编程语言一样的嵌套、继承、设置变量等工作。
笔阁
2018/09/04
1.2K0
Sass 快速入门学习
前端面试(4)less,sass,stylus
注意,border 后面必须加上冒号。 在嵌套的代码块内,可以使用&引用父元素。比如 a:hover 伪类,可以写成:
leader755
2022/03/08
1.4K0
CSS预处理器的对比 — sass、less和stylus
本文根据Johnathan Croom的《sass vs. less vs. stylus: Preprocessor Shootout》所译,整个译文带有我们自己的理解与思想,如果译得不好或不对之处还请同行朋友指点。如需转载此译文,需注明英文出处:http://net.tutsplus.com/tutorials/html-css-techniques/sass-vs-less-vs-stylus-a-preprocessor-shootout/,以及作者相关信息 ——作者:Johnathan Croom
laixiangran
2018/04/11
4.7K0
CSS预处理器的对比 — sass、less和stylus
SASS用法指南
学过CSS的人都知道,它不是一种编程语言。 你可以用它开发网页样式,但是没法用它编程。也就是说,CSS基本上是设计师的工具,不是程序员的工具。在程序员眼里,CSS是一件很麻烦的东西。它没有变量,也没有
ruanyf
2018/04/13
9740
SASS用法指南
CSS预处理——Sass
CSS 预处理器用一种专门的编程语言,进行 Web 页面样式设计,然后再编译成正常的 CSS 文件,以供项目使用。CSS 预处理器为 CSS 增加一些编程的特性,无需考虑浏览器的兼容性问题 解决的问题 嵌套规则:通过花括号的方式解决复杂的css父子样式嵌套问题。 变量规则:通过变量将公告样式抽离,减少冗余css代码。 提交逻辑 :可以像高级语言一样编写逻辑性的css代码
羊羽shine
2019/06/19
1.5K0
修改openssl库名
修改openssl的库名 /** * prism.js Github theme based on GitHub's theme. * @author Sam Clarke */ code[class*="language-"], pre[class*="language-"] { color: #333; background: none; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; text-align: left; white-space: pre; word-spacing: normal; word-break: normal; word-wrap: normal; line-height: 1.4; -moz-tab-size: 8; -o-tab-size: 8; tab-size: 8; -webkit-hyphens: none; -moz-hyphens: none; -ms-hyphens: none; hyphens: none; } /* Code blocks */ pre[class*="language-"] { padding: .8em; overflow: auto; /* border: 1px solid #ddd; */ border-radius: 3px; /* background: #fff; */ background: #f5f5f5; } /* Inline code */ :not(pre) > code[class*="language-"] { padding: .1em; border-radius: .3em; white-space: normal; background: #f5f5f5; } .token.comment, .token.blockquote { color: #969896; } .token.cdata { color: #183691; } .token.doctype, .token.punctuation, .token.variable, .token.macro.property { color: #333; } .token.operator, .token.important, .token.keyword, .token.rule, .token.builtin { color: #a71d5d; } .token.string, .token.url, .token.regex, .token.attr-value { color: #183691; } .token.property, .token.number, .token.boolean, .token.entity, .token.atrule, .token.constant, .token.symbol, .token.command, .token.code { color: #0086b3; } .token.tag, .token.selector, .token.prolog { color: #63a35c; } .token.function, .token.namespace, .token.pseudo-element, .token.class, .token.class-name, .token.pseudo-class, .token.id, .token.url-reference .token.variable, .token.attr-name { color: #795da3; } .token.entity { cursor: help; } .token.title, .token.title .token.punctuation { font-weight: bold; color: #1d3e81; } .token.list { color: #ed6a43; } .token.inserted { background-color: #eaffea; color: #55a532; } .token.deleted { background-color: #ffecec; color: #bd2c00; } .token.bold { font-weight: bold; } .token.italic { font-style: italic; } /* JSON */
Homqyy
2023/03/06
9310
修改openssl库名
【Sass学习笔记】004-Sass 的基本特性-基础(重要)
在有些编程语言中(如,JavaScript)声明变量都是使用关键词“var”开头,但是在 Sass 不使用这个关键词,而是使用大家都喜欢的美元符号“$”开头。我想用一张图来解释,我一直坚信,一图胜千言万语:
訾博ZiBo
2025/01/06
1720
相关推荐
Sass常用语法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验