実行コマンド
- sass --style expanded scss/main.scss:css/main.css- 
- --style expandedはTabIndexしないoption
 
- sass --style --watch scss:css変更を自動反映
 Basic Syntax
 Variables
- $〜で変数を宣言
- {} 記号で値を評価
 $baseFontSize: 14px;
#main {
    p {
        font-size: $baseFontSize;
        .sub {
            font-size: $baseFontSize - 2px; // 12px
            font-size: #{12 + 12}px; // 24px
        }
    }
}
 
- 文字列変数
 $imgDir: "../img/";
#main {
    background-image: url($imgDir + "bg.img");
    // or background-image: url("#{$imgDir}bg.img");
}
 
- カラー変数
 $brandColor: rgba(255,0,0,0.9);
#main {
    color: lighten($brandColor, 30%);
}
 
 制御構文
- if分岐: @if, @else if, @else を使う
 $debugMode: true;
#main {
    @if $debugMode == true {
        color: red;
    } @else {
        color: blue;
    }
}
 
- forループ
 // .fs10 〜 .fs14 までいっきに作る!
@for $i from 10 through 14 {
    .fs#{$i} { font-size: #{$i}px; }
}
 
- whileループ
 // .fs10 〜 .fs14 までいっきに作る!
$i: 10;
@while $i <= 14 {
    .fs#{$i} { font-size: #{$i}px; }
    $i: $i + 1;
}
 
 LIST
- 似たようなデータをまとめて管理
 $animals: cat, dog, tiger;
@each $animal in $animals {
    #{$animal}-icon { background: url("#{$animal}.png"); }
}
 
- ちょくせつリストをeach文に書いてもよし。
 @each $animal in cat, dog, tiger {
    #{$animal}-icon { background: url("#{$animal}.png"); }
}
 
 FUNCTION
    $totalWidth: 940px;
    $columnCount: 5;
    @function getColumnWidth($width, $count) {
        $padding: 10px;
        $columnWidth: floor(($width - $padding * ($count - 1)) / $count);
        @debug $columnWidth;
        @return $columnWidth;
    }
    .grid {
        float: left;
        width: getColumnWidth($totalWidth, $columnCount);
    }
 ファイルの分離
- _settings.scss settingファイル
 $totalWidth: 940px;
$columnCount: 5;
 
- _functions.scss 関数ファイル
 @function getColumnWidth($width, $count) {
    $padding: 10px;
    $columnWidth: floor(($width - $padding * ($count - 1)) / $count);
    @debug $columnWidth;
    @return $columnWidth;
}
 
- main.scss 読み込み
 @import "settings";
@import "functions";
.grid {
    float: left;
    width: getColumnWidth($totalWidth, $columnCount);
}
 
 @mixin (複数の設定をまとめて管理)
    @mixin round {
        border-radius: 5px;
    }
    .label {
        font-size: 12px;
        @include round;
    }
 @extend (継承)
    .msg {
        font-size: 12px;
        font-weight: bold;
        padding: 2px 4px;
    }
    .errorMsg {
        background: red;
        @extend .msg;
    }
    .warningMsg {
        background: orange;
        @extend .msg;
    }
 
No comments:
Post a Comment