视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
使用sass/scss编写CSS快速上手_html/css
2020-11-27 16:03:54 责编:小采
文档


文章作者:松阳




Why Scss

CSS不是一种编程语言,它只是个配置文件,并没有生命。但我等大程序 怎么能容忍自己写出来的东西不能动态变化,不能封装继承,不能xxoo呢,于是就有了css预处理的概念。即,写是一套,用是一套。Scss是css预处理的一个选择,它依托于Ruby,算是逼格比较高的。相似的还有Less等,语言优劣之争意义不大,用好一个其他也是大同小异。

安装

Mac上自带Ruby,直接运行:

gem install sass

安装对应模块,然后可以使用:

sass --watch style.scss:style.css

命令来监视style.scss,当它有更改时,会自动编译成style.css。

友情提示: 我运行gem时完全不动,还以为是掉网了。后来听说是我大GFW威武,可以将源更改为x宝的服务器来解决:

$ gem sources -l$ gem sources --remove https://rubygems.org/ $ gem sources -a http://ruby.taobao.org/$ gem sources -l//然后我顺手更新了一下Ruby的版本$ sudo gem update --system 

经过上面的折腾,顺利安装sass

常用语法

变量

//定义$magin : 30px; //px$blue : #1875e7; //color$side : left; //str Usage: boder-#{$side}-radius

所有的数字类型的变量都可以进行相应的计算。

嵌套

nav { ul {...} border : { //注意冒号 相当于树形属性 会编译成 border-color:red color : red; } a { &:hover { color :$blue;} //&表示引用上层 会编译成 a:hover{...} }} 

注释

标准的CSS注释 /* comment */ ,会保留到编译后的文件。

单行注释 // comment,只保留在SASS源文件中,编译后被省略。

在/*后面加一个感叹号,表示这是"重要注释"。即使是压缩模式编译,也会保留这行注释,通常可以用于声明版权信息。

继承

使用@extend可以继承相应的css:

.class1 { border:1px solid #ddd;}.class2 { @extend .class1; border-color: green;}

写的时候要注意顺序,编译时,css是不会调顺序的,谁先谁后得想好了。

Mixin

这个是一个函数与宏的私生子。实现像函数,使用像宏。关键词为@mixin和@include

@mixin left($color, $value:10px) { color:$color; margin-left:$value;}.mydiv { @include left($blue,15px);}

颜色处理函数

lighten(#cc3, 10%) // #d6d65cdarken(#cc3, 10%) // #a3a329grayscale(#cc3) // #808080complement(#cc3) // #33c$linkColor: #08c;a { text-decoration:none; color:$linkColor; &:hover{ color:darken($linkColor,10%); }}

用这个方法就能制作一个链接变灰的效果

引入文件

@import "style2.css";

逻辑编译

想要真正的动起来,就得有判断啦,循环啦常规流程函数。

@if可一个条件单独使用,也可以和@else结合多条件使用

$type: monster;p { @if $type == ocean { color: blue; } @else if $type == matador { color: red; } @else if $type == monster { color: green; } @else { color: black; }}

for循环有两种形式,分别为:@for $var from through 和 @for $var from to 。$i表示变量,start表示起始值,end表示结束值,这两个的区别是关键字through表示包括end这个数,而to则不包括end这个数。

@for $i from 1 through 3 { .item-#{$i} { width: 2em * $i; }}

each语法为:@each $var in 。其中$var表示变量,而list和map表示list类型数据和map类型数据。

$animal-list: puma, sea-slug, egret, salamander;@each $animal in $animal-list { .#{$animal}-icon { background-image: url('/images/#{$animal}.png'); }}$headings: (h1: 2em, h2: 1.5em, h3: 1.2em);@each $header, $size in $headings { #{$header} { font-size: $size; }}

sublime 分页

其实这个也不能算是Scss的知识了,只不过是用到它更方便一些。Sublime可以左右分屏,我们可以将源文件放在左侧的窗口中编译后的放在右侧,方便我们做检查。Mac上的快捷键比较变态:

cmd+option+ctrl+2 

左右移动使用

cmd+shift+[ 

如果你觉得这篇文章对你有帮助,可以顺手点个顶,不但不会喜当爹,还能让更多人能看到它...

下载本文
显示全文
专题