学过CSS的人都知道,它不是一种编程语言。
你可以用它开发网页样式,但是没法用它编程。也就是说,CSS基本上是设计师的工具,不是程序员的工具。在程序员眼里,CSS是一件很麻烦的东西。它没有变量,也没有条件语句,只是一行行单纯的描述,写起来相当费事。
很自然地,有人就开始为CSS加入编程元素,这被叫做"CSS预处理器"(css preprocessor)。它的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件。
各种"CSS预处理器"之中,我自己最喜欢SASS,觉得它有很多优点,打算以后都用它来写CSS。下面是我整理的用法总结,供自己开发时参考,相信对其他人也有用。
============================================
SASS用法指南
作者:阮一峰
一、什么是SASS
SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护。
本文总结了SASS的主要用法。我的目标是,有了这篇文章,日常的一般使用就不需要去看官方文档了。
二、安装和使用
2.1 安装
SASS是Ruby语言写的,但是两者的语法没有关系。不懂Ruby,照样使用。只是必须先安装Ruby,然后再安装SASS。
假定你已经安装好了Ruby,接着在命令行输入下面的命令:
gem install sass
然后,就可以使用了。
2.2 使用
SASS文件就是普通的文本文件,里面可以直接使用CSS语法。文件后缀名是.scss,意思为Sassy CSS。
下面的命令,可以在屏幕上显示.scss文件转化的css代码。(假设文件名为test。)
sass test.scss
如果要将显示结果保存成文件,后面再跟一个.css文件名。
sass test.scss test.css
SASS提供四个编译风格的选项:
* nested:嵌套缩进的css代码,它是默认值。
* expanded:没有缩进的、扩展的css代码。
* compact:简洁格式的css代码。
* compressed:压缩后的css代码。
生产环境当中,一般使用最后一个选项。
sass --style compressed test.sass test.css
你也可以让SASS监听某个文件或目录,一旦源文件有变动,就自动生成编译后的版本。
// watch a file
sass --watch input.scss:output.css
// watch a directory
sass --watch app/sass:public/stylesheets
SASS的官方网站,提供了一个在线转换器。你可以在那里,试运行下面的各种例子。
三、基本用法
3.1 变量
SASS允许使用变量,所有变量以$开头。
$blue : #1875e7;
div {
color : $blue;
}
如果变量需要镶嵌在字符串之中,就必须需要写在#{}之中。
$side : left;
.rounded {
border-#{$side}-radius: 5px;
}
3.2 计算功能
SASS允许在代码中使用算式:
body {
margin: (14px/2);
top: 50px + 100px;
right: $var * 10%;
}
3.3 嵌套
SASS允许选择器嵌套。比如,下面的CSS代码:
div h1 {
color : red;
}
可以写成:
div {
hi {
color:red;
}
}
属性也可以嵌套,比如border-color属性,可以写成:
p {
border: {
color: red;
}
}
注意,border后面必须加上冒号。
在嵌套的代码块内,可以使用&引用父元素。比如a:hover伪类,可以写成:
a {
&:hover { color: #ffb3ff; }
}
3.4 注释
SASS共有两种注释风格。
标准的CSS注释 /* comment */ ,会保留到编译后的文件。
单行注释 // comment,只保留在SASS源文件中,编译后被省略。
在/*后面加一个感叹号,表示这是"重要注释"。即使是压缩模式编译,也会保留这行注释,通常可以用于声明版权信息。
/*!
重要注释!
*/
四、代码的重用
4.1 继承
SASS允许一个选择器,继承另一个选择器。比如,现有class1:
.class1 {
border: 1px solid #ddd;
}
class2要继承class1,就要使用@extend命令:
.class2 {
@extend .class1;
font-size:120%;
}
4.2 Mixin
Mixin有点像C语言的宏(macro),是可以重用的代码块。
使用@mixin命令,定义一个代码块。
@mixin left {
float: left;
margin-left: 10px;
}
使用@include命令,调用这个mixin。
div {
@include left;
}
mixin的强大之处,在于可以指定参数和缺省值。
@mixin left($value: 10px) {
float: left;
margin-right: $value;
}
使用的时候,根据需要加入参数:
div {
@include left(20px);
}
下面是一个mixin的实例,用来生成浏览器前缀。
@mixin rounded($vert, $horz, $radius: 10px) {
border-#{$vert}-#{$horz}-radius: $radius;
-moz-border-radius-#{$vert}#{$horz}: $radius;
-webkit-border-#{$vert}-#{$horz}-radius: $radius;
}
使用的时候,可以像下面这样调用:
#navbar li { @include rounded(top, left); }
#footer { @include rounded(top, left, 5px); }
4.3 颜色函数
SASS提供了一些内置的颜色函数,以便生成系列颜色。
lighten(#cc3, 10%) // #d6d65c
darken(#cc3, 10%) // #a3a329
grayscale(#cc3) // #808080
complement(#cc3) // #33c
4.4 插入文件
@import命令,用来插入外部文件。
@import "path/filename.scss";
如果插入的是.css文件,则等同于css的import命令。
@import "foo.css";
五、高级用法
5.1 条件语句
@if可以用来判断:
p {
@if 1 + 1 == 2 { border: 1px solid; }
@if 5 < 3 { border: 2px dotted; }
}
配套的还有@else命令:
@if lightness($color) > 30% {
background-color: #000;
} @else {
background-color: #fff;
}
5.2 循环语句
SASS支持for循环:
@for $i from 1 to 10 {
.border-#{$i} {
border: #{$i}px solid blue;
}
}
也支持while循环:
$i: 6;
@while $i > 0 {
.item-#{$i} { width: 2em * $i; }
$i: $i - 2;
}
each命令,作用与for类似:
@each $member in a, b, c, d {
.#{$member} {
background-image: url("/image/#{$member}.jpg");
}
}
5.3 自定义函数
SASS允许用户编写自己的函数。
@function double($n) {
@return $n * 2;
}#sidebar {
width: double(5px);
}
(完)
kk 说:
不懂ruby 和less比如何
2012年6月19日 15:54 | # | 引用
依树 说:
sass 和 less 都很好
但有没有什么好的编辑器配合啊?
好像用dreamweaver 来写的话,代码提示功能就没了,稍有不便。
以致我还一直没怎么尝试过这种方式
2012年6月19日 18:39 | # | 引用
Yong 说:
强大的东西果然都很复杂...
2012年6月19日 19:31 | # | 引用
爱早起 说:
我也想学CSS+DIV,一直懒惰!!!
2012年6月19日 20:52 | # | 引用
Zz 说:
我看twitter的bootstrap的时候有个less也是和这个差不多的,这些没准也会成为前端工程师的必备知识了,看来要抓紧时间学习一下。
2012年6月19日 20:58 | # | 引用
大春饵 说:
你好啊,我一直在使用less,我觉得您上面写的sass的功能less几乎全有,那么为什么您最后选择了sass呢?
2012年6月19日 21:46 | # | 引用
Lewis 说:
我觉的好的页面制作,他们面对的和要解决的问题都不是 sass 这种工具可以解决的,所以它的应用范围有限,有点程序员的一厢情愿,却不能满足实际快速开发和维护页面制作的需求,一句话,“它解决的问题不在点儿上”。
2012年6月19日 21:46 | # | 引用
RedNax 说:
LESS还是差了不少的,没有@extend,没有属性嵌套,没有@if和@for,我用下来还有不少bug(比如从javascript拿到的数据无法参与计算什么的)。
唯一的特点就是可以在网页上运行时解析,这感觉相当酷(但要说有啥好处其实也没多少)。
不过用这种实现CSS比直接写CSS畅快多了,尤其是单页面应用型网页。
2012年6月20日 00:35 | # | 引用
雪哥 说:
不太看好SASS,有点鸡肋的感觉。
2012年6月20日 01:03 | # | 引用
charry 说:
谢谢以前好还没注意,有这样好的工具!
2012年6月20日 10:42 | # | 引用
ep 说:
gem install sass
命令行提示HTTP RESPONSE 302错误,网上查找资料提示更新gem,经尝试无效,何解?
win7 x86
2012年6月20日 12:26 | # | 引用
bingo 说:
博主,您的网友捐助试验到现在已经一年了,可以公布数据让大家了解一下状况吗?
2012年6月20日 13:52 | # | 引用
yuhai 说:
SASS适合程序员,设计师可能更习惯于CSS
2012年6月20日 14:58 | # | 引用
阮一峰 说:
不好意思,请再等一下。
有报纸买走了这篇文章,我要等到他们发表以后,才能贴上来,大概在6月底吧。
2012年6月20日 15:00 | # | 引用
阮一峰 说:
Less要靠javascript解析,我不喜欢这种做法。另外,less的变量用@表示,我也不太习惯。
2012年6月20日 15:02 | # | 引用
articlesea 说:
一直用960 Grid System这种框架。
楼主怎么用ruby下的呢,有没有VS或QT下的推荐?
2012年6月20日 15:12 | # | 引用
Maplews 说:
挺累人的.. 我觉着用ruby还不如用javascript
2012年6月20日 18:28 | # | 引用
herbert d 说:
没学过CSS的路过。
2012年6月21日 09:17 | # | 引用
easoncxz 说:
不错。前阵子看貌似还是要收费的;今天一看竟然上github了。可以开始用了。
2012年6月21日 14:45 | # | 引用
三桂 说:
2012年6月22日 00:17 | # | 引用
三桂 说:
less同样也有ruby的gem,可以在本地进行preprocessor...
2012年6月22日 00:21 | # | 引用
red 说:
不要保存为.less文件,直接保存成.css,这样提示功能还是有的。
像这样:
<link rel="stylesheet/less" type="text/css" href="less.css">
2012年6月22日 18:45 | # | 引用
shenfeng 说:
Emacs倒是可以胜任。我试着用了一段时间,还愉快
2012年6月27日 07:56 | # | 引用
linus 脱袜子 说:
ERROR: Could not find a valid gem 'sass' (>= 0) in any repository
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
Errno::ETIMEDOUT: A connection attempt failed because the connected party di
d not properly respond after a period of time, or established connection failed
because connected host has failed to respond. - connect(2) (http://rubygems.org/
latest_specs.4.8.gz)
why?
2012年6月27日 23:08 | # | 引用
XX 说:
这类工具毫无意义。能节省时间能更方便快捷?没有!
2012年6月29日 02:33 | # | 引用
zk546113096 说:
貌似我还停留在纯的css上,这种还没试过,不过对于我懂点后台语言的来说,还好理解,如果那种只会html,css的是不很难理解这些了?
2012年6月29日 16:23 | # | 引用
kitty 说:
sass貌似把css变复杂了,支持您的博客,
2012年7月31日 17:48 | # | 引用
学徒 说:
请教阮一峰老师:
您是用什么编辑器来编辑SASS的。
我用的是Sublime,安装了SASS的package,可是还是不行。
谢谢!
2012年8月 3日 14:01 | # | 引用
小谈博客 说:
用了几年div+Css,竟然都没听说过还有这个神奇的工具,看来要好好了解了解!!
2012年9月23日 23:32 | # | 引用
hit9 说:
好复杂..我其实只是想扒下octopress 的高亮代码的css而已..
2012年10月16日 18:04 | # | 引用
WebExpressor 说:
用sublime text编辑器,可以安装sass开发包,就可以用提示功能了,我现在就用这个开发,很方便的
2012年11月29日 20:28 | # | 引用
4gouzi 说:
博主的代码中的缩进的空格都被转换成中文的空格了,所以直接复制过去在sass下会报错。
2012年12月10日 14:09 | # | 引用
惠库 说:
很感谢你呀, 正在考虑使用LESS, 还是SASS, 只是不想装RUBY...呵呵
2012年12月25日 13:00 | # | 引用
linus脱袜子 说:
全部试了一遍,发现@import和自带的颜色函数这两处有问题。按照博主的说法使用sass不能编译成功。
@import “path/xxx” //xxx 可以是xxx.scss 或者xxx.sass
这里用的是双引号而不是圆括号
而且 xxx文件的文件名必须为 _xxx.scss 或者 _xxx.sass
SASS官方文档说这叫 partial
@import
Stylesheets can get pretty big. CSS has an @import directive that allows you to break your styles up into multiple stylesheets, but each stylesheet takes a separate (slow) HTTP request. That’s why Sass’s @import directive pulls in the stylesheets directly. Not only that, but any variables or mixins defined in @imported files are available to the files that import them.
Sass has a naming convention for files that are meant to be imported (called “partials”): they begin with an underscore. Let’s create a partial called _rounded.scss to hold our rounded mixin.
In order to support both .scss and .sass files, Sass allows files to be imported without specifying a file extension. That means we can just import "rounded", rather than "rounded.scss".
嗯,关于颜色函数,是在sass的交互shell下使用
在命令行下先敲入 sass -i
这时会有 >> 提示
在敲入 lighten(#cc3, 10%)
会得出 #d6d65c
2012年12月26日 22:38 | # | 引用
阮一峰 说:
@linus脱袜子:
谢谢指出。import后面不能跟圆括号,已经改过来了。但是,文件名好像不用以下划线开头,下面的代码可以编译通过。
@import "./test.scss"
另外,颜色函数没有问题啊,我可以正常使用。
background-color:lighten(#cc3, 10%);
2012年12月27日 01:38 | # | 引用
苹果熊 说:
感觉有点鸡肋,现在css很熟悉了,用记事本也能写出一个网页~
2012年12月31日 16:09 | # | 引用
wangtuda 说:
sass本身很好,看用的人用在何处,怎么用了~
2013年1月22日 10:27 | # | 引用
pigyaa 说:
正在试用Sass,还不敢妄下评论。第一感觉就是把简单的CSS变复杂了
2013年1月31日 11:17 | # | 引用
轻扬 说:
还是喜欢手写css的说。。。。。
2013年2月 3日 01:32 | # | 引用
lorrylockie 说:
webstorm
2013年2月19日 13:19 | # | 引用
wencheng 说:
3.3 嵌套最后
在嵌套的代码块内,可以使用$引用父元素。比如a:hover伪类,可以写成:
应该是 & 代码中的正确
2013年2月25日 17:42 | # | 引用
gigi 说:
你好,很感谢您的介绍,只是使用后遇到问题,.scss的文件里面有中文注释的时候它会提示Syntax error: Invalid GBK character "\xE5"这样的错误,在网上搜索了一下还是没能解决,您知道有啥解决办法吗?
2013年3月21日 13:46 | # | 引用
小天 说:
其实less是可以node.js来编译生成css,再放到服务器那边呢。还有,如果 会用gvim的话,那有个脚本,可以实现语法高亮,保存时自动生成css。原来直接写css的好处全有了。还有less人性化的书写方式。less也有工具,可以将再有css代码转换为less(http://css2less.cc)。我想,如果是设计师的话,更喜欢用less.
2013年4月 6日 01:32 | # | 引用
hit9 说:
只是个预处理器嘛。看了下语法,感觉less, scss都不如sass简洁。看来是python写惯了,喜欢缩进了。。
2013年4月 8日 16:53 | # | 引用
QETHAN 说:
less的语法更轻便,喜欢less. Sass的语法太编程化了,虽然没压力,但是不给力。没有解放思维
2013年4月28日 15:46 | # | 引用
小徐 说:
不以下划线开头的文件也不会被编译啊
这是为什么呢?
我建立了3个文件colors.scss _widths.scss和test.scss
在test.scss中@import 前两个文件
然后命令行编译test.scss时 sass test.scss test.css
不会产生 color.css
这是为什么呢?请教
2013年4月30日 14:06 | # | 引用
chengyu.tao 说:
2013年6月10日 15:54 | # | 引用
shawn 说:
同问
2013年7月11日 18:04 | # | 引用
eastnx 说:
在文件的开头声明编码 @charset "utf-8";
2013年7月21日 12:44 | # | 引用
Havanna 说:
其实可以用compass工具的,而不必要一长串的命令
http://ihavanna.org/internet/2013-08/convert-scss-to-css.html
2013年8月12日 15:45 | # | 引用
peter.zheng 说:
@charset "utf-8";
在有中文顶部的地方都声明一下。注意要放在第一行。
2013年8月23日 13:41 | # | 引用
nan 说:
刚开始看 LESS 和 SASS 感觉是 LESS 语法更简单一些但运算功能好像弱一些,打算暂时先用 LESS 逐渐熟悉后再试试 SASS 吧……
2013年8月28日 19:10 | # | 引用
nan 说:
工具我在用 LiveReload 和 CodeKit 其实都挺方便,不需要 js 去做 LESS 编译的。
2013年8月28日 19:11 | # | 引用
Ju2ender 说:
3.3 嵌套,第四个 code block 上的说明,应是:
“在嵌套的代码块内,可以使用 & 引用父元素。比如a:hover伪类,可以写成:”
原文将 & 写成了 $
2013年9月 2日 19:24 | # | 引用
singlexyz 说:
3.3的一个是h1,一个是hi
2013年10月19日 18:37 | # | 引用
诸葛小觉 说:
用sublimetext吧~
2013年11月 1日 17:16 | # | 引用
hooboy 说:
在linux或者Mac下就不会有问题 比如用codekit和grunt就不会有问题
2013年11月30日 12:03 | # | 引用
hooboy 说:
或者给每个sass文件加上@charset "utf-8"; 只是在Mac或者Linux上写代码会比较酷~!
2013年11月30日 12:18 | # | 引用
materliu 说:
官方是这样说的:
Compass doesn't expose all of its options through the CLI, which this task makes use of. If you need an option not mentioned below you can either specify a path to a config.rb file in the config option or embed it directly into the raw option. Options defined in your Gruntfile will override those specified in your config.rb or raw property. config and raw are mutually exclusive.
所以这个问题很好解决。
compass: {
options: {
config: './config.rb',
}
}
在config.rb compass的配置文件中加一句:
# set the css file encoding
Encoding.default_external = "utf-8"
即可
2013年12月17日 16:29 | # | 引用
可可 说:
sass --watch app/sass:public/stylesheets 这句我怎么写怎么把错,您能给我解释下这个路径
2014年1月 6日 11:44 | # | 引用
可可 说:
大家可以装一个idea编辑器很强大的代码编辑工具
2014年1月 6日 18:00 | # | 引用
行者 说:
照着练习了,感谢。
2014年3月 4日 15:25 | # | 引用
roc 说:
div {
hi {
color:red;
}
}
此处代码有误
应为
div {
h1 {
color:red;
}
}
2014年5月 4日 09:50 | # | 引用
六度 说:
弱弱的问一下,在页面里引用的还是.css文件吧,那在浏览器里调试的话怎么找到SASS文件
2014年5月 8日 10:54 | # | 引用
Justin 说:
很明显 SASS 比 LESS 更强大,SASS 拥有条件语句,循环语句还可以自定义函数
2014年6月10日 14:19 | # | 引用
Jerry 说:
这SASS看起来,还是非常CSS化呀,呵呵。
2014年6月11日 12:30 | # | 引用
mamaloveu 说:
请问楼主:我本地安装好了, 然后在cmd 下面 运行了,确实可以转化成正常的css。
但是scss怎么在实际项目中使用呢?难道是自己把scss写好,然后运行好的css再放到网站上去?
还是在网站打开执行过程中生成呢?谢谢!
2014年6月26日 15:55 | # | 引用
Nightost 说:
峰哥:
建议开头加上这一段
sass 有两种语法
sass有两种后缀名文件:
一种后缀名为sass,不使用大括号和分号;
另一种就是我们这里使用的scss文件,这种和我们平时写的css文件格式差不多,使用大括号和分号。
在此也建议使用后缀名为scss的文件,以避免sass后缀名的严格格式要求报错。
因为百度搜索sass,第一个出现就是这篇。
我开始不知道,所以命名为sass,编译半天也不对。(其实有两种语法)
2014年7月 3日 10:49 | # | 引用
栩栩 说:
2014年7月21日 09:53 | # | 引用
不经意间 说:
3.3嵌套:引用父元素用&,写成了$
2014年8月20日 14:43 | # | 引用
少女的奇幻漂流 说:
是我读书读的少,还是这里真的又需要更正的地方?
没有border-#{$side}-radius 这种属性啊
2014年12月15日 23:37 | # | 引用
wenjie 说:
________________________
今天我才学到3年前的技术,真是惭愧,
我也遇到这个问题:
是因为SASS 需要Ruby
当你尝试着安装这些软件的时候,会出现许多你意想不到的错误,不要担心这个。安装任何的软件都不是那么顺心如意,比如经常会得到如下的错误信息:
Could not find a valid gem ‘sass’ (>= 0) in any repository.
Could not find a valid gem ‘compass (>= 0) in any repository.
或者你出现的错误信息与这些都不相同,但不管怎样,当你遇到这些问题时,你的第一反应就是“google”或者“百度”,并且有着尝试修复一下。很糟糕的事又来了,你对那些命令行一无所知,并且又没有现成的教程供你使用,“百度”、“google”又也查找不了有用的信息提供参考。
解决方案有两个:
切换到另一条网络连接,再尝试重新安装一次
如果安装还是不能通过,仍得到相同的错误结果,那么请你移步到《手动安装SASS和Compass样式框架》页面,这里有些好的建议,可能会解决你的问题。
教你如何快速安装SASS和Compass样式框架http://www.ft-love.com/install-sass-compass-step.html
《手动安装SASS和Compass样式框架》 http://www.ft-love.com/sass-compass-install-using.html
2015年1月 9日 14:56 | # | 引用
FoamValue 说:
以前就想学了,mark。
2015年3月 2日 09:17 | # | 引用
jujube 说:
请教一下:
font-family: 微软雅黑; 这样的中文格式好像不支持,是吗?
2015年3月11日 11:12 | # | 引用
苏亮 说:
3.3里面的h1写成了hi
2015年4月28日 14:29 | # | 引用
xixi 说:
too young too simple
2015年5月20日 21:09 | # | 引用
Jam 说:
你如果现在回头来看这个评论,会发现那时的自己有多么无知。
2015年6月12日 10:18 | # | 引用
白季飛龍 说:
好文要頂
2015年6月22日 13:34 | # | 引用
ziv 说:
写的很好,学习了!
3.3节中,“可以使用$引用父元素”有误,是使用&
2015年7月16日 13:44 | # | 引用
Bill 说:
正解。
2015年7月24日 16:47 | # | 引用
强哥 说:
Visual Studio 2013 + Web Essentials 2013 非常棒!支持LESS、SASS/SCSS,代码智能提示和css规则的浏览器支持提示,保存即编译,生成对应的*.css、*.css.map和*.min.css并支持文件折叠。
|->*.scss
|-->*.css
|--->*.css.map
|--->*.min.css
2015年8月 1日 18:12 | # | 引用
李毅平 说:
@materliu:
出现GBK这种问题只要在scss文件上加
@charset "utf-8"; 就可以了
2015年8月21日 16:58 | # | 引用
ypzhou 说:
好文 最近在学这个
2015年8月31日 15:31 | # | 引用
find_object 说:
应该是 Visual Studio + Web Workbench
2015年9月22日 17:30 | # | 引用
phc 说:
您好,请教一下,怎么让sass文件在sublime里面保存即编译,已经安装了sass文件,sublime里面安装了两个插件,还需要怎么配置,还是说sublime不支持保存即编译呢?
2015年9月24日 14:54 | # | 引用
louis 说:
Command+B
2015年10月23日 19:54 | # | 引用
余如意 说:
我想请问下,关于sass的百度百科上的文章和您的相同,是您的文章还是百度抄袭,您授权了?
2015年10月25日 13:46 | # | 引用
呆瓜 说:
阮兄 3.3嵌套里面
div {
h1 {
color:red;
}
}
手误了。。。
2015年11月18日 12:32 | # | 引用
xx 说:
这个是scss的示例吧?
2015年12月29日 23:46 | # | 引用
flywx 说:
阮老师你好!
请问在手机上怎么做到手指触摸屏幕时显示滚动条,手指移走后隐藏?
2016年1月 4日 16:05 | # | 引用
gray 说:
sublime配合插件可以的。
2016年1月12日 00:01 | # | 引用
mcfly 说:
这个要看你电脑端字库有没有安装微软雅黑这种字体了吧
2016年1月15日 19:35 | # | 引用
说:
1、这个??-moz-border-radius-#{$vert}#{$horz}: $radius;
2016年1月28日 14:57 | # | 引用
刀尖带着鞘 说:
博主写的很好,受用了。对于苦逼的写了很久的css代码的我来说,遇到这个,感觉非常好用,避免重复的代码能够节省大量的时间,对于商业性开发,能提高很高的效率。
2016年2月29日 10:57 | # | 引用
遮眼看人生 说:
看完这篇文章就已经学会了使用sass了,不说精通 入门已经是没有问题了,这么晚才看到这篇文章,不管怎么说,能够学到新的东西本身就是一种进步 ,谢谢老师
2016年4月 8日 09:14 | # | 引用
soulor 说:
复制代码到 http://www.sassmeister.com/ 跟运行结果对比着看会不会好点
2016年5月13日 20:46 | # | 引用
王鹏 说:
scss用起来真的很方便,很强大的一个模版引擎工具,
2016年6月24日 15:22 | # | 引用
路人乙 说:
(⊙o⊙)…这都有人说不好,用起来省事多了
2016年7月19日 20:08 | # | 引用
晚晴幽草轩 说:
原来那么早,Sass 就已然出来了;而如今才开始真正用了那么一丢丢功能(看来这些技术消隐的时间跨度没那想象中的那么快嘛)。话说就 CSS 这一块,Less stylus postcss Css Moudle 等等等等,纵横而捭阖,所用者甚少(...),可见前端是多么蓬勃而杂乱啊,哈哈。
2016年7月29日 18:21 | # | 引用
Esha 说:
我尝试在sublime text 3里面写sass,装了ruby和一系列plugins,也在第一行写了@charset "utf-8"; 但还是报错:
/usr/local/lib/ruby/gems/2.3.0/gems/sass-3.4.22/lib/sass/error.rb:149:in `sass_backtrace_str': incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError)
这个到底应该怎么解决啊?没用过ruby不懂要怎么fix,求大神赐教!
2016年10月11日 12:33 | # | 引用
刘娜 说:
写的太好了,正在照着学。
2016年10月19日 16:03 | # | 引用
celavi 说:
经常搜技术文档,搜到站长的博客。
2016年10月20日 10:12 | # | 引用
豆豆 说:
各位大神好,有两个疑问的事,想问下~
第一 定义函数的时候
@mixin left($value: 10px) {
float: left;
margin-right: $value;
}
$value 后面的 :10px 没有错吗? 应该只要 一个$value 参数就可以吧?
第二 引入外部文件的 时候
@import "path/filename.scss"; 不是不需要带文件后缀名的吗
2016年11月30日 20:19 | # | 引用
918之处 说:
还是相当简洁明了的,可以入门了!
2016年12月 6日 09:49 | # | 引用
howard 说:
阮老师,久仰大名。
2016年12月28日 16:14 | # | 引用
韩子迟 说:
貌似没有 border-left-radius?是 border-top-left-radius?
2017年1月 5日 09:25 | # | 引用
宋帅 说:
您好 阮老师 很喜欢您的文章 发现一处错误
3.3 嵌套
div {
hi {
color:red;
}
}
应该是 h1 而不是 hi
2017年1月 5日 18:13 | # | 引用
王明 说:
请问一下用sass嵌套的时候如何表示直接子元素,现在看到的都是表示后代元素
2017年1月25日 09:01 | # | 引用
xiaoY 说:
div {
& > a {
}
}
2017年3月 1日 14:27 | # | 引用
刘彤 说:
3.3 h1 写成了 hi吧
2017年3月 5日 09:37 | # | 引用
周周 说:
大神,使用watch监听报错了,偶尔一下能成功,但是再用watch就报错了,求指教!!
2017年3月 8日 14:31 | # | 引用
周周 说:
加了但是没有用。
2017年3月 8日 14:33 | # | 引用
周周 说:
也在engine.rb加了那句utf-8,但就是用watch就报这个错
2017年3月 8日 14:36 | # | 引用
林城典 说:
如果是个人专案不需要团队合作,用这个会不会多此一举?
2017年3月18日 18:21 | # | 引用
阿木亮 说:
2017年3月25日 18:16 | # | 引用
llsa 说:
大神 求个编辑器
2017年4月20日 00:55 | # | 引用
李晋泽 说:
阮老师,你好,在“3.2计算功能”处,right: $var * 10%;报错。
Error: 1000%*px isn't a valid CSS value.
请问是什么原因?
我代码中$var赋值为100px,例如:$var:100px;
2017年5月11日 10:01 | # | 引用
Ihoey 说:
因为你赋值的是 px 计算会出错的,px不能和百分比进行计算的,你不写单位就可以计算出来的
2017年5月23日 16:50 | # | 引用
Nina 说:
然而安装Ruby就把我卡住了,我是不是太菜了~。。~
2017年6月 6日 12:58 | # | 引用
bobo 说:
哈哈哈,是的,刚才敲进去看半天咋没效果,突然反应过来还要加个方向上去,例如:top-left
2017年7月13日 10:56 | # | 引用
康乔 说:
sass:
$var: 50;
body {
margin: (14px/2);
top: 50px+100px;
right: $var * 10%;
}
编译后
css:
body {
margin: 7px;
top: 150px;
right: 500%; }
2017年7月17日 16:50 | # | 引用
康乔 说:
抱歉,话还没说完,本意是right:5;结果却是500%,我是不是哪里理解错了,当我$var = 50px时,编译时会报错
2017年7月17日 16:54 | # | 引用
蔺相如 说:
While executing gem ... (Gem::DependencyError)
Unable to resolve dependencies: sass requires sass-listen (~> 4.0.0)
Mac的一直报这个错误,gem install compass是可以的但是用gem install sass就开始报这个错误
2017年8月24日 21:16 | # | 引用
adm1n 说:
2017年9月27日 11:31 | # | 引用
stone 说:
虽然是阮一峰老师的日志,也不免有错,border-left-radius是错误的写法,border-radius是ccs3的特性,作用是添加圆角边框。写法如border-top-left-radius指的是给左上角添加圆角边框。没有border-left-radius这种写法。
2017年11月15日 16:56 | # | 引用
joeaniu 说:
嵌套那段有笔误, hi -> h1
2018年4月26日 20:20 | # | 引用
于_台 说:
常用的功能,阮老师都涉及到了,真正的布道者,成长路上有阮老师的护航,谢谢
2018年9月27日 11:15 | # | 引用
xiaohuangmao 说:
12年的文章
2018年10月 9日 17:01 | # | 引用
Thinker 说:
实在佩服阮老师的远见,12年就能预测到现在一直很火的sass
2018年11月22日 11:18 | # | 引用
码见 说:
对于不做Ruby的开发者,可以使用NodeJs编译Sass,之前看到很多文章都是要安装Ruby环境才能编译Sass,我就放弃了。使用 NPM 编译 Sass 有兴趣的可参考:https://pzy.io/blog/2019/01/compile-sass-with-npm.html
2019年1月15日 09:54 | # | 引用
Gavin 说:
果然写的明白清楚,不需要看官网
2019年3月29日 13:58 | # | 引用
YES 说:
想要动态变量,但是我怎么找不到怎么用他的动态变量呢
2019年5月27日 15:25 | # | 引用
赵帅锋 说:
Ruby是什么啊,如果要是不安装这个的话sass是不是就不能用啊
2020年4月10日 14:18 | # | 引用
xiaojun 说:
很喜欢看阮老师的文章,复杂的东西讲得就是通俗易懂。赞!
2020年7月27日 15:03 | # | 引用
马宇航 说:
scss不怎末好用
2021年10月12日 17:06 | # | 引用
提拉米苏 说:
从工作开始就收藏了这篇文章,不知不觉9年过去了,依旧是偶尔打开这篇文章看一看,感谢峰哥。
2023年3月10日 14:03 | # | 引用