プログラミング独学day56の学習で、得たことや気づきを教えて!
今日は
・BEMをSassで書き、CSSにコンパイルしてみる
をアウトプットします!
こんにちは。プログラミングでweb制作ができるようになりたいharu(@fuwafuwahappy)です。
2歳0歳の育児をしながら、22時〜1時に独学しています!
→プログラミング学習day56、もりけん塾day12
わかったことや、気付きをログに残します。
同じく初学者の人が、これをみてインプットや復習ができるように書いていきます。
BEMをSassで書き、CSSにコンパイルしてみる
BEMをSass表記で書く方法を学んだのでアウトプットします。
学習目的:明日からの模写で、BEMをSass表記を使って書く練習がしたい
ゴール:Sassの「ネスト/mixin」でBEMを書けるようになる
まず、BEMとSassの復習をしました
①BEMの書き方
*参考書籍は「CSS設計の教科書」
②Progateで学んだSassの基本
*これに加えて、たにぐちまことさん(@seltzer)のyoutubeで学習。
→4回にわたる講座、めちゃめちゃわかりやすかったのでおすすめです。
BEMをSassで書く方法
明日からの模写では、次の2つを実際に使ってみます。
BEMをネストを使って書いてみる
ネストとは、セレクタを入れ子のように書く表記のことでした。
BEMを使った以下のようなセレクタがあった時、
header__logo{} header__link{}
Sassを使うとこのように書くことができます。
header{ &__logo{} &__link{} }
&(親要素を参照)を使って、__以下を入れ子のセレクタにできる。
@mixinと変数使ってメディアクエリを書いてみる
・変数は、繰り返し使うことができる値を入れた箱
・mixinは、いくつかのコードを1つにまとめて何度も呼び出せる
①実際にメディアクエリを書いてみる。(上記HPより)
まずは、定義から。
$pc: 1024px; // PC $tab: 680px; // タブレット $sp: 480px; // スマホ @mixin pc { @media (max-width: ($pc)) { @content; } } @mixin tab { @media (max-width: ($tab)) { @content; } } @mixin sp { @media (max-width: ($sp)) { @content; } }
【解説】
①まず「変数」$PC: 1024pxを定義。
②次に、「@mixin」を使ってメディアクエリの表記を保存。
引数には、先ほどの「変数」を入れておきます。
② @includeで呼び出す
レスポンシブ対応をしたい場所で使います。
.btn { @include pc { background-color: red; }; @include tab { background-color: blue; }; @include sp { background-color: yellow; }; }
@mixinでメディアクエリを書くメリット
①@includeで呼び出すことで、1箇所だけで完結する
→通常だと、PC,タブレット,スマホの離れた場所にある@mediaに、レスポンシブ対応を書く必要があった
②記述量を大幅にカットできる
SCSSをCSSにコンパイルしよう
SCSSは書いたあとに、CSSにコンパイル(=変換)する必要があります。
明日からの模写に向けて、たにぐちまことさんのyoutubeで設定しておきました。
①VSCodeで「Live Sass compiler」の拡張機能をインストール
②「stylesheet.scss」などの名前でscssファイルを作る
③右下ツールバーの「watch sass」を押す
④「stylesheet.css」「stylesheet.map」この2つが自動で作成される
⑤この状態でscssファイルにSassを書いて保存する
⑥自動でSass→CSSにコンパイル(=変換)してくれる。
以上です。
あとがき
*今日の工夫*
・youtubeの埋め込みに成功
・コードの埋め込みスタイル変えた、みやすくなった
Thanks:師匠「もりけんさん」(@terrace_tec)
もりけんさんのHPはこちら