CSSプリコンパイルツールSASS詳細
sass
はcss
のプリコンパイルツールですcss
sass
書いたものブラウザはcss
に変換するブラウザでsass環境のインストール
sass
は、ruby
の環境sass
は、python
の環境node
が強くなった後、私たちはnode
環境に依存するだけでnpm
を使用してグローバルなsass
環境をインストールする必要があります.# sass
$ npm install sass -g
sass
環境以降sass
のファイルをコンパイルできますsass
のファイル接尾辞には、.sass
と.scss
{}
と;
の.scss
ファイルh1 {
width: 100px;
height: 200px;
}
.sass
ファイルh1
width: 100px
height: 200px
.scss
ファイル.sass
私たちは書くのに慣れていないので、もちろん、書くことができれば.scss
あるいは.sass
ファイルブラウザはcss
ファイル# index.scss , index.css
$ sass index.scss index.css
css
ファイルを得ることができ、ページにもcss
ファイルを導入すればリアルタイムコンパイル
css
ファイル# index.scss , , index.css
$ sass --watch index.scss:index.css
index.scss
ファイルの内容を変更すると、index.css
ファイルの内容が自動的にリアルタイム監視ディレクトリ
sass
ファイルcss
フォルダの中の# sass , , css
$ sass --watch sass:css
sass
フォルダの下の内容を変更すると、css
フォルダのcss
フォルダの中で自動的に削除することはできなくて、私達自身が手動でsass構文
sass
ファイルをコンパイルできるようになりました.次にsass
の文法を勉強しなければなりません..sass
と.scss
のファイルの文法は同じですが、違いは{}
と;
変数#ヘンスウ#
$
を使用して変数// $c ,
$c: red;
h1 {
// $c
color: $c;
}
h1 {
// $w h1
$w: 100px;
width: $w;
}
ネスト
sass
の中で私たちが最も長く使ったのはh1 {
width: 100px;
div {
width: 200px;
}
}
//
h1 {
width: 100px;
}
h1 div {
width: 200px;
}
ul {
width: 100px;
li {
width: 90px;
div {
width: 80px;
p {
width: 70px;
span: {
color: red;
}
}
}
}
}
&
ですdiv {
width: 100px;
height: 100px;
:hover {
width: 200px;
}
}
// div width 200
//
div {
width: 100px;
height: 100px;
}
div :hover {
width: 200px;
}
&
を用いてdiv {
width: 100px;
height: 100px;
&:hover {
width: 200px;
}
}
//
div {
width: 100px;
height: 100px;
}
div:hover {
width: 200px;
}
div {
width: 100px;
.box1, .box2, .box3 {
color: red;
}
}
//
div {
width: 100px;
}
div .box1, div .box2, div .box3 {
color: red;
}
h1, h2, h3 {
width: 100px;
.box {
color: red;
}
}
//
h1, h2, h3 {
width: 100px;
}
h1 .box, h2 .box, h3 .box {
color: red;
}
ネストされたプロパティ
scss
には特殊なネストdiv {
border: {
style: solid;
width: 10px;
color: pink;
}
}
//
div {
border-style: solid;
border-width: 10px;
border-color: pink;
}
div {
border: 1px solid #333 {
bottom: none;
}
}
//
div {
border: 1px solid #333;
border-bottom: none;
}
かき混ぜる
scss
ファイルで// @mixin
@mixin radius {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-ms-border-radius: 10px;
-o-border-radius: 10px;
border-radius: 10px;
}
// @include
div {
width: 100px;
height: 100px;
@include radius;
}
div {
width: 100px;
height: 100px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-ms-border-radius: 10px;
-o-border-radius: 10px;
border-radius: 10px;
}
//
@mixin my_transition($pro, $dur, $delay, $tim) {
-webkit-transition: $pro $dur $delay $tim;
-moz-transition: $pro $dur $delay $tim;
-ms-transition: $pro $dur $delay $tim;
-o-transition: $pro $dur $delay $tim;
transition: $pro $dur $delay $tim;
}
div {
width: 100px;
height: 100px;
@include my_transition(all, 1s, 0s, linear);
}
div {
width: 100px;
height: 100px;
-webkit-transition: all 1s 0s linear;
-moz-transition: all 1s 0s linear;
-ms-transition: all 1s 0s linear;
-o-transition: all 1s 0s linear;
transition: all 1s 0s linear;
}
//
@mixin my_transition($dur: 1s, $pro: all, $delay: 0s, $tim: linear) {
-webkit-transition: $dur $pro $delay $tim;
-moz-transition: $dur $pro $delay $tim;
-ms-transition: $dur $pro $delay $tim;
-o-transition: $dur $pro $delay $tim;
transition: $dur $pro $delay $tim;
}
div {
width: 100px;
height: 100px;
// , ,
@include my_transition(2s);
}
div {
width: 100px;
height: 100px;
-webkit-transition: 2s all 0s linear;
-moz-transition: 2s all 0s linear;
-ms-transition: 2s all 0s linear;
-o-transition: 2s all 0s linear;
transition: 2s all 0s linear;
}
sass
で継承を使用すると開発効率が大幅に向上するdiv {
width: 100px;
height: 100px;
background-color: pink;
}
div
と同じで、自分の内容もあります.p {
@extend div;
font-size: 20px;
color: red;
}
div, p {
width: 100px;
height: 100px;
background-color: pink;
}
p {
font-size: 20px;
color: red;
}
scss
ファイルの注釈はいくつかに分けられます// , ,
/* , */
/*! , , */
ファイルのインポート
// variable.scss
$w: 100px;
$h: 200px;
$c: pink;
// mixin.scss
@mixin my_transition($dur: 1s, $pro: all, $delay: 0s, $tim: linear) {
-webkit-transition: $dur $pro $delay $tim;
-moz-transition: $dur $pro $delay $tim;
-ms-transition: $dur $pro $delay $tim;
-o-transition: $dur $pro $delay $tim;
transition: $dur $pro $delay $tim;
}
@mixin radius {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-ms-border-radius: 10px;
-o-border-radius: 10px;
border-radius: 10px;
}
// index.scss
@import './variable.scss';
@import './mixin.scss';
div {
width: $w;
height: $h;
background-color: $c;
@include radius;
}
h1 {
@include my_transition;
}
div {
width: 100px;
height: 200px;
background-color: pink;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-ms-border-radius: 10px;
-o-border-radius: 10px;
border-radius: 10px;
}
h1 {
-webkit-transition: 1s all 0s linear;
-moz-transition: 1s all 0s linear;
-ms-transition: 1s all 0s linear;
-o-transition: 1s all 0s linear;
transition: 1s all 0s linear;
}