Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSS: Flexbox and Custom Property

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

CSS: Flexbox and Custom Property

CSSの新仕様であるFlexboxとCustom Propertyについて

Avatar for Takamori Kanao

Takamori Kanao

December 05, 2016

Other Decks in Technology

Transcript

  1. nFlexbox nカスタムプロパティ $44ͷ৽࢓༷ Dev Fest Tokyo 2016 Modern CSS :

    architecture, future specs, and build flow 森下雅章 increments, inc. でも紹介されていました
  2. 'MFYCPY • display: flex • flex: 1 • flex-direction: column

    重要な3つのプロパティ 実際にレイアウトを作りながら説明します
  3. 'MFYCPY ヘッダーから整えていきます <header> <nav> <ul class="main-nav"> <li><a href="#" class="logo">Logo</a></li> <li><a

    href="#">Menu 1</a></li> <li><a href="#">Menu 2</a></li> <li><a href="#">Menu 3</a></li> <li><a href="#">Menu 4</a></li> </ul> </nav> </header>
  4. 'MFYCPY 次はコンテンツ <div class="main"> <section class="col-1"> <h1>Column 1</h1> <p>Lorem ipsum

    dolor sit amet...</p> </section> <section class=“col-2”> ... </section>
  5. 'MFYCPY そのまえに… ヘッダー フッター 右 カ ラ ム 左 カ

    ラ ム メイン コンテンツ ヘッダー フッター コンテンツ 右 カ ラ ム 左 カ ラ ム メイン コンテンツ 90度回転 させただけ 横向き3カラム 縦向き3カラム 今回のレイアウトは2つの 3カラムを単純に合わせたも のです
  6. :root { --bg-color: #343434; --border-radius: 4px; --box-padding: 10px; --txt-color: white;

    } $44ΧελϜϓϩύςΟ 使い⽅は簡単 • -- から始まるカスタムプロパティを定義する • 変数を使いたい場所で var(--hoge) という形で呼び出す .btn { display: inline-block; background-color: var(--bg-color); border-radius: var(--border-radius); color: var(--txt-color); padding: var(--box-padding); } :root…グローバル変数に定義するようなもの。普通はセレクタで定義する。 定義 呼び出し
  7. :root { --base-font-size: 8px; --base-line-height: 15px; } .sample { font-size:

    calc( var(--base-font-size) / 2); line-height: calc( var(--base-line-height) * 4); } $44ΧελϜϓϩύςΟ calc()と組み合わせるとさらに便利
  8. /* CSS */ :root { --key-color: red; } /* JavaScript

    */ var styles = getComputedStyle(document.documentElement); var value = String(styles.getPropertyValue('--key-color')); console.log(value); // => red $44ΧελϜϓϩύςΟ JavaScriptから変数を読み込むこともできる
  9. A Complete Guide to Flexbox https://css-tricks.com/snippets/css/a-guide-to-flexbox/ floatより⾟くない「flexbox」でざっくりレイアウト http://qiita.com/hashrock/items/939684b9207dbab1d59e カスケード変数のための CSS

    カスタムプロパティ ̶ CSS Custom Properties for Cascading Variables Module Level 1 https://triple-underscore.github.io/css-variables-ja.html CSS Variables (CSS カスタムプロパティ) の使い⽅ https://hyper-text.org/archives/2014/07/css_variables.shtml CSS Variables(カスタムプロパティ): なぜ、関⼼を持つべきか? http://postd.cc/css-variables-why-should-you-care/ 参考