sass的使用

减少重复的工作

1.变量的声明:

是以$开头给变量命名;

$height-color: #F30

2.变量的使用范围:

变量可以在多个地方存在,不一定限制在代码块中。但是如果定义在了代码块中,则只能在代码块中使用。

先在外面或者上面给属性命名,在使用的地方应用这些变量。

3.变量的命名:

命名:以下划线或者横杠都看自己的意愿,中划线更普遍。(大部分下划线和横杠是互通的,但是类名和ID名不一定。

4.sass的嵌套使用:

sass的嵌套:支持多层嵌套,避免重复书写相同的类名或者ID名。

注意:

父选择器标识符:&

1.连接伪元素:

&会直接被父级元素替换

article a {
color: blue;
:hover { color: red }
}

=>artical a {color:blue}
artical a :hover{color:red}
artical a{
color:blue;
&:hover{color:red}
}

如果使用伪元素需要用&来连接,不然就直接识别成后代元素,会和父元素有一个空格导致样式与预期不符。

2.群组选择器的嵌套

将重复的元素提出来:

.container{
h1,h2,h3{margin-bottom:10px}
}
=>
.container h1, .catainer h2, .container h3{margin-bottom:10px}
3.组合选择器>,+,~

1.>:选中元素的直接子元素(只有一个元素)

2.+:选中同层相邻元素(所有+后面相同的元素)

3.~:选中所有在~前相同层级的~后的元素

5.嵌套属性

nav{
border:{
style:solid;
width:1px;
color:#ccc
}
}
=>
nav{
border-style:solid;
border-width:1px;
border-color:#ccc;
}

6.导入sass文件

1.@import

css中也有该规则,但是只有执行到@import时才会去下载导入的css文件;加载过慢

sass无需发起额外的下载请求;@import时就解析成了css;

color.scss => @import "color"

注意:可以省略后缀名

2.使用部分sass文件

如果以下划线开头命名则不会单独编译输出css

3.默认变量

!default

4.注意

如果以css结尾

导入的是一个URL地址

导入的是url()

=>生成的文件是直接被浏览器解析了的,可能会造成额外下载

6.注释

静默注释://

不会暴露在浏览器中

普通注释:/* */

7.混合器

1.使用场景:

1.有大段样式代码需要重复使用=>将重复代码抽离出来成一个逻辑单元

2.能用通用的名字将这个混合器的功能描述出来;(语义化)

`rounded-corners

2.标识符:

@mixin @include

3.使用方法:

//相当于将这个样式封装起来了
@mixin rounded-centers{
-moz-border-radius:5px;
-webkit-border-radius:5px;
border-radius:5px;
}
//使用这个样式
notice{
background-color:green;
border:2px solid #ccc;
@include round-center
}

4.规则

1.如果混合器通过@include包含在父规则中时,会生成嵌套规则

2.可以使用&

5.给混合器传参

类似于function

@mixin link-colors($normal, $hover, $visited){
color:$normar;
&:hover{color:$hover}
&:visited{color:$visited}
}
a{
@include(red,blue,green)
}
a{
@include link-colors($normal:red,$hover:blue,$visited:green)
}

6.默认参数值

声明:$name:default-value

8.选择器继承

1.定义:选择器可以继承为另一个选择器的所有样式

2.语法:@extend

.error{
border:1px solid red;
background-color:#fdd;
}
.seriousError{
@extend .error;
border-width:3px;
}

后写的属性样式可以覆盖先写的;

3.继承何时选择

当一个元素拥有的类是属于另一个类时

继承比起混合器生成的代码更少,有利提高站点速度

当不同的规则被应用到同一个元素上时,先看选择器的权重,如果权重相同则后面的覆盖前面的

避免多后代时应用继承选择器.foo .bar{@extend .error}

手把手带你了解sass的更多相关文章

  1. [.Net] 手把手带你将自己打造的类库丢到 NuGet 上

    手把手带你将自己打造的类库丢到 NuGet 上 序 我们习惯了对项目右键点击“引用”,选择“管理NuGet 程序包”来下载第三方的类库,可曾想过有一天将自己的打造的类库放到 NuGet 上,让第三者下 ...

  2. 手把手带你做一个超炫酷loading成功动画view Android自定义view

    写在前面: 本篇可能是手把手自定义view系列最后一篇了,实际上我也是一周前才开始真正接触自定义view,通过这一周的练习,基本上已经熟练自定义view,能够应对一般的view需要,那么就以本篇来结尾 ...

  3. Android性能优化:手把手带你全面实现内存优化

      前言 在 Android开发中,性能优化策略十分重要 本文主要讲解性能优化中的内存优化,希望你们会喜欢 目录   1. 定义 优化处理 应用程序的内存使用.空间占用 2. 作用 避免因不正确使用内 ...

  4. Android:手把手带你深入剖析 Retrofit 2.0 源码

    前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将手把手带你深入剖析Retrofit v2.0的源码,希望你们会喜 ...

  5. [转帖]从零开始入门 K8s | 手把手带你理解 etcd

    从零开始入门 K8s | 手把手带你理解 etcd https://zhuanlan.zhihu.com/p/96721097 导读:etcd 是用于共享配置和服务发现的分布式.一致性的 KV 存储系 ...

  6. 手把手带你阅读Mybatis源码(三)缓存篇

    前言 大家好,这一篇文章是MyBatis系列的最后一篇文章,前面两篇文章:手把手带你阅读Mybatis源码(一)构造篇 和 手把手带你阅读Mybatis源码(二)执行篇,主要说明了MyBatis是如何 ...

  7. GitHub 热点速览 Vol.26:手把手带你做数据库

    作者:HelloGitHub-小鱼干 摘要:手把手带你学知识,应该是学习新知识最友好的姿势了.toyDB 虽然作为一个"玩具"项目不能应用在实际开发中,但通过它你可以了解到如何制作 ...

  8. 手把手带你体验鸿蒙 harmonyOS

    wNlRGd.png 前言 本文已经收录到我的 Github 个人博客,欢迎大佬们光临寒舍: 我的 GIthub 博客 学习导图 image.png 一.为什么要尝鲜 harmonyos? wNlfx ...

  9. Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战

    转: Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战 Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一 ...

随机推荐

  1. Zookeeper入门(五)之Linux环境下Zookeeper安装

    本文参考地址为:http://www.mamicode.com/info-detail-2243059.html1.安装wget http://archive.apache.org/dist/zook ...

  2. 查看线程的cpu占用率

    1)         top -H -p 进程pid 查看线程的线程ID与CPU占用情况.或者使用 ps -eLo pid,lwp,pcpu | grep 进程pid2)         pstack ...

  3. TCP定时器 之 FIN_WAIT_2定时器

    当TCP主动关闭一端调用了close()来执行连接的完全关闭时会执行以下流程,本端发送FIN给对端,对端回复ACK,本端进入FIN_WAIT_2状态,此时只有对端发送了FIN,本端才会进入TIME_W ...

  4. python利器之切片

     切片 切片的语法表达式为:[start_index : end_index : step],其中: start_index表示起始索引 end_index表示结束索引 step表示步长,步长不能为0 ...

  5. 一起学vue指令之v-pre

    一起学vue指令之v-pre 一起学 vue指令 v-pre  指令可看作标签属性 浏览器解析引擎遇到vue的插值符号时会自动解析,当你想输出不被解析的纯文本时,可以使用v-pre指令. 未使用v-p ...

  6. Linux高级调试与优化——内存管理

    1.物理地址和虚拟地址 Linux采用页表机制管理内存,32位系统中页大小一般为4KB,物理内存被划分为连续的页,每一个页都有一个唯一的页号. 为了程序的的可移植性,进程往往需要运行在flat mem ...

  7. Error-ASP.NET:在从服务器接收结果时发生传输级错误。 (provider: Session Provider, error: 19 - 物理连接不可用)

    ylbtech-Error-ASP.NET:在从服务器接收结果时发生传输级错误. (provider: Session Provider, error: 19 - 物理连接不可用)  1.返回顶部 1 ...

  8. Linux命令之grep用法详解:grep与正则表达式 [转]

    正则表达式与通配符不一样,它们表示的含义并不相同. grep命令的选项用于对搜索过程进行补充说明.grep命令的模式十分灵活,可以是字符串.变量,还可以是正则表达式. 无论模式是何种形式,只要模式中包 ...

  9. 基于 Linux Bridge 的 Neutron 多平面网络实现原理

    目录 文章目录 目录 前言 前文列表 多平面网络 Local(本地网络) Flat(扁平网络) 配置 Flat 网络 VLAN 配置 VLAN 网络 VxLAN 配置 VxLAN 网络 GRE 前言 ...

  10. 转载-Mysql主主复制架构配置

    Mysql主主复制架构配置 转载:原始出处 http://luoweiro.blog.51cto.com/2186161/658550MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服 ...