美文网首页
sass学习总结

sass学习总结

作者: 苦苦修行 | 来源:发表于2018-12-01 16:08 被阅读0次

sass总结

重点:
1、带@的一般是一种组合
2、混合器@mixin 选择器继承@extend
3、.seriousError不仅会继承.error自身的所有样式,任何跟.error有关的组合选择器样式也会被.seriousError以组合选择器的形式继承
//.seriousError从.error继承样式
.error a{ //应用到.seriousError a
color: red;
font-weight: 100;
}
h1.error { //应用到hl.seriousError
font-size: 1.2rem;
}
4、https://www.jianshu.com/p/7f879ce0cbb9 自定义函数
https://www.jianshu.com/p/ef2ca6fbf944 内置函数

细节:

1、变量具有块级作用域

2、变量不区分下划线和中划线,link-color =link_color

3、父级选择器的一种用法

content aside {

color: red;
body.ie & { color: green }
}
/编译后/

content aside {color: red};

body.ie #content aside { color: green }

4、群组选择器嵌套
nav, aside {
a {color: blue}
}
/编译后/
nav a, aside a {color: blue}

5、+是相邻元素,~是同层所有元素
header + p { font-size: 1.1em } 同层相邻组合选择器+选择header元素后紧跟的p元素
article ~ article { border-top: 1px dashed #ccc } 同层全体组合选择器~,
选择所有跟在article后的同层article元素,不管它们之间隔了多少其他元素

6、嵌套的另一种用法
dl > {
dt { color: #333 }
dd { color: #555 }
}
/编译后/
dl > dt { color: #333 }
dl > dd { color: #555 }

7、属性嵌套,把属性名从中划线-的地方断开,在根属性后边添加一个冒号:
nav {
border: {
style: solid;
width: 1px;
color: #ccc;
}
}
或另一种嵌套
nav {
border: 1px solid #ccc {
left: 0px;
right: 0px;
}
}

8、使用sass的@import规则可以省略.sass或.scss文件后缀

9、使用SASS部分文件
如果某个sass文件不想被单独编译成css文件,只想当作被引用文件使用,文件命名要带下划线,
比如_night-sky.scss,当要导入这个文件时,则可以省略下划线,比如@import "night-sky";

10、修改默认变量值
1)一般情况下,你反复声明一个变量,只有最后一处声明有效且它会覆盖前边的值
2)使用sass的!default标签,如果这个变量被声明赋值了,那就用它声明的值,否则就用这个默认值。
例如 $fancybox-width: 400px !default;
3)两者的区别,1)有先后顺序,2)没有先后顺序,比如在2)这种情况下,
你自定义的变量在引入的变量之前,还是会应用你的变量

11、嵌套导入
举例说明,有一个名为_blue-theme.scss的局部文件,内容如下:
aside {
background: blue;
color: white;
}
然后把它导入到一个CSS规则内,如下所示:
.blue-theme {@import "blue-theme"}
//生成的结果跟你直接在.blue-theme选择器内写_blue-theme.scss文件的内容完全一样。
.blue-theme {
aside {
background: blue;
color: #fff;
}
}

12、原生css的@import会引发网络下载,scss的@import是在编译时就整合在一起,
所以尽量使用scss的导入。如果必须导入css文件,可考虑将css文件后缀名改为scss。
如果非要导入css,记得css后缀名

13、注释。使用//这种注释,在最终生成的css文件中会将其去除。
如果使用/* ... */则不会将其去除。

14、混合器是将多种属性打包在一起起一个名字使用
定义
@mixin rounded-corners {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
使用
notice {
background-color: green;
border: 2px solid #00aa00;
@include rounded-corners;
}
编译结果
.notice {
background-color: green;
border: 2px solid #00aa00;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}

15、如何使用混合器
@include rounded-corners;

16、给混合器传参
定义
@mixin link-colors(normal,hover, visited) { color:normal;
&:hover { color: hover; } &:visited { color:visited; }
}
使用
a {
@include link-colors(blue, red, green);
}

17、混合器默认传值
定义
@mixin link-colors(
normal,hover: normal,visited: normal ) { color:normal;
&:hover { color: hover; } &:visited { color:visited; }
}
使用
@include link-colors(red)

18、选择器继承
//通过选择器继承继承样式
.error {
border: 1px solid red;
background-color: #fdd;
}
使用
.seriousError {
@extend .error;
border-width: 3px;
}

19、混合器和classname有些类似,区别是混合器是用在样式表中的,classname是用在html中的

20、了解继承与混合器的区别
继承说明了两个类之间有父子关系,或者是样式由粗到细的过程
混合器可以理解成就是一个常用的组件

21,继承@extend

//通过选择器继承继承样式
.error {
border: 1px solid red;
background-color: #fdd;
}
.seriousError {
@extend .error;
border-width: 3px;
}
以class="seriousError" 修饰的html元素最终的展示效果就好像是class="seriousError error”,本质是指向同一个元素
所以我们可以认为seriousError error都指代同一个元素,所以
.error a{ //应用到.seriousError a
color: red;
font-weight: 100;
}
h1.error { //应用到hl.seriousError
font-size: 1.2rem;
}

6-3. 继承的工作细节,这一章节相当重要

跟混合器相比,继承生成的css代码相对更少。因为继承仅仅是重复选择器,而不会重复属性,所以使用继承往往比混合器生成的css体积更小

可以继承有后代选择器的,但不要用后代选择器去继承。

@extend背后最基本的想法是,如果.seriousError @extend .error, 那么样式表中的任何一处.seriousError都用.error.seriousError这一选择器组进行替换。

如果继承的error有层次结构,是否意味着将seriousError替换成.error.seriousError时,这个元素是否符合error的层次结构

继承好像只能继承一个类名,比如@extend .error不能@extend .a .error这样

相关文章

  • sass学习总结

    sass总结 重点:1、带@的一般是一种组合2、混合器@mixin 选择器继承@extend3、.seriousE...

  • sass学习总结

    一、首先搭建sass的开发环境 这里推荐node环境,node环境搭建好之后,用命令行工具安装sass。 二、转换...

  • gulp的配置

    学习笔记整理、总结 一、 sass、ruby、compass之间的关系和作用 sass是css预处理器,是基于ru...

  • sass入门学习总结

    总论 sass 经cass编译器编译成css。sass 兼容了css语法。sass 带有变量,mixin,循环,简...

  • 关于less和sass你了解多少!

    小编最近又学习了less和sass语言,下面是我对less与sass的一些异同的简单总结。 首先,le...

  • Sass入门

    学习Sass(官网:Sass)之前需要了解什么是Sass,Sass全称:Syntactically Awesome...

  • less总结

    css-less和sass总结

  • sass

    很好的总结:sass:常用备忘[https://www.cnblogs.com/chyingp/p/sass-ba...

  • SASS 总结

    Sass是一门css扩展语言 Sass 与 Scss 区别 Sass是一种缩进式的语法 不需要{} ;以及/**/...

  • Sass总结

    总结 sass语言我们前前后后也学了快2周了,基本上都学完了。现在可以做一下阶段性的总结,将我们学习的东西变薄。 ...

网友评论

      本文标题:sass学习总结

      本文链接:https://www.haomeiwen.com/subject/qokrcqtx.html