Sass的学习(一)

很长时间没有去写一些简单的前端JS之类的甚至是基础的SQL部分,这次找工作的时候说实话碰到了很多基础方面的问题。


这次趁着自己找工作的时间去重新系统化的学习Web开发~
重新撸一遍代码~(_) 嘻嘻……
这个文集主要是一些Web开发向的笔记和学习记录,一些库和工具框架的学习。
大部分都是入门级的。
文集地址


Sass学习的第一部分(同样也是imooc上的第一部分),如果想看第二部分,可以翻看我的文集。

这部分主要是一些常用函数和流程控制语句。

为什么使用Sass?

  • 可以使得整个项目的CSS的维护和修改变得容易且风格统一(使用变量来进行前端的赋值)
  • 减少了多余的CSS的写法,提高整体的开发效率
  • 增加了语句的嵌套
  • SCSS 是 Sass 的新语法格式,从外形上来判断他和 CSS 长得几乎是一模一样,代码都包裹在一对大括号里,并且末尾结束处都有一个分号。其文件名格式常常以“.scss”为扩展名。

Sass的基本原理:

  • .scss 编译成CSS文件进行加载

Sass的安装:

  1. ruby环境
  2. 使用ruby包管理gem install sass安装成功
    3.(有可能碰见镜像问题)

SCSS语法格式:

body {
font: 100% Helvetica, sans-serif;
color: #333;
}

---
- ```
$font-stack: Helvetica, sans-serif;
$primary-color: #333;
body {
  font: 100% $font-stack;
  color: $primary-color;
} 

SCSS文件编译过程:

  1. 单文件编译:
  • sass <要编译的Sass文件路径>/style.scss:<要输出CSS文件路径>/style.css
  1. 多文件批量编译:
  • sass sass/:css/
  1. 常用参数:
  • --watch自动检测代码,自动重新编译
  1. 几种常见的输出方式:
  2. 嵌套输出方式 -- style nested
  3. **展开输出方式 -- style expanded **
  4. **紧凑输出方式 -- style compact **
  5. 压缩输出方式 -- style compressed

这几种不同的输出方式可以让有不同习惯的程序员可以用起来更爽~

Sass的常用知识:

变量:

  1. 普通变量:
- `$temp: value;`
- 可以在全局范围内使用(存在作用域)
  1. 默认变量:
- `$temp: value !default;`
- 在值的后边加上`!default`只要在**使用**它之前存在一个变量的赋值即不会使用这个变量的默认值。
  1. Sass提供了嵌套功能:
  • Sass 中还提供了选择器嵌套功能
  • 但是对于选择器的嵌套一般不要多层嵌套\
  • 提供属性的嵌套:
.box {
    border-top: 1px solid red;
    border-bottom: 1px solid green;
}

对于上面的代码,可以使用下面这种写法来代替:

.box {
  border: {
   top: 1px solid red;
   bottom: 1px solid green;
  }
}
  • 伪类嵌套:
    使用&符号配合使用:.clearfix{&:before}=>clearfix:before

宏:

  1. 声明混合宏:
- `@mixin` 是用来声明混合宏的关键词,有点类似 CSS 中的 `@media`、`@font-face` 一样,但是它可以进行传参,通过函数化得调用,设置宏中的样式不同。实现复用。
- `@include`用于调用宏
  1. 继承和扩展
  • 在 Sass 中是通过关键词 “@extend”来继承已存在的类样式块,从而实现代码的继承。
  • 占位符 %placeholder 功能是一个很强大,很实用的一个功能。因为 %placeholder 声明的代码,如果不被 @extend 调用的话,不会产生任何代码

注释:

  • CSS注释方式:使用 ”/* ”开头,结尾使用 ”*/ ”会保存在CSS
  • JS的注释方式:使用“//”,这种注释方式是不会被编译出来的

数据类型:

  • 数字
  • 字符串(有引号或者是无引号字符串)
  • 颜色(blue,#000000,rgba(255,255,255,0)
  • 布尔:true,false
  • 空值:null
  • 值列表:
    1. nth函数(nth function) 可以直接访问值列表中的某一项;
    2. join函数(join function) 可以将多个值列表连结在一起;
    3. append函数(append function) 可以在值列表中添加值;
    4. @each规则(@each rule) 则能够给值列表中的每个项目添加样式。

对于CSS 四则运算:

  • 对于基本的CSS运算系统会根据单位进行自动转换。
  • 但是对于乘除法不同的单位会报xxxx isn't a valid CSS value.错误
  • 除法操作时需要将width: 100px/2=>width: (100px / 2);第一种写法不会出现错误,但是也不会出现你想要的效果。
  • 颜色运算,会自动的进行RGB和Alpha各个通道的自动加和。color: #010203 + #040506;
  • 字符串的加和,对于存在“”的加和,会自动的加上“”

初级篇结束啦啦啦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容