发表于: 2018-09-28 23:04:51
1 708
今天完成的事情:提交任务十。开始学习任务十一。修改一下任务十的一些瑕疵。
明天计划的事情:开始任务十一 十二的学习。学习scss学习一些新特性。
遇到的问题:看sass的资料。问题暂无。
收获:
SCSS 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。Sass 和 SCSS 其实是同一种东西,我们平时都称之为 Sass,两者之间不同之处有以下两点:
文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 SCSS 是以“.scss”后缀为扩展名
语法书写方式不同,Sass 是以严格的缩进式语法规则来书写,不带大括号({})和分号(;),而 SCSS 的语法书写和我们的 CSS 语法书写方式非常类似。
先来看一个示例:
Sass 语法:
$font-stack: Helvetica, sans-serif //定义变量$primary-color: #333 //定义变量body
font: 100% $font-stack
color: $primary-color
SCSS 语法:
$font-stark Helvetica, sans-serif;$primary-color: #333;body {
font: 100% $font-stack;
color: $primary-color;
}
编译出来的 CSS
body { font: 100% Helvetica, sans-serif; color: #333;
}
由于 SCSS 是 CSS 的扩展,因此,所有在 CSS 中正常工作的代码也能在 SCSS 中正常工作。也就是说,对于一个 Sass 用户,只需要理解 Sass 扩展部分如何工作的,就能完全理解 SCSS。大部分扩展,例如变量、parent references 和 指令都是一致的;唯一不同的是,SCSS 需要使用分号和花括号而不是换行和缩进。 例如,以下这段简单的 Sass 代码:
#sidebar
width: 30%
background-color: #faa
只需添加花括号和分号就能转换为 SCSS 语法:
#sidebar { width: 30%; background-color: #faa;
}
另外,SCSS 对空白符号不敏感。上面的代码也可以书写成下面的样子:
#sidebar {width: 30%; background-color: #faa}
一个关于@mixin、@extend、%placeholder的适用场景总结
- mixin 可以传变量
- extend 不可以传变量,相同样式直接继承,不会造成代码冗余;基类未被继承时,也会被编译成css代码
- placeholder 基类未被继承时不会被编译成css代码
评论