CSS Variables(カスタムプロパティ)が超便利!
簡単に言うと変数が使えるようになる機能です
あらかじめよく使う値を変数に入れておけば、CSS内で自由に呼び出して使うことができます。
ブラウザの対応状況はCan I use
残念ながらIE11が非対応(2017.11現在)なので、業務利用はまだ先になりそう
目次
CSS Variables 基本的な使い方
カスタムプロパティでフォントの色を指定する
calcでカスタムプロパティを使用する
CSS Variables 基本的な使い方
変数を指定してから、使用する値の場所で呼び出す
CSS
- :root {
- --base-color: #ccc;
- }
- .base {
- color: var(--base-color);
- }
変数はセレクタに対して定義する
サイト全体で使用するような場合は「:root」に定義し
使用箇所を限定する場合はclassやタグに定義します
変数を指定する際は、先頭に「--」ハイフンを2つをつけ
呼び出す際は、「var(--○○)」をプロパティの値に記述します
カスタムプロパティでフォントの色を指定する
まずはCSSを↓のように
CSS
- :root {
- --font-color: grey;
- }
- .blue {
- --font-color: blue;
- }
- .red {
- --font-color: red;
- }
- p {
- color: var(--font-color);
- }
HTMLを記述
HTML
- <div>
- <p>grey</p>
- <div class="blue">
- <p>blue</p>
- <p class="red">red</p>
- </div>
- <p>grey</p>
- </div>
ブラウザがカスタムプロパティに対応していれば、それぞれの色でテキストが表示されます
grey
blue
red
grey
calcでカスタムプロパティを使用する
実際に使用しそうな場面としては、コンテンツの幅と、カラム数を指定するような場合でしょうか
指定してみます
CSS
- :root {
- --content-width: calc(100% - 2em);
- --content-column: 3;
- }
- .wrap-box {
- width: var(--content-width);
- display: -webkit-flex;
- display: flex;
- -webkit-flex-wrap: wrap;
- flex-wrap: wrap;
- margin: auto;
- border: 1px solid #ccc;
- }
- .wrap-box li {
- width: calc((100% - 20px) / var(--content-column));
- border: 1px solid #ccc;
- box-sizing: border-box;
- margin-bottom: 5px;
- margin-left: 5px;
- }
- .wrap-box li:nth-child(-n + 3) {
- margin-top: 5px;
- }
- .wrap-box li:nth-child(3n) {
- margin-right: 5px;
- }
HTML
HTML
- <ul class="wrap-box">
- <li>A</li>
- <li>B</li>
- <li>C</li>
- <li>D</li>
- <li>E</li>
- </ul>
- A
- B
- C
- D
- E
まとめ
ごちゃごちゃした使い方もできますが、最も便利だと思うのはやはり
変数なので使いまわすことができること。
長さやサイズ、色などを複数のクラスで使いまわせるのは
非常に便利!
早く仕事で使えるようにならないかな〜
コメント一覧
まだ、コメントがありません