sass的嵌套(Nesting)包括两种:一种是选择器的嵌套;另一种是属性的嵌套。我们一般说起或用到的都是选择器的嵌套。
选择器嵌套
所谓选择器嵌套指的是在一个选择器中嵌套另一个选择器来实现继承,从而增强了sass文件的结构性和可读性。
在选择器嵌套中,可以使用 &表示父元素选择器
属性嵌套
所谓属性嵌套指的是有些属性拥有同一个开始单词,如border-width,border-color都是以border开头。对于这些相同的部分可以使用嵌套来实现(这种实现方式的好坏还待商榷)
@at-root
sass3.3.0中新增的功能,用来跳出选择器嵌套的。默认嵌套会继承所有的上级选择器,但是有了这个就可以跳出所有的上级选择器
普通跳出嵌套
只跳出选择器嵌套
@at-root (without: …)和 @at-root (with: …)
默认的@at-root只能跳出选择器嵌套,不能跳出@media或者@support,如果要跳出这两种,这需要使用@at-root (without: media), @at-root (without: support)
。这个without的可选的值有四个:
- without: all,表示所有
- without: rule,表示常规css,rule是默认值
- without: media,表示media
- without: support,@support现在使用还不广泛
|
|
@at-root与 &配合使用
|
|
应用于@keyframe
该用法最可以将动画关键帧放在选择器内部,使得结构看起来更清晰。
参考资料
sass基础