This repository has been archived by the owner on Feb 9, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Sass 学习心得 #7
Labels
CSS
Pure CSS , Sass, Scss .etc
Comments
集合属性和单个属性之间的兼容在使用 mixin 时 宏内有缩写属性时,缩写属性将覆盖宏外部的属性。 如 mixin 中 background 属性是 background-image background-size background-repeat 等多个属性的缩写, 因此,在调用 mixin 后需要修改 mixin 中其中某一项特性下,不建议在 mixin 中包含要修改的项,因为在外部修改的值会被 mixin 中的值覆盖,最后表现为修改某属性失败。 本质是,集合属性的值会覆盖单个属性的值。如 |
动态创建
|
Sass 中
|
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
预编译目标格式
.photo-#{list}
即形如
.photo-#{list}
的样子,一部分属性键名是个固定的,另一部分键名是某 list 中的某一个字符串。Scss 文件为:
以上方法的一个局限性是,要有另外一个类
.author-bio
来使用@include
调用混合宏@mixin
。与
@for
、while
循环相比,@for $i from <start> through <end>
是在一定的数值范围内进行循环;while
是当@while 表达式
中表达式为真时,就会执行代码块;@each 变量 in $list
循环的是一个自定义list
列表。使用 map 管理变量
格式如下:
其中,格式类似于
JSON
的格式。该数据结构通过键名查找键值。该map
结构的优势在于可集中管理变量,并后期可以很容易的添加或或删除变量数据。map-get($map, $key) 获取数据
使用
map-get($map, $key)
来获取$map
中$key
的数据。若$map
中不存在$key
的数据。那么将不会编译该条 CSS,此时,并不会报错。为了防止这种情况,在调用map-get($map, $key)
之前先使用map-has-key($map,$key)
来检测对应值是否存在。map-has-key($map,$key) 检测是否存在数据
map-has-key($map,$key)
检测是否存在$key
数据,该函数返回一个布尔值,可在使用map-get($map, $key)
之前添加一个检测判断以防止因没有对应$key
数据,而不编译 CSS 的情况。格式如下:
为了简化检测值的代码,避免过多的 if 语句,可将判断封装在自定义函数中,代码如下:
注:可能是在命令行的开头位置看见警告信息!
例如:
map-keys($map) 结合 $list 使用
map-keys($map)
返回$map
中的所有 key,这些值赋予给一个变量。示例为:
之前的自定义函数可修改为:
与之前使用
map-has-key($map, $key)
的区别在于,使用map-keys($map)
返回一个列表(取出所有 key ),是在该列表中查询是否存在对应 key ,而使用map-has-key($map, $key)
是在map
中查找对应 key 。map-values($map)
的用法与map-keys($map)
相似,只是map-values($map)
是取出所有的 value 值。map-merge($map1, $map2) 合并两个 map
格式如下:
其中,当
map1
和map2
存在相同键名的值对,那么map2
将覆盖map1
的数据。map-remove($map, $key) 删除某一 $key 得到新的 map
注意,该方法返回的是一个新的 map 数据结构,对原结构不构成影响。
@import
Sass 扩展了 CSS 的 @import 规则,让它能够引入 SCSS 和 Sass 文件。 所有引入的 SCSS 和 Sass 文件都会被合并并输出一个单一的 CSS 文件。 另外,被导入的文件中所定义的变量或 mixin 都可以在主文件中使用。
@media
Sass 中的 @media 指令和 CSS 的使用规则一样的简单,但它有另外一个功能,可以嵌套在 CSS 规则中。有点类似 JS 的冒泡功能一样,如果在样式中使用 @media 指令,它将冒泡到外面。
The text was updated successfully, but these errors were encountered: