本文直接用scss語法規則寫的scss文件,直接複製代碼保存即可用
/*
** SASS 快速入門
**
/*
** 1. 使用變量,
** 1.1 聲明變量以$符號標識 ()
** 1.2 引用變量
** 1.3 變量名用中劃線還是下劃線分隔;個人喜好,建議用中劃線。
**
*/
$base-color: #ccc; /*聲明變量*/
$side: left;
.main-container {
background-color: $base-color; /*引用變量*/
border-#{$side}-radius: 5px; /*在字符連接時,要用#開頭和一對花括號包裹*/
}
/* 2. 嵌套CSS 規則
** 2-1. 父選擇器的標識符&
** 2-2. 羣組選擇器的嵌套
** 2-3. 子組合選擇器和同層組合選擇器:>、+和~
** 2-4. 嵌套屬性;
*/
.container {
p {
padding: 10px;
}
.item {
width: 200px;
height: 40px;
}
a {
background-color: #ccc;
&:hover { /*父選擇器的標識符&*/
color: fff;
background-color: green;
}
}
h1, h2, h3 { /*羣組選擇器的嵌套;*/
margin-bottom: .8em
}
article { /*子組合選擇器和同層組合選擇器:>、+和~*/
~ article { border-top: 1px dashed #ccc }
> section { background: #eee }
dl > {
dt { color: #333 }
dd { color: #555 }
}
nav + & { margin-top: 0 }
}
.div {
border-left: {
color: $base-color;
width: 1px;
style: solid; /*當然,這個更簡單的是border-left: 1px solid #ccc*/
}
}
}
/*
** 3. 導入SASS文件
** 3-1 關鍵字 @import <引用文件> 省略文件sass、scss後綴
** 3-2 使用SASS部分文件,sass局部文件的文件名以下劃線開頭。
** 即只引用該文件中的樣式,在編譯時卻生成該文件對應的css文件
** 3-3 默認變量值
** 關鍵字 !default
** 聲明某個可以被其他sass文件改變的屬性提供默認值
** 3-4 嵌套導入
** 跟原生的css不同,sass允許@import命令寫在css規則內。
** 3-5 原生的CSS導入
** 需要把原生css文件的後綴改成scss,然後直接導入就好,scss兼容css語法
**
*/
@import '_reset';
/* 這個_reset.scss文件我只想在這裏引用它,而在編譯的時候,
** 不會生成對應的css文件,也就是_reset.css文件*/
$box-width: 100px !default; /*默認變量值*/
/*$box-width: 10px; /*若自己後面覆蓋了*/
.box-width {
width: $box-width; /*我在_reset.scss中,聲明$fancybox-width: 200px; 若沒有外部引用,就默認400px;*/
}
/*嵌套導入*/
.iframe {
.div {
position: absolute;
}
@import 'iframe'; /*不加分號會報錯 */
}
/*原生的CSS導入*/
@import 'myCssFile';
/**
** 4. 註釋 /***/ /*或者*/ //雙斜線註釋 /*!貌似還有有這種米字號後加感嘆號的
/*
** 5. 混合器
** 混合器使用@mixin標識符定義。
** 5-1. 不傳參數
** 5-2. 傳一個或多個參數
** 5-3. 默認參數
*/
@mixin div-demo { //無參數
width: 100px;
height: 100px;
border: 1px solid #ccc;
}
@mixin rounded-corners($size) { //帶參數
-moz-border-radius: $size;
-webkit-border-radius: $size;
border-radius: $size;
}
@mixin border-radius ( $left-radius, $right-radius ) { //多個參數
-webkit-border-left-radius: $left-radius;
-moz-border-left-radius: $left-radius;
-ms-border-left-radius: $left-radius;
border-left-radius: $left-radius;
-webkit-border-right-radius: $right-radius;
-moz-border-right-radius: $right-radius;
-ms-border-right-radius: $right-radius;
border-right-radius: $right-radius;
}
@mixin border-radius-default ( $default, $left-radius: $default, $right-radius: $default ) { //默認參數
border-left-radius: $left-radius;
border-right-radius: $right-radius; /*爲看得清楚些,就把兼容寫法去掉*/
}
@mixin border-radius-default-2px ( $default:2px, $left-radius: $default, $right-radius: $default ) { //默認參數
border-left-radius: $left-radius;
border-right-radius: $right-radius; /*本應傳多個參數,但什麼都不傳*/
}
.container {
.div {
@include div-demo;
@include rounded-corners(3px);
}
.div2 {
@include border-radius(3px, 6px);
}
.div3 {
@include border-radius-default(1px);
}
.div4 {
@include border-radius-default-2px();
}
}
/* 6. 繼承 @extend */
.container2 {
.div {
width: 100px;
height: 100px;
}
.div2 {
@extend .div;
text-shadow: 3px 3px 3px #ccc;
}
}
/*
** sass官網: http://sass-lang.com/
** sass中文網快速入門: https://www.sass.hk/guide/
** sass在線轉換器: https://www.sassmeister.com/
** 阮一峯SASS用法指南: http://www.ruanyifeng.com/blog/2012/06/sass.html
*/