You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li { display: inline-block; }
a {
display: block;
padding: 6px12px;
text-decoration: none;
}
}
输出
nav ul {
margin: 0;
padding: 0;
list-style: none;
}
nav li {
display: inline-block;
}
nav a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
Sass拾遗
写在前边
上周的工作中,一部分是在和
scss
接触。之前项目中使用less
更多,sass
在写过几个页面后因为语法繁琐就没继续。因对sass
没有充分了解,所以不敢妄自下结论,决定对sass
文档做一次完整的了解。中文文档竟满篇中英文结合表示一些不满,开始翻着看看sass
官网了解。了解,然后就明白了:sass
官网文档,纯翻译来说,Sass中文文档已经尽力了。本篇是对认华scss基础语法与在datatable项目中的运用的补充,和自己在整理过程中的一点看法,安装过程略。
特征Features
.sass文件 or .scss文件
两种形式可以通过输入以下命令,很容易随时转换:
交互界面Interactive Shell
shell中输入
sass -i
可以直接调出交互界面,用于打印输出:预处理
书写CSS开始是件简单愉悦的事,随着项目深入,没有程序的逻辑关系,导致维护越来越麻烦。所以
sass
号称就是解决你的烦恼,css
中没有变量,我们给你。没有嵌套,我们给你。总体来说,就是实现css代码的可复用。如何编译?
基本
实时编译
注意:如
scss
文件和css
在同一目录,执行watch
没有实时监控编译效果,此部分官方未提到缓存Caching
Sass会将编译过的模板和
partials
存入缓存,加快依赖关系较多的文件再次编译时的时间。如不希望缓存,可以在执行操作时,将
:cache
设置为`false操作Options
sass
有四种编译风格:执行以下命令,
sass
文件下所有的scss
文件目录需要执行编译,在css
文件夹下输出嵌套风格的代码引入Import
scss使用
@import
引入其他文件,避免了大段大段代码集合在单个文件中。注意:此部分scss改写了css原本的
import
方法,原因是,css使用import
或多次HTTP请求,在项目中一般不会用到。输出
注意:
import
如引入的文件是css
,或者是url地址
,仍然会按照原生的css
执行,即文件会做多次http
请求,所以在项目中,最好统一使用scss
格式,直接输出完整编译的文件。片段Partials
通过
_partial.scss
方式命名。scss编译时会自动忽略此部分文件,不会直接输出partial.css
文件。同时也可以通过importpartial
引入,无需加下划线。变量Variables
scss使用
$
符号来定义变量,例子输出
嵌套Nesting
嵌套顾名思义,俄罗斯套娃,一层套一层,使用类似
html
层级的写法,解决默认css
样式堆积的问题,简化了继承的操作,更直观。但官方也提到:过犹不及,过度使用,造成代码维护困难。恩,是的,变通的方法是可以选择给对应的元素增加类,减少嵌套带来的后期维护问题。
输出
混合Minxins
Minxins
可解决枯燥的写css3前缀属性带来的繁琐(当然构建工具更方便解决此类问题,此处只是举例说明Minxins用法)定义:
@mixin
使用:
@include
输出
继承Extend/Inheritance
类似混合实现的效果,不过继承无需
@mixin
定义,使用@extend
继承之前定义的类或其他。吐槽:混合和继承,在
less
中完全可以通过定义一个类函数如message(){…}
轻松实现,是为sass
不够友善的地方。输出
占位选择%
考虑到项目的推进,很多依赖无需层层嵌套,可以选择使用占位符来解决输出冗余问题:
输出
操作符Operators
基本的
+
,-
,*
,/
,%
输出
数组List
sass中的数组,有两种形式可以任意选择:
键值对Maps
可以定义
key
和value
值插入值Interpolation
scss中插入值,需要使用
#{变量}
的形式,示例如下:输出:
函数Function
sass提供的函数用到的比较少,以下给出链接以后查找时方便一些:
Sass Function
以上,了解过程中,
sass
开始接触,会有很变扭的感觉,因为包括文档在内,有一部分都在说明ruby环境下如何执行...同时发挥sass
的能力,需要结合compass
。关于compass
,目前粗浅有以下两点了解:sass
的学习成本最后
从前端发展角度,目前
compass
有点尴尬处境,个人认为可以采用PostCss + Sass/Less
配合自动化工具来推动新的项目。参考:
Sass官网
PostCSS 是个什么鬼东西?
另外,附一个compass学习地址:
Sass和Compass必备技能之Compass
The text was updated successfully, but these errors were encountered: