sass结尾的文件有着更严格的格式要求,scss文件更贴近原生css
比如sass文件
CSS Code复制内容到剪贴板 #main color:#fff &-sidebar border:1pxsolid
等同于scss的
CSS Code复制内容到剪贴板 #main{ color:black; &-sidebar{border:1pxsolid;} }
编译后为
其中代表父级元素的& 只可出现在头部,否则解析不出来。
嵌套属性
CSS Code复制内容到剪贴板 .funky{ font:{ family:fantasy; size:30em; weight:bold; } }
编译为
CSS Code复制内容到剪贴板 .funky{ font-family:fantasy; font-size:30em; font-weight:bold;}
这个在一些复杂的css3属性上用处比较大,比如animate
字符串内插
使用#{}作为选择器变量
CSS Code复制内容到剪贴板 $name:foo; $attr:border; p.#{$name}{ #{$attr}-color:blue; } p{ $font-size:12px; $line-height:30px; font:#{$font-size}/#{$line-height}; }
第二个例子如果不用字面量则12除30
运算符
CSS Code复制内容到剪贴板 p{ width:1in+8pt; }
单位如果可以转换,会被自动转换
编译为:
CSS Code复制内容到剪贴板 p{ width:1.111in;} p{ font:10px/8px;//PlainCSS,nodivision $width:1000px; width:$width/2;//Usesavariable,doesdivision width:round(1.5)/2;//Usesafunction,doesdivision height:(500px/2);//Usesparentheses,doesdivision margin-left:5px+8px/2px;//Uses+,doesdivision }
直接字面量,变量使用,函数,括号,优先级
以上编译为
CSS Code复制内容到剪贴板 p{ font:10px/8px; width:500px; height:250px; margin-left:9px; }
颜色:
CSS Code复制内容到剪贴板 p{ color:#010203+#040506;//相加rbg三位分别相加 color:#010203*2;//相乘 color:rgba(255,0,0,0.75)+rgba(0,255,0,0.75);//带alpha通道的叠加 color:opacify($translucent-red,0.3);//控制透明的函数,加强非透明 background-color:transparentize($translucent-red,0.25);//控制透明的函数,加强透明 }
默认变量:
CSS Code复制内容到剪贴板 $content:"Firstcontent"; $content:"Secondcontent?"!default; $new_content:"Firsttimereference"!default; #main{ content:$content; new-content:$new_content; }
!default 如变量被赋值使用之前的赋值,没被赋值,赋值