Sass初涉
来源:互联网 发布:中国期刊数据库 编辑:程序博客网 时间:2024/06/09 19:31
经历数不清日月的颓废之后,决定重新坚持自己的前端之路,说实话,到现在 ,对前端是很迷茫的,前端这个行业,真是应了那句话,“学了不一定有用”,更新换代太快,基础已打牢。从昨天开始我开始深入学习前端,JS方面学习函数式编程和模块化(require,commentJS),css学习预处理语言sass,框架方面接触facebook的react。
那么今天便小小研究了一下sass
对于浸润了很多编程语言的我(。。。),sass的基础语法还是不是特别难的,但是他的特殊语法(自己的独特性方面)还是需要去实践记住。
一、sass的安装
sass是一个Ruby编写的(目前)世界上最成熟、稳定禾庆大的CSS扩展语言,当然通过Ruby安装,去Ruby官网下对应安装包,安装时注意选择自动添加path路径
对于浸润了很多编程语言的我(。。。),sass的基础语法还是不是特别难的,但是他的特殊语法(自己的独特性方面)还是需要去实践记住。
一、sass的安装
sass是一个Ruby编写的(目前)世界上最成熟、稳定禾庆大的CSS扩展语言,当然通过Ruby安装,去Ruby官网下对应安装包,安装时注意选择自动添加path路径
之后使用Ruby的管理工具gem下载sass
打开cmd 输入: gem install sass即可
更新与删除 gem uninstall/update sass
一、Sass基础篇
①、命令编译(cmd)
sass <scssc存储路径>/test.scss:<转码后css路径>/test.css
//sass有很多参数,例如使用--watch可动态捕获scss文件的改变并重新转码
sass --watch style.scss:style.css
①、命令编译(cmd)
sass <scssc存储路径>/test.scss:<转码后css路径>/test.css
//sass有很多参数,例如使用--watch可动态捕获scss文件的改变并重新转码
sass --watch style.scss:style.css
②、也可以使用GUI编译或者自动化编译
GUI推荐
Koala (http://www.w3cplus.com/preprocessor/sass-gui-tool-koala.html)
自动化编译见慕课网
http://www.imooc.com/code/6380
③、(重要)sass有两个常见错误
第一个是因为字符编译引起的。Sass不支持“GBK”编译,所以创建Sass文件时,将文件编码设定为“utf-8”
第二个是因为路径中的中文字符引起的(***)
④、Sass有四种输出模式
sass --watch style.scss:style.css nested //嵌套sass --watch style.scss:style.css expanded //展开sass --watch style.scss:style.css compact //紧凑sass --watch style.scss:style.css compressed //压缩效果一实验便知,在此不赘述。。。推荐使用compressed
⑤、Sass变量
类似PHP,使用美刀符号
$color :red; /*普通变量*/$color:red !default; /*默认变量*///8*全局变量和局部变量类似与C语言*/
⑥、嵌套
选择器嵌套(不建议使用)
选择器嵌套(不建议使用)
<div><nav> <a>ffff</a></nav></div>sass便可以如此写nav{ /*看不懂就算了*/ a{} div &{}}
属性嵌套
.box{ border-top: 1px solid red; border-bottom: 1px solid green;}sass书写.box{ border{ top:1px solid red; bottom:1px solid green; }}
伪类嵌套
.clearfix{ &:before{} &:after{}}
嵌套初看上去挺有用的,但我感觉很大意义上有点废(个人观点)
⑦、混合宏,继承,占位符
混合宏(优点在于可以带参数)
⑦、混合宏,继承,占位符
混合宏(优点在于可以带参数)
@mixin border{ /*声明*/ -webkit-border-radius: 5px; border-radius: 5px;}/*可以带参数*/@mixin border($radius/*可以带默认值*/){ //声明 -webkit-border-radius: $radius; border-radius: $radius;}/*复杂的参数宏 如果带多个参数可以用...替代*//*调用。引用@include*/.button{ @include border-radius(5px);}
但是混合宏的缺点也是很明显的,生成冗余的代码块。
扩展/继承(@expand)
扩展/继承(@expand)
/*SCSS*/.btn { border: 1px solid #ccc; padding: 6px 10px; font-size: 14px;}.btn-primary { background-color: #f36; color: #fff; @extend .btn;}.btn-second { background-color: orange; color: #fff; @extend .btn;}翻译出来/*CSS*/.btn, .btn-primary, .btn-second { border: 1px solid #ccc; padding: 6px 10px; font-size: 14px;}.btn-primary { background-color: #f36; color: #fff;}.btn-second { background-clor: orange; color: #fff;}占位(%placehoder,@expand引用)
%test{margin:50px;}div{@expand %test;⑧、插值 #{}
插值目前的限制还非常大,待补充
⑨、注释可使用//行注释,/*段注释*/
有数据类型,大致与C语言相似,但是多出了颜色类型和值列表
⑩、支持四则运算(单位要相同)
加: 特殊之处在于 “+”,即可以连接字符串也可以连接字符属性
$content: "Hello" + "world!"; /*content :"Helloworld!"*/$e-resize:e+-resize;/*$e-resize:e-resize;*/除:
/*不能同时带单位*/p { font: 10px/8px; /* 纯 CSS,不是除法运算*/ $width: 1000px; width: $width/2; /* 使用了变量,是除法运算*/ width: round(1.5)/2; /* 使用了函数,是除法运算*/ height: (500px/2); /* 使用了圆括号,是除法运算*/ margin-left: 5px + 8px/2px; /* 使用了加(+)号,是除法运算*/}可进行颜色计算(分段计算两个数一组)
$color: #010203 + #040506; /*#050709*/$color: #010203 *2; /*#020406*/
0 0
- Sass初涉
- Sass
- sass
- sass
- sass
- SASS
- sass
- sass
- Sass
- sass
- sass
- sass
- Sass
- sass
- SASS
- ??? sass
- sass
- sass
- Hadoop基础教程-第1章 环境安装配置(1.6 SSH免密登录)
- java两种常用文件下载实例
- POJ 1037 A decorative fence 笔记
- python学习(3)python基础、使用list和tuple
- PHP 二维数组根据某个字段排序
- Sass初涉
- 将Java程序安装为系统服务之windows
- 1
- mysql增删查改
- Java并发编程学习笔记(一)
- 2
- VISUAL SVN安装 及客户端使用
- 36题
- 海岛个数问题LintCode