カードを右下に配置するFlexboxの使い方
Flexboxを使って、親要素(Flexコンテナー)の右下に複数のカードを配置する方法を紹介します。このサンプルでは、横幅と高さを持つ親要素の中に5枚のカードを横一列で並べ、まとまり全体を右下へ配置します。親要素の範囲を枠線で表示しているため、カードが右側にまとまりながら、下側に配置されている状態を確認できます。
今回はflex-direction:row;の状態を前提として、justify-content:flex-end;とalign-items:flex-end;を組み合わせます。justify-content:flex-end;で5枚のカードを主軸の終端側となる右側へ配置し、align-items:flex-end;で交差軸の終端側となる下側へ配置することで、カード全体を親要素の右下に配置できます。
右下への配置は、横並びのメニューやカード一覧、操作項目など、複数の要素を右側へまとめながら親要素の下側に表示したいレイアウトで利用できます。HTMLではカードの内容や枚数を編集でき、CSSでは親要素やカードのサイズ、枠線などを調整できます。右側への配置と下側への配置を組み合わせる基本的なFlexboxの使い方として、さまざまなレイアウトへ応用できます。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
親要素(Flexコンテナー)
justify-content:flex-end;とalign-items:flex-end;で右下へ配置する方法
今回のflex-direction:row;の条件では、justify-content:flex-end;で5枚のカードを主軸の終端側となる右側へ配置し、align-items:flex-end;で交差軸の終端側となる下側へ配置します。2つを組み合わせることで、5枚のカードが親要素の右下に配置されます。
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コードをUTF-8に設定 -->
<meta charset="UTF-8">
<!-- スマートフォンなどで画面幅に合わせて表示 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>カードを右下に配置するFlexbox</title>
<!-- 外部CSSファイルを読み込む -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="flexbox-right-bottom_page">
<!-- justify-content:flex-end;とalign-items:flex-end;で右下へ配置 -->
<div class="flexbox-right-bottom_method">
<!-- この方法で使用するFlexboxの指定 -->
<div class="flexbox-right-bottom_method-title">
<code>display:flex;<br>justify-content:flex-end;<br>align-items:flex-end;</code>
</div>
<!-- 5つの子要素を配置する親要素(Flexコンテナー) -->
<div class="flexbox-right-bottom_container">
<!-- 親要素の中へ横一列で並べる5つの子要素(Flexアイテム) -->
<div class="flexbox-right-bottom_card">1</div>
<div class="flexbox-right-bottom_card">2</div>
<div class="flexbox-right-bottom_card">3</div>
<div class="flexbox-right-bottom_card">4</div>
<div class="flexbox-right-bottom_card">5</div>
</div>
</div>
</div>
</body>
</html>
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
Q ダウンロードしたけど、これをネット上で動かすにはどうするの?
Googleアカウントがあれば、InfinityFreeで無料サーバーを作成して、ダウンロードしたサンプルをネット上で動かせます。
InfinityFreeを初めて利用する場合は①から、すでにサーバーを作成している場合は②へ進んでください。
ファイル構成と設置方法
このサンプルはHTMLとCSSの2ファイルで構成されています。HTMLでは親要素(Flexコンテナー)の中に5つの子要素(Flexアイテム)を配置し、CSSではFlexboxを使って5枚のカードを横一列のまま右下へ配置します。JavaScriptや外部ライブラリは使用せず、Flexboxの主軸と交差軸を組み合わせた右下配置を確認できる構成です。
sample/
├── index.html
└── style.css
各ファイルの役割
index.htmlは、親要素と5枚のカードを構成するファイルです。親要素の中に「1」から「5」までのカードを配置し、5枚を1つのまとまりとして右下へ表示します。
style.cssは、親要素とカードのサイズや枠線、Flexboxによる配置を設定するファイルです。display:flex;に加えて、justify-content:flex-end;とalign-items:flex-end;を指定することで、5枚のカードを親要素の右下へ配置します。
設置方法・使い方
sampleフォルダへindex.htmlとstyle.cssを配置し、2つのファイルを同じ階層へ保存します。そのあとsample/index.htmlをブラウザで開いてください。5枚のカードが横一列のまとまりとなり、親要素の右下に配置されます。
カスタマイズできる内容
index.htmlでは、カード内の「1」から「5」までの表示内容を変更できます。style.cssでは親要素やカードの横幅・高さ・枠線などを変更できます。また、今回のflex-direction:row;の状態では、justify-content:flex-end;によって5枚のカードを主軸の終端側となる右側へ配置し、align-items:flex-end;によって交差軸の終端側となる下側へ配置しています。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssでは親要素にwidth:100%;とmax-width:900px;を指定し、画面幅に合わせて横幅が縮小する構成にしています。カードにはflex-shrink:1;を指定しているため、表示できる横幅が狭くなった場合も5枚のカードを横一列に維持しながら縮小します。スマートフォン・タブレット・PCで右下の配置を確認できます。
コメント