SCSS
- 区别
$font-stack: Helvetica, sans-serif
$primary-color: #333
body
font: 100% $font-stack
color: $primary-color
Scss:
$font-stack: Helvetica, sans-serif; $primary-color: #333; body { font: 100% $font-stack; color: $primary-color; }
- 特性(以Scss为例)
Variables 变量
变量用来存储那些样式表中需要重用的信息,比如颜色,字体。Sass用$来表示变量
$font-stack: Helvetica, sans-serif; $primary-color: #333; body { font: 100% $font-stack; color: $primary-color; }
当Sass处理时,把这些变量替换为css,这对处理一些品牌颜色,让他们在站内保持一致很有用。
Nesting 嵌套
nav { ul { margin: 0; padding: 0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; } }
nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; } nav a { display: block; padding: 6px 12px; text-decoration: none; }
可以避免父选择器的重复,使得代码更简洁:
#main {
width: 97%;
p, div {
font-size: 2em;
a { font-weight: bold; }
}
pre { font-size: 3em; }
}
编译得到:
#main { width: 97%; } #main p, #main div { font-size: 2em; } #main p a, #main div a { font-weight: bold; } #main pre { font-size: 3em; }
&符号可以显式指明父选择器应该插入的地方,比如:
a { font-weight: bold; text-decoration: none; &:hover { text-decoration: underline; } body.firefox & { font-weight: normal; } }
编译得到:
a { font-weight: bold; text-decoration: none; } a:hover { text-decoration: underline; } body.firefox a { font-weight: normal; }
#main { color: black; a { font-weight: bold; &:hover { color: red; } } }
编译得到:
#main { color: black; } #main a { font-weight: bold; } #main a:hover { color: red;
}
&必须在复合选择器的开头,但是可以在这个父选择器(&)后面加后缀。如果这个父选择器不能应用后缀,Sass会报错。
#main { color: black; &-sidebar { border: 1px solid; } }
编译得到:
#main { color: black; } #main-sidebar { border: 1px solid; }
CSS有一些属性在命名空间(
namespace)中,比如, font-family
, font-size
, and font-weight
都在font命名空间中
中,Sass提供对于命名空间的简写:
.funky { font: { family: fantasy; size: 30em; weight: bold; } }
编译得到:
.funky { font-family: fantasy; font-size: 30em; font-weight: bold; }
Partials
Import
Mixins
@mixin border-radius($radius) { -webkit-border-radius: $radius; -moz-border-radius: $radius; -ms-border-radius: $radius; border-radius: $radius; } .box { @include border-radius(10px); }
编译得到:
.box { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; border-radius: 10px; }
Extend/Inheritance
.message { border: 1px solid #ccc; padding: 10px; color: #333; } .success { @extend .message; border-color: green; } .error { @extend .message; border-color: red; } .warning { @extend .message; border-color: yellow; }
.message, .success, .error, .warning { border: 1px solid #cccccc; padding: 10px; color: #333; } .success { border-color: green; } .error { border-color: red; } .warning { border-color: yellow; }
Operators
+
, -
, *
, /
, and % 操作符
.container { width: 100%; } article[role="main"] { float: left; width: 600px / 960px * 100%; } aside[role="complimentary"] { float: right; width: 300px / 960px * 100%; }
例子简单地建立了一个基于960px流式网格,Sass操作符能够将pixal值方便地转化为百分比。
编译得到:
.container { width: 100%; } article[role="main"] { float: left; width: 62.5%; } aside[role="complimentary"] { float: right; width: 31.25%; }
参考:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。