Sass 基本用法

什么是 Sass

Sass 是一种 CSS 的预处理器,可以使用 Sass 支持的规则进行编程,让编写 CSS 变得简单和可维护;
官方地址Sass中文网

基本用法

1. 变量

Sass 允许使用变量,声明方式和 css 属性声明很相似,注意 需要使用 $ 符号来标识变量;

$active-color: #00ffff;

.demo {
  color: $active-color;
}

// 编译后(CSS)
.demo {
  color: #00ffff;
}

如果需要镶嵌在字符中,必须写在 #{}

$prefix: prefix;
$side: left;

.#{$prefix}-border {
  border: 1px solid gray;
  border-#{$side}-radius: 5px;
}

// 编译后(CSS)
.prefix-border {
  border: 1px solid gray;
  border-left-radius: 5px;
}

2. 计算功能

Sass支持在代码中使用算式:

$base-right: 100px;

.demo {
    margin: (14px / 2);
    top: 50px + 100px;
    right: $base-right * 0.1;
}

// 编译后(CSS)
.demo {
  margin: 7px;
  top: 150px;
  right: 10px;
}

3. 嵌套

在 css 中通过各种选择器来定位元素,设置元素式样,比如简单选择器(id, class, tag ...),分组选择器(h1, h2, h3 ...), 后代选择器(.demo div), 父子选择器(.demo > div)等等,针对各类选择器写一个示例以供理解嵌套;

// 后代选择器
div span {
	color: gray;
}

// sass 写法
div {
	span {
		color: gray;
	}
}
// 父子选择器
.demo > div {
	color: gray;
}

// sass 写法
.demo {
	> span {
		color: gray;
	}
}
// 伪类选择器(&符号可以引用父元素)
a:hover {
	color: gray;
}

// sass 写法
a {
	&:hover {
		corlor: gray;
	}
}

4. 注释

Sass 支持标准的 CSS 多行注释 /* comment */, 多行注释会被完整输出到编译后的 CSS 文件中;也支持单行注释 // comment, 只保留在SASS源文件中,编译后被省略; 重要注释 /*! 重要注释 */, 即使是压缩模式编译,也会保留这行注释,通常可以用于声明版权信息;

代码重用

1. 继承

Sass 支持一个选择器继承另一个选择器。

.public {
	font-size: 14px;
}

// .demo 要继承 .public 选择器,要使用 @extend
.demo {
	@extend .public;
	color: gray;
}

// 编译后
.public, .demo {
  font-size: 14px;
}

.demo {
  color: gray;
}

2. Mixin

Sass 支持代码块重用
使用 @mixin 命令定义一个代码块

@mixin marginLeft{
	margin-left: 10px;
}

使用 @include 命令,调用这个 mixin

.demo {
	@include marginLeft;
	color: gray;
}

// 编译后
.demo {
  margin-left: 10px;
  color: gray;
}

mixin还可以指定参数和缺省值

@mixin marginLeft($left: 10px){
	margin-left: $left;
}

.demo {
	@include marginLeft(20px);
	color: gray;
}

//编译后
.demo {
  margin-left: 20px;
  color: gray;
}

3. 插入文件

使用 @import 命令插入外部文件

@import "../../styles/index.scss";

高级用法

1. 条件语句

使用 @if 和 @else 用来判断

@mixin marginLeft($left: 10px){
	@if $left < 10 {
	    margin-left: 10px;
	} @else {
	    margin-left: $left;
	}
}

.demo1 {
	@include marginLeft(5px);
	color: gray;
}

.demo2 {
	@include marginLeft(20px);
	color: gray;
}

// 编译后
.demo1 {
  margin-left: 10px;
  color: gray;
}

.demo2 {
  margin-left: 20px;
  color: gray;
}

2. 循环语句

以下列举 for 循环示例,除 for 循环, Sass 还支持 while循环 和 each;

@for $index from 1 to 3 {
  .border-#{$index} {
	border: #{$index}px solid gray;
	}
}

// 编译后
.border-1 {
	border: 1px solid gray;
}

.border-2 {
	border: 2px solid gray;
}

3. 自定义函数

Sass 支持编写自己的函数

@function add ($n1, $n2) {
    @return $n1 + $n2;
}

.demo {
    width: add(10px, 20px);
}

// 编译后
.demo {
  width: 30px;
}
posted @ 2022-06-30 10:07  太轻描淡写了  阅读(268)  评论(0编辑  收藏  举报