sass.scss简单入门
最近研究了一下sass和scss,清晰结构化,在某些地方的确强大,所以写了一篇入门教程,大概15分钟左右就能明白基本原理
什么是sass(css预处理器)
Sass官网上是这样描述sass的,sass是一门高于css的元语言,他能用来清晰地,结构化的描述文件样式,有着比普通css功能更加强大的功能,sass能提供更简洁,更优雅的语法,同时提供多种功能来穿件可维护和管理的样式表.
SASS 和 SCSS 有什么区别?
文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 SCSS 是以“.scss”后缀为扩展名
语法书写方式不同,Sass 是以严格的缩进式语法规则来书写,不带大括号({})和分号(;),而 SCSS 的语法书写和我们的 CSS 语法书写方式非常类似。


命令编译:
sass <要编译的Sass文件路径>/style.scss:<要输出CSS文件路径>/style.css
单文件监听命令
sass --watch style.scss:style.css
GUI工具编译
自动化编译gulp
不同样式风格的输出方法
sass --watch style.scss:style.css --style compact
嵌套输出方式 nested
展开输出方式 expanded
紧凑输出方式 compact
压缩输出方式 compressed
$变量
普通变量
默认变量
$color:#ccc;
$color:#000 !default;
特殊变量(一般我们定义的变量都为属性值,可直接使用,但是如果变量作为属性或在某些特殊情况下等则必须要以#{$variables}形式使用。)
1.应用于class和属性
2.应用于复杂的属性值
嵌套
选择器嵌套
属性嵌套
伪类嵌套
例:hover
a{
color: #ff0000;
&:hover{
color: green;
}
}
需要在:hover前加&,不然选择的是a里面的元素hover
混合宏 @mixin 引用 @include
1、声明混合宏
@mixin border($color1,$color2){
border:1px solid $color1;
border-radius: 5px;
box-shadow: 4px 5px 3px 5px $color2;
}
2、调用混合宏
.aa{
width: 200px;
height: 200px;
@include border();
}
3、混合宏的参数 传一个不带值的参数 如上图的$color1,$color2
4、混合宏的参数 传带值的参数 (默认值) 可以在$color1,$color2后面加默认值,如($color1:#ccc,$color2:#ddd)
Eg:
@mixin css3($attr,$val){
-webkit-#{$attr}:$val;
-moz-#{$attr}:$val;
-ms-#{$attr}:$val;
-o-#{$attr}:$val;
#{$attr}:$val;
}
.bb{
@include css3(border-radius,10px);
}
继承 @extend
.ee{
width: 200px;
height: 300px;
@extend .bb;
}
占位符 %placeholder @extend
%ff{
width: 200px;
height: 200px;
}
.g{
@extend %ff;
}
只有在引入后占位符的样式才会生效
@import 引入另一个scss文件,一般引入公共样式
自定义函数@function
@function add($a,$b){
@return $a+$b;
}
.k{
width: add(200px,300px);
}
sass具有运算的特性,可以对数值型的Value(如:数字、颜色、变量等)进行加减乘除四则运算。
数据类型Data Type
Sass -i type-of()
1. 数字: 如,1、 2、 13、 10px;
2. 字符串:有引号字符串或无引号字符串,如,”foo"、 'bar'、 baz;
3. 颜色:如,blue、 #04a3f9、 rgba(255,0,0,0.5);
4. 布尔型:如,true、 false;
5. 空值:如,null;
6. 值列表:用空格或者逗号分开,如,1.5em 1em 0 2em。
函数
1. 数字函数: abs()、round()、ceil()、floor()
2. 字符串函数:to-upper-case()、to-lower-case()、str-length()、str-index()
3. 颜色:rgb()、lighten()、darken()
4. 值列表:length()、nth()、index()、append()、join()
注释
注释对于一名程序员来说,是极其重要,良好的注释能帮助自己或者别人阅读源码。在 Sass 中注释有两种方式:
1、类似 CSS 的注释方式,使用 ”/* */ ”
2、类似 JavaScript 的注释方式,使用“//”
两者区别,前者会在编译出来的 CSS 显示,后者在编译出来的 CSS 中不会显示,
Sass的控制命令
1. @if
三目判断语法为:if($condition, $if_true, $if_false)
2. @for循环
@for $i from <start> through <end>
@for $i from <start> to <end>
3. @while循环
4. @each循环
@each $var in <list>
sass.scss简单入门的更多相关文章
- Sass介绍及入门教程
Sass是什么? Sass是"Syntactically Awesome StyleSheets"的简称.那么他是什么?其实没有必要太过于纠结,只要知道他是“CSS预处理器”中的一 ...
- CSS预处理器 Less Sass,Scss 编译 Sourcemap调试
sass.less和stylus的安装使用和入门实践 SASS用法指南 Sass Basics CSS预处理器 css preprocessor 预处理器即preprocessor,预处 ...
- SCSS快速入门
SCSS快速入门 1. 使用变量sass引入了变量.通过变量名来引用它们,使用$符号来标识变量.且在CSS中并无他用,不会导致与现存或未来的css语法冲突. 1-1. 变量声明sass变量的声明和cs ...
- sass/scss 和 less的区别
一. Sass/Scss.Less是什么? Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(如变量 ...
- sass/scss 和 less对比
一. Sass/Scss.Less是什么? Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(如变量 ...
- 2019最新create-react-app创建的react中使用sass/scss,以及在react中使用sass/scss公共变量的方法
Sass(英文全称:Syntactically Awesome Stylesheets)是一个最初由Hampton Catlin设计并由Natalie Weizenbaum开发的层叠样式表语言.Sas ...
- 用IntelliJ IDEA创建Gradle项目简单入门
Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都 ...
- [原创]MYSQL的简单入门
MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...
- Okio 1.9简单入门
Okio 1.9简单入门 Okio库是由square公司开发的,补充了java.io和java.nio的不足,更加方便,快速的访问.存储和处理你的数据.而OkHttp的底层也使用该库作为支持. 该库极 ...
随机推荐
- Java ArrayList小程序理解
package Collection; import java.util.ArrayList; import java.util.Iterator; //import javax.xml.crypto ...
- HTTP协议详解【转】
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...
- 浅谈css中一个元素如何在其父元素居中显示
css如何垂直居中一个元素的问题已经是一个老生常谈的问题了.不管对于一个新手或者老手,在面试过程中是经常被问到的.前两天在看一个flex的视频教程,当中提到了有关元素的居中问题,所以今天小编就来扒一扒 ...
- Spring Mvc + Easyui中根据查询结果导出文件
项目是典型的SpringMvc + Easyui,需求是前台页面根据查询条件导出生成CSV文件. 基本流程是:前台页面通过表单提交的方式,请求后台,后台接受到查询参数,根据查询参数查询到数据集合,最后 ...
- React Native与原生项目连接与发布
前面的各种环境配置按照官方文档一步一步来,挺详细,宝宝在这里就不多说废话了. 其次,前面的配置,我参照的这个博主的文章React Native 集成到iOS原生项目 下面是宝宝掉过的坑(半径15M): ...
- ASP.NET Core MVC上传、导入、导出知多少
前言 本君已成夜猫子,本节我们来讲讲ASP.NET Core MVC中的上传,这两天才研究批量导入功能,本节顺便简单搞搞导入.导出,等博主弄妥当了再来和大家一并分享. .NET Core MVC上传 ...
- 指针与数据结构算法_链表(C语言)
一.变量: 声明一个变量系统是没有给这个变量分配内存空间的: 例: int j;//编译的时候是没有分配内存空间的 ;//计算机在编译的时候就会给这个i分配4个字节的内存空间 二.malloc动态分配 ...
- Prince2是怎么考试的?想了解P2
自己在项目管理培训的行业已经有了5年的时间,经历了很多的学员和企业,和他们交流的问题,话题也很多. 在前几年,对于项目经理来讲关注的很多是单项目管理的工具技术模板,谈论最多的是,进度延期,成本超支,范 ...
- Binary Tree Paths leetcode
Given a binary tree, return all root-to-leaf paths. For example, given the following binary tree: 1 ...
- 剑指offer_数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P. 并将P对1000000007取模的结果输出. 即输出P%100 ...