見出し画像

デイトラweb制作コース 中級編 Day7

Sassの勉強に入った!

本日からはsassの勉強。講座ではsassmeisterを使うのですが、私が海外アクセスだからか?アクセスできず。 なのでVS codeとLive Sass Compilerで実際に書いて練習することに。

Sassの書き方

  • HTMLにはsassファイルではなく、cssファイルを読み込ませる。

  • sassは親要素の中に、子要素を入れ込んでcssを書くことができる。

  • 直前の要素を&で引っ張ってくることができる。

  • $マークで変数を宣言できる。

  • 変数は四則演算も可能。

  • extensを当てると、共通で使いたいcssを当てることができる。

  • mixinを使うと、同じコードを使いまわしたい時に便利。

  • functionも入れることができる。

$link-color-active: #da1e32;
$link-color-base: #333;
$link-font-size:16px;

@mixin button( $font-size ) {
    color: #333;
    font-size: $font-size;
    display: inline-block;
    margin-top: 20px;
    padding: 8px 16px;
    border: 1px solid #333;
    text-decoration: none;
  }

.lists{
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;

    li{
        width: 25%;
        text-align: center;

        a{
            @include button(14px);

            &:hover{
                color: $link-color-active;
            }

            &.active{
                font-size: $link-font-size + 10px;
                color: $link-color-active;
            }
        }
    }

}

mixinの使い方

@mixin button( $font-size ) {
    color: #333;
    font-size: $font-size;
    display: inline-block;
    margin-top: 20px;
    padding: 8px 16px;
    border: 1px solid #333;
    text-decoration: none;
  }

 a{
            @include button(14px);
}

mixinで指定した{}内のコードは、@includeで呼び出すことができる。 また、()内に変数を当てることで、include側の()内の数値を入力することができる。mediaクエリに使用することが多い。

//マップ型変数breakpointsを定義
$breakpoints: (
//キー  値
  'sp': 'screen and (max-width: 767px)', //767px以下(スマホ)用の表示
  'pc': 'screen and (min-width: 768px)' //768px以上(タブレット・PC)用の表示
) !default;

//メディアクエリ用のmixinを定義。デフォ値はsp
@mixin mq($breakpoint: sp) {
//map-get(マップ型変数, キー)で値を取得
  @media #{map-get($breakpoints, $breakpoint)} {
    //この中をカスタムできる
    @content;
  }
}

//使用例
.header {
  height: 100px; //PC用の表示

  @include mq(sp) {
    height: 60px; //スマホの時だけ高さを60pxに!
  }
}

/*このように @media screen and (width: 767px) { } を書かなくても、
PC用のcssを書きながらスマホ用の表示を書き足すことができます! */

functionの使い方

$link-font-size:14px;

@function activeFontSize($base-size){
    @return $base-size + 2px;
}

.link{
	font-size: activeFontSize($link-font-size);
}

actionFontSizeというfunctionを作成し、入れ込むことができる。 上記の場合、linkクラスのフォントサイズは16pxになる。

この記事が気に入ったらサポートをしてみませんか?