基础(二)
嵌套-伪类嵌套 伪类嵌套和属性嵌套非常类似,只不过他需要借助“&”符号一起配合使用 例如:sass .clearfix{ &:before, &:after { content:""; display: table; } &:after { clear:both; overflow: hidden; } } 编译出来的 CSS: clearfix:before, .clearfix:after { content: ""; display: table; } .clearfix:after { clear: both; overflow: hidden; } 混合宏-声明混合宏 如果你的整个网站中有几处小样式类似,比如颜色,字体等,在 Sass 可以使用变量来统一处理,那么这种选择还是不错的。 但当你的样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无法达到我们目了。 不带参数混合宏: 在 Sass 中,使用“@mixin”来声明一个混合宏。 @mixin border-radius{ -webkit-border-radius: 5px; border-radius: 5px; } 复杂的混合宏: Sass中的混合宏还提供更为复杂的,你可以在括号里写上带有逻辑关系,帮助更好的做你想做的事情。 @mixin box-shadow($shadow...){ @if length($shadow) >= 1{ @include prefixer(box-shadow,$shadow); }@else{ $shadow:0 0 4px rgba(0,0,.3); @include prefixer(box-shadow,$shadow); } } 这个 box-shadow 的混合宏,带有多个参数,这个时候可以使用“ … ”来替代。简单的解释一下,当 $shadow 的参数数量值大于或 等于“ 1 ”时,表示有多个阴影值,反之调用默认的参数值“ 0 0 4px rgba(0,0,0,.3) ”。 混合宏-调用混合宏 在Sass 中通过@mixin 关键词声明了一个混合宏,那么在实际调用中,在匹配了一个关键词“@include”来调用声明好 的混合宏。 @mixin border-radius{ -webkit-border-radius:3px; border-radius:3px; } 在一个按钮中腰调用定义好的混合宏“border-radius”可以这样使用 button{ @include border-radius; } 编译出来的css button{ -webkit-border-radius:3px; border-radius:3px; } 混合宏的参数-传一个不带值的参数 Sass 的混合宏有一个强大的功能,可以传参,那么在Sass中传参主要有以下几种形式 (A)传一个不带值的参数 在混合和宏中,可以穿个不在任何值的参数 比如: @mixin border-radius($radius){ -webkit-border-radius:$radius: border-radius:$radius: } 在混合宏“border-radius”中定义了一个不带任何值的参数$radius 在调用的时候可以给这个混合宏专递一个数值 .box{ @include border-radius(3px); } 在这里表示混合宏传递了一个“border-radius”的值为“3px”。 .box{ -webkit-border-radius:3px; border-radius:3px; } 混合宏的参数-传个带值的参数 在Sass的混合宏中,还可以给混合宏的参数传递一个默认值,例如: @mixin border-radius($radius:3px){ -webkit-border-radius:$radius; border-radius:$radius; } 混合宏“border-radius”传了一个参数“$radius”,而且给这个参数赋予了一个默认值“3px”。 在调用类似这样的混合宏时,会多有一个机会,假设你的页面中的圆角很多地方都是“3px”的圆角,那么这个时候只 |
- 上一篇:css HACK
- 下一篇:前端开发必知必会:CSS Position 全解析