css预处理器
- Sass https://www.sass.hk/
- LESS
- Stylus
Sass
嵌套
- 嵌套规则
- 允许将一套css样式嵌套进另一套样式中,内层的样式将它外层的选择器作为父选择器,嵌套功能避免了重复输入父选择器,而且令复杂的css结构更易于管理
- 在嵌套css规则时,有时也需要直接使用嵌套外层的父选择器,可以使用&代表嵌套规则外层的父选择器(编译后的css文件中&将被替换成嵌套外层的父选择器,如果含有多层嵌套,最外层的父选择器会一层一层向下传递)
- 选择器嵌套+属性嵌套
- 属性嵌套
- 有些css属性遵循相同的命名空间,为了便于管理,避免重复输入,Sass允许降属性嵌套在命名空间中
- 属性嵌套
- 缺陷:层级嵌套可能造成代码的冗杂
占位符选择器%
- Sass额外提供了一种特殊类型的选择器:占位符选择器,必须通过@extend指令调用(单独使用将不会被编译到css文件中)
注释
- 多行注释会被完整输出到编译后的css文件中(/* */)
- 单行注释则不会(//)
变量
- 变量以美元符号开头,赋值方法与css属性写法一致
- 支持块级作用域(只能在嵌套规则内使用(局部变量))
- 可在块级作用域声明时,于其后添加!global(将其提升为全局作用域)
数组Lists
- 通过空格或则逗号分隔的一系列的值(独立的值)都被视为数组
- nth可以直接访问数组中的某一项-》nth($arr,1)(index从1开始)
- join将多个数组连接在一起
- append在数组中添加新值
- @each遍历数组中的每一项
maps
- 可视为键值对的集合(对象)
运算
- 除法运算(/)
- 在css中 / 通常起到分隔数字的用途
- 这三种情况可视为除法运算符
- 值,或值的一部分,是变量或则函数的返回值
- 值被圆括号包裹
- 值是算数表达式的一部分
- 这三种情况可视为除法运算符
- 需要使用变量,又确保 / 不做除法运算而是被编译到css文件中,只需要#{}插值语句将变量包裹
- 在css中 / 通常起到分隔数字的用途
- 字符串运算
- 字符串连接左侧为尊
- 在有引号的文本字符串中使用#{}插值语句可以添加动态的值
@extend
- 一个元素使用的样式与另一个元素完全相同,但又添加了额外的样式
- 使用@extend将其后选择器的样式继承给使用该指令的选择器
- @extend-only 使用占位符 % (当占位符被单独使用时不会被编译到css文件中)
@at-root
- 跳出当前选择器,使其成为当前选择器的兄弟元素
- @at-root(without:...)and @at-root(with:...)
- @at-root(without: media)::可跳出@media(默认跳不出@media层级)
@debug
- 相当于 js里的console.log 输出变量的值
@if
- 当@if的表达式返回值不是false或则null时,条件成立,输出{}内的代码
重点
- 变量 Variables
- 嵌套 Nesting
- 混合 Mixins
- 继承 Selector Inheritance
网友评论