VIDEO LESSON
CSSレイアウト実践:FlexboxとGridでナビゲーションとカードを配置するの解説動画
再生時間 7:49動画を別のタブで開く ↗
動画の字幕・文字起こしを読む
再生中の字幕を濃い黒で表示し、一番上に追従します。字幕の行を選ぶと、その位置から再生できます。
- 0:00こんにちは。
- 0:00エイチティーエムエル、シーエスエス入門、第六回です。
- 0:04今回のテーマは、レイアウトです。
- 0:07これまでのページは、内容が上から下へ、縦に並んでいるだけでした。
- 0:12今回は、そこへ横方向の配置を導入します。
- 0:15使う道具は二つです。
- 0:16ナビゲーションにはフレックスボックス、学習カードにはグリッドを使います。
- 0:22ここで大切なのは、どちらか一方でページ全体を作ろうとしないことです。
- 0:27並べたい内容と、揃え方に合わせて選べるようになること。
- 0:31それが今回のゴールです。
- 0:33元になる記事は、エスイーの部屋の、シーエスエス レイアウト実践、フレックスボックスとグリッド、
- 0:37です。
- 0:40まず、フレックスボックスの得意分野です。
- 0:43フレックスボックスは、行、または列という、一つの方向を中心に、要素を並べたり、
- 0:48余白を分配したりする仕組みです。
- 0:52サイト名とナビゲーションのように、サイズの異なる要素を一方向に並べる用途に向いています。
- 0:59使い方の入り口は、ディスプレイ、フレックスという一行です。
- 1:03これを指定した要素の、直接の子要素が、フレックスアイテムとして並びの対象になります。
- 1:09孫要素は対象にならない、という点が最初のポイントです。
- 1:14親に指定する、という関係を覚えてください。
- 1:17フレックスボックスの、二つの軸を整理します。
- 1:20ジャスティファイコンテントは、主軸方向の揃え方です。
- 1:24アラインアイテムズは、主軸と交わる、交差軸方向の揃え方です。
- 1:29ここで注意点があります。
- 1:31フレックスディレクションを変えると、主軸そのものが入れ替わります。
- 1:36ですから、ジャスティファイは横、アラインは縦、と固定して覚えないでください。
- 1:42主軸と交差軸、という言葉で覚えるのが安全です。
- 1:46もう一つ、フレックスラップ、ラップは、一行に入りきらない項目の折り返しを許可する指定です。
- 1:53画面が狭くなったときの、はみ出し防止に効きます。
- 1:56次は、グリッドです。
- 1:58グリッドは、列と行を先に定義して、その枠の中へ要素を配置する仕組みです。
- 2:04フレックスボックスが一方向なら、グリッドは縦と横の二次元、と覚えると区別しやすくなります。
- 2:12今回の使いどころは、学習カードです。
- 2:15三枚のカードの列幅を揃えたいので、グリッドテンプレートカラムズで列を定義します。
- 2:22もう一つ便利なのが、ギャップです。
- 2:24列と列の間、行と行の間の余白を、まとめて指定できます。
- 2:29各カードに左右のマージンを付けて調整する必要がなくなるのが、大きな利点です。
- 2:35列の指定、リピート スリー、ミンマックス ゼロ、カンマ、イチ エフアール、
- 2:40を分解して読みます。
- 2:44リピートは、同じ指定を繰り返す書き方で、ここでは三列分です。
- 2:49エフアールは、余白を除いた利用可能な幅を、列で分け合うための単位です。
- 2:55ミンマックスは、最小値と最大値の範囲を指定します。
- 3:00最小幅をゼロにしておくことで、内容が持つ最小幅に引っ張られて、列が広がりすぎる事態を避けやすくなります。
- 3:09ただし万能ではありません。
- 3:11長いユーアールエルのように、内容そのものが折り返されない場合は、別途の対策が必要になることも覚えておきましょう。
- 3:21ここから、実際に追加するコードです。
- 3:24第五回までのスタイルズ ドット シーエスエスの末尾へ追加します。
- 3:29エイチティーエムエルは、第三回から共通のものを使います。
- 3:34まず、ヘッダーロウです。
- 3:36ディスプレイ、フレックスで横並びにし、アラインアイテムズ、センターで縦方向の中央を揃えます。
- 3:43ジャスティファイコンテント、スペースビトウィーンで、サイト名とナビゲーションを両端へ分けます。
- 3:50ギャップ二十ピクセルが最低限の間隔で、フレックスラップ、ラップが折り返しの許可です。
- 3:57そして、ナブ自体にもフレックスを指定し、リンク同士の間隔をギャップで空けます。
- 4:03追加コードの二つ目、カードの配置です。
- 4:06ドット カーズに、ディスプレイ、グリッドを指定し、列は先ほど解説した、三列の指定です。
- 4:13間隔は、ギャップ二十四ピクセルに統一します。
- 4:17ここで、忘れてはいけない行があります。
- 4:20ドット カード、プラス、ドット カード、マージントップ、ゼロです。
- 4:26前回は、縦並びのために、二枚目以降のカードへ上のマージンを付けていました。
- 4:32今回は、間隔の役割をギャップへ移すので、その名残をゼロに戻します。
- 4:38これを忘れると、二枚目以降だけ位置がずれてしまいます。
- 4:42配置方法を変えたら、前の方法で作った余白も点検する。
- 4:47これが今回いちばん実務的な習慣です。
- 4:50追加コードの三つ目です。
- 4:52ヒーローグリッドと、アバウトグリッドは、紹介部分を二列にするための指定です。
- 4:58列の書き方は、カードと同じ考え方で、二列版です。
- 5:01ギャップは四十ピクセルと、カードより広めに取り、本文と補足の区切りをはっきりさせます。
- 5:08アラインアイテムズ、センターで、高さの違う内容同士を、縦方向の中央で揃えます。
- 5:14カードの指定と読み比べてみると、グリッドの基本形は、ディスプレイ、列の定義、
- 5:19ギャップ、という三点セットだということが見えてきます。
- 5:24配置を作るときの、大切な約束です。
- 5:27フレックスボックスやグリッドを使うと、見た目の順序を変更することもできます。
- 5:34しかし、キーボードで移動する順序や、読み上げの順序まで、同じように変わるとは限りません。
- 5:42見た目と、たどる順序が食い違うと、使う人を迷わせてしまいます。
- 5:47そこで今回は、エイチティーエムエルの順序を、そのまま左から右、上から下へ表示する方針にします。
- 5:56見た目だけを都合よく並べ替える前に、文書の順序そのものが適切かどうかを見直しましょう。
- 6:03順序の正しさは、エイチティーエムエル側で決まるのです。
- 6:08ポジションの使い方も絞っておきます。
- 6:11ページ全体を、ポジション、アブソリュートと座標で配置してしまうと、文章が増えたときや、
- 6:16画面幅が変わったときに、要素同士が重なりやすくなります。
- 6:21座標は、置いた瞬間の見た目しか保証してくれません。
- 6:25通常の流れの中で並べられる内容は、フレックスボックスやグリッドに任せましょう。
- 6:31絶対配置は、アイコンの重ね合わせのように、基準が明確な部分に限定します。
- 6:36道具を増やすのではなく、用途で使い分ける。
- 6:39この回で身につける感覚は、まさにそこです。
- 6:42最後に、応用と練習です。
- 6:44応用として、列数を固定しない書き方も紹介します。
- 6:48オートフィットとミンマックスを組み合わせると、各列を原則、ジュウロク レム以上に保ちながら、
- 6:52入る数だけカードを並べられます。
- 6:57親がそれより狭いときは、百パーセントまで縮める設計です。
- 7:01これは比較用の例なので、試したら、この回の完成コードへ戻してください。
- 7:06確認のポイントは、広い画面で、カードが三列、紹介部分が二列になっていることです。
- 7:12小さな画面では三列が狭くなりますが、その対策、モバイル向けの一列配置と切り替え条件は、
- 7:16次回のテーマです。
- 7:20練習は二つ。
- 7:21カードを一枚複製して四枚に増やし、四枚目が次の行へ回ることを確認すること。
- 7:27ギャップを十六ピクセルと三十二ピクセルで比べて、読みやすさを観察すること。
- 7:32まとめです。
- 7:33今回は、並べ方の道具としてフレックスボックスとグリッドを使い分け、余白の役割をギャップへ移し、
- 7:38文書の順序を保つ配置を作りました。
- 7:43次回は、スマートフォンとパソコンに対応する、レスポンシブな調整です。
- 7:48お疲れさまでした。
この動画で学べること
Flexboxでナビゲーション、Gridでカードを配置。gap、minmax、auto-fitを比較し、HTMLの読み順を保ったレイアウトを作ります。
解説記事・サンプルコードを読む:CSSレイアウト実践:FlexboxとGridでナビゲーションとカードを配置する →