基本语法
注释
SASS 中的注释一般有两种,//和/**/,例如:
scss
// 不会出现在编译内容中的注释
/* 除压缩模式以外都出现的注释 */
.box {
color: red;
}其中/**/还有另外一种用法,通常在样式文件中显示版权信息
scss
/*! 始终存在的注释,即使是压缩模式,通常用来撰写版权信息 */
/*! copyright by wangtunan */
.box {
color: red;
}嵌套
SASS 允许将一套CSS样式嵌套进入另外一套样式中,内层的样式将它外层的选择器作为父选择器,嵌套功能避免了重复输入父选择器,而且令复杂的css结构 更易于管理 ,例如:
scss
.box {
background-color: #fff;
.item {
background-color: #58a;
}
p,
span {
font-size: 16px;
}
}- 编译结果:
css
.box {
background-color: #fff;
}
.box .item {
background-color: #58a;
}
.box p,
.box span {
font-size: 16px;
}父选择器(&)
基于嵌套规则,在SASS中有一个比较重要的选择器就是父级选择器(&),在SASS中,它使用&代表外层的父级选择器,这让在复杂场景下重复父级选择器成为可能,例如:添加伪类,实现BEM等等。
scss
.box {
&::after {
content: "";
display: inline-block;
width: 100px;
height: 3px;
}
&__item {
background-color: #58a;
&--title {
font-size: 16px;
}
}
&__row {
background-color: #f60;
}
}- 编译结果
css
.box::after {
content: "";
display: inline-block;
width: 100px;
height: 3px;
}
.box__item {
background-color: #58a;
}
.box__item--title {
font-size: 16px;
}
.box__row {
background-color: #f60;
}占位符选择器(%)
当我们在撰写一些样式库的时候,有些样式我们并不关心具体的样式名,只关心样式的内容,此时可以通过占位符选择器(%)来实现。
占位符选择器的好处是:
在不通过
@extend引用的时候不会编译到最终的css代码中。不用强制外部用户遵循样式库的样式命名。
scss
%zhanwei {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
// 不引用,占位符代码不编译
.title {
font-size: 14px;
}
// 引用,占位符代码编译
.title {
@extend %zhanwei;
font-size: 14px;
}