INDEX
目次
HTML/CSS入門編 11章 カラムレイアウトの基本を学ぼう
本章では、Webサイトのレイアウトの基本であるカラムレイアウトの作成方法について解説します。
【11-1】カラムレイアウトとは
- Webサイトのカラムレイアウト(Column Layout)とは、ページ内のコンテンツを縦の列に分割してレイアウトする手法のことです。
- 英語で「カラム(Column)」は「列」という意味です。
-
日本語でカラムレイアウトのことを段組(だんぐみ)と言いますが、主に雑誌や新聞などの紙面のレイアウトに使う言葉です。
- Webサイト制作においては、「カラム」「カラムレイアウト」と呼ぶことが一般的です。
カラムレイアウトの種類を知ろう
主なカラムレイアウトの種類には次のようなものがあります。
■ シングルカラムレイアウト
ページ全体が1つの縦長のブロックで構成されているシンプルなレイアウト。
スマートフォン用のレイアウトとしてよく使われるが、PC版のレイアウトにも近年よく使われている。
スマートフォン用のレイアウトとしてよく使われるが、PC版のレイアウトにも近年よく使われている。
■ 2カラムレイアウト
メインカラム(メインコンテンツ)+サブカラム(サイドバー)の構成で縦2列に分割されたレイアウト。
多くの企業サイトやブログなどで採用される一般的な形式のレイアウト。
多くの企業サイトやブログなどで採用される一般的な形式のレイアウト。
■ 3カラムレイアウト
左サイドバー+メインコンテンツ+右サイドバーの構成で縦3列に分割されたレイアウト。
情報量が多いニュースサイトやECサイトなどで使われることが多い。
情報量が多いニュースサイトやECサイトなどで使われることが多い。
■ グリッドレイアウト
縦にも横にも分かれたグリッド構造のレイアウト。厳密にはカラムレイアウトとは異なる形式。
3カラムレイアウトと同様に、情報量が多いニュースサイトやECサイトなどで使われることが多い。
※グリッドレイアウトの作成方法は次章で解説します。
3カラムレイアウトと同様に、情報量が多いニュースサイトやECサイトなどで使われることが多い。
※グリッドレイアウトの作成方法は次章で解説します。
固定レイアウトと可変レイアウトを知ろう
Webサイトのレイアウトをどのようにするかを検討する際、基本的には情報量に応じて適切なカラム数を決めれば良いのですが、各カラムの幅をpx指定で固定するか、%指定などで可変させるかという判断もまた重要です。
固定レイアウト
- 固定レイアウトとは、コンテンツの横幅をpx指定で固定したレイアウトのことです。
-
PC向けのレイアウト手法として現在も採用しているサイトは多いですが、現代的なレイアウト設計の方法としては短所もあります。
- その時代の最も標準的なディスプレイサイズに最適化したサイズで作成するため、年々、PC画面の解像度が大型化する傾向の強い現代においては、数年でコンテンツの横幅が狭く感じられ、前近代的な印象を与えてしまうおそれがあります。
- Webサイトがさまざまなサイズのデバイスで閲覧されることを前提とすれば、固定レイアウトのWebサイトは、コンテンツ幅が狭すぎたり、広すぎたりするリスクを避けられないでしょう。
【図解】固定レイアウト
固定レイアウトはブラウザ幅を横に広げてもコンテンツの横幅は変わらない。
参考:固定レイアウトを採用しているWebサイト
https://www.yahoo.co.jp (2025年3月時点)
可変レイアウト
- 可変レイアウトとは、ブラウザのウィンドウ幅が変わると、それに合わせてコンテンツ幅が伸縮するように設計されたレイアウトのことです。
-
現代のWebサイトは、デスクトップPC、ノートPC、タブレットやスマートフォンなど、さまざまな画面サイズのデバイスで閲覧されます。
- 画面サイズに応じてコンテンツ幅が伸縮する可変レイアウトは、Webサイトの閲覧環境の多様化が進んだ現在では、主流のレイアウト手法です。
- どんなデバイスで閲覧しても、コンテンツ幅を適切なサイズに設定することが可能です。
- 関連する技術に、異なるデバイスで適切なレイアウトを実現するレスポンシブデザインという手法があります。(14章で解説)
【図解】可変レイアウト
可変レイアウトはブラウザ幅を横に広げると、コンテンツ幅も広がる。
参考:可変レイアウトを採用しているWebサイト
https://www.webcoach.jp (2025年3月時点)
それでは、まずはシンプルなシングルカラムレイアウトから作成していきましょう。
【11-2】シングルカラムレイアウトを作成しよう
- シングルカラムレイアウトは、メッセージ性・ビジュアル重視で、情報を順序立てて縦にスクロール誘導しながら見せたいときに、よく採用されるレイアウトパターンです。
- 一般的には、ブランドサイトやランディングページなどに使われることが多いです。
- スマートフォン向けのレイアウトとしても向いています。
ここからの演習では、「single-column-lesson」フォルダ内のファイルを使用します。
演習の準備
1. 「start」フォルダ内のindex.htmlと「css」フォルダ内のstyle.cssをエディターで開きます。
2. ブラウザプレビューします。
2. ブラウザプレビューします。
- index.htmlには必要最低限のHTMLタグが入力されています。
- reset.cssとstyle.cssが関連付けられています。
■ index.html
div要素をシングルカラムとしてスタイリングします。
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>シングルカラムレイアウト</title> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="content-wrapper"> <h1>シングルカラムレイアウト</h1> </div> </body> </html>
HTML/CSS入門編 サンプルコード11-1
■ style.css
カラムの視認性を確保するため、div要素にはあらかじめ以下のスタイル指定がされています。
高さ
|
100vh(ブラウザの高さいっぱい)
※通常のWebページ制作では、ボックスの内容物(テキストや画像)によって高さは自然に伸びるので、このような指定はしません。 |
---|---|
ダミー背景色
|
#bef9ff(水色)
|
.content-wrapper { height: 100vh; background-color: #bef9ff; }
HTML/CSS入門編 サンプルコード11-2
■ 演習ファイルのブラウザプレビュー
完成イメージを確認しよう
今回は、PC画面用のシングルカラムレイアウトとして、以下の仕様で作成します。
■ シングルカラム仕様
幅
|
ブラウザ幅の90%で可変
|
---|---|
最大幅
|
1440px
|
マージン
|
中央配置 上下の余白:0
|
■ 完成イメージ
CSSでシングルカラムレイアウトの指定をしよう
- div要素をシングルカラムとしてスタイリングします。
- divタグには、content-wrapperというclass名がついています。
- このclass名を使い、classセレクタでCSSを記述します。
■ style.css
.content-wrapper { width: 90%; max-width: 1440px; margin: 0 auto; height: 100vh; background-color: #bef9ff; }
HTML/CSS入門編 サンプルコード11-3
【画面収録】シングルカラムレイアウト完成
■ ブラウザプレビュー(完成)
【11-3】2カラムレイアウトを作成しよう
-
2カラムレイアウトは、主に以下のような構成のWebサイトで使われます。
1. ヘッダー(ロゴやグローバルナビゲーションなど)とメインコンテンツを横並びに配置する構成
2. メインコンテンツとサイドバー(カテゴリメニュー、関連記事、ランキング、バナーなどの補助的なコンテンツ)を横並びに配置する構成 - コーポレートサイトやECサイト、ブログ、ニュースサイトなど、さまざまなジャンルのWebサイトで採用されているレイアウトパターンです。
ここからの演習では、「2-column-lesson」フォルダ内のファイルを使用します。
演習の準備
1. 「start」フォルダ内のindex.htmlと「css」フォルダ内のstyle.cssをエディターで開きます。
2. ブラウザプレビューします。
2. ブラウザプレビューします。
- index.htmlには必要最低限のHTMLタグが入力されています。
- reset.cssとstyle.cssが関連付けられています。
■ index.html
- header要素とmain要素を横並びにするカラムとしてマークアップします。
- 親要素であるdiv要素は、Flexコンテナとして利用します。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>2カラムレイアウト</title> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="content-wrapper"> <header class="site-header"> <h2>ヘッダー</h2> </header> <main class="main-contents"> <h2>メインカラム</h2> </main> </div> </body> </html>
HTML/CSS入門編 サンプルコード11-4
■ style.css
- カラムの視認性を確保するため、各要素にはあらかじめ以下の指定がされています。
■ div要素(class名:content-wrapper)
高さ
|
100vh(ブラウザの高さいっぱい)
※通常のWebページ制作では、ボックスの内容物(テキストや画像)によって高さは自然に伸びるので、このような指定はしません。 |
---|---|
ダミー背景色
|
#e9e9e9(グレー)
|
header要素(class名:site-header)
ダミー背景色
|
#f9ffc7(薄黄)
|
---|
main要素(class名:main-contents)
ダミー背景色
|
#c8fbff(水色)
|
---|
.content-wrapper { height: 100vh; background-color: #e9e9e9; /*グレー*/ } .site-header { background-color: #f9ffc7; /*薄黄*/ } .main-contents { background-color: #c8fbff; /*水色*/ }
HTML/CSS入門編 サンプルコード11-5
■ 演習ファイルのブラウザプレビュー
■ HTMLの情報構造
完成イメージを確認しよう
- 今回は、PC画面用の2カラムレイアウトとして、以下の仕様で作成します。
- これは、メニューなどを固定幅(px)に、コンテンツ部分は可変幅(%)にする一般的な2カラムのレイアウトパターンです。
■ 2カラム仕様
コンテンツ幅
|
フルスクリーン型(上下左右に余白なし)
|
---|---|
ヘッダー
|
左カラム 300pxで固定
|
メインコンテンツ
|
右カラム ブラウザ幅に応じて、残りのスペースいっぱいで可変
|
■ 完成イメージ
CSSで2カラムレイアウトの指定をしよう
- header要素とmain要素を横並びに配置し左カラムと右カラムを作成します。
親要素であるdiv要素(class名:content-wrapper)のFlexboxを有効にし、Flexコンテナとして扱います。 - ここでのポイントは右カラム(メインコンテンツ)のサイズ指定の方法です。
- 左カラム(ヘッダー)は固定幅(300px)ですので、header要素(class名:site-header)にwidth: 300px;を指定すればOKです。
- 問題は右カラム(メインコンテンツ)の幅指定です。
- メインコンテンツは、ヘッダー領域以外の全領域を占めるという可変幅の仕様です。
- この仕様でメインコンテンツの幅を指定する方法として、コンテンツ全体の幅(100%)からヘッダー幅(300px)を引くという計算処理を行う方法があります。
- 幅・高さ、余白などの数値を動的に計算処理するコードとして、CSSにはcalc関数が用意されています。
■ style.css
.content-wrapper { height: 100vh; display: flex; background-color: #e9e9e9; } .site-header { width: 300px; background-color: #f9ffc7; } .main-contents { width: calc(100% - 300px); background-color: #c8fbff; }
HTML/CSS入門編 サンプルコード11-7
【画面収録】2カラムレイアウト完成
■ ブラウザプレビュー(完成)
.content-wrapper { display: flex; /* ... */ } .site-header { width: 300px; /* ... */ } .main-contents { flex-grow: 1; /* または flex: 1; と記述 */ /* ... */ }
HTML/CSS入門編 サンプルコード11-7の代替コード
【11-4】3カラムレイアウトを作成しよう
-
3カラムレイアウトは、主に以下のような構成のWebサイトで使われます。
- メインコンテンツを中央に配置し、左右にサイドバー(ナビゲーションや補助的なコンテンツ)を設置する構成
- ポータルサイトやニュースサイト、ECサイトなど、情報量の多いWebサイトでよく採用されています。
- サイドバーが2つあるため、多くの情報を1画面内で整理して見せたい場合に適しています。
ここからの演習では、「3-column-lesson」フォルダ内のファイルを使用します。
演習の準備
1. 「start」フォルダ内のindex.htmlと「css」フォルダ内のstyle.cssをエディターで開きます。
2. ブラウザプレビューします。
2. ブラウザプレビューします。
- index.htmlには必要最低限のHTMLタグが入力されています。
- reset.cssとstyle.cssが関連付けられています。
index.html
-
main要素と2つのaside要素を横並びにするカラムとしてマークアップします。
- 今回、サイドバーは両方ともasideタグでマークアップしています。
- aside要素は「補助的なコンテンツ(メインのコンテンツを補足する情報)」を表すHTML5のセマンティック要素です。
※セマンティック要素については、「HTML/CSS入門編 10章 Flexboxを学ぼう」を参照してください。
- 親要素であるdiv要素は、Flexコンテナとして利用します。
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>3カラムレイアウト</title> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="content-wrapper"> <main class="main-contents"> <h2>メインコンテンツ</h2> </main> <aside class="sidebar-left"> <h2>左サイドバー</h2> </aside> <aside class="sidebar-right"> <h2>右サイドバー</h2> </aside> </div> </body> </html>
HTML/CSS入門編 サンプルコード11-8
カラムの視認性を確保するため、各要素にはあらかじめ以下の指定がされています。
■ div要素(class名:content-wrapper)
高さ
|
100vh(ブラウザの高さいっぱい)
※通常のWebページ制作では、ボックスの内容物(テキストや画像)によって高さは自然に伸びるので、このような指定はしません。 |
---|---|
ダミー背景色
|
#e9e9e9(グレー)
|
■ main要素(class名:main-contents)
ダミー背景色
|
#c8fbff(水色)
|
---|
■ aside要素(class名:sidebar-left)
ダミー背景色
|
#f9ffc7(薄黄)
|
---|
■ aside要素(class名:sidebar-right)
ダミー背景色
|
#ceffc7(薄緑)
|
---|
.content-wrapper { height: 100vh; background-color: #e9e9e9; } .main-contents { background-color: #c8fbff; } .sidebar-left { background-color: #f9ffc7; } .sidebar-right { background-color: #ceffc7; }
HTML/CSS入門編 サンプルコード11-9
■ 演習ファイルのブラウザプレビュー
■ HTMLの情報構造
完成イメージを確認しよう
- 今回は、PC画面用の3カラムレイアウトとして、以下の仕様で作成します。
- これは、左右のサイドバーの幅をpx指定で固定、メインコンテンツを%指定などで可変にする一般的な3カラムのレイアウトパターンです。
■ 3カラム仕様
コンテンツ幅
|
フルスクリーン型(上下左右に余白なし)
|
---|---|
メインコンテンツ
|
中央カラム ブラウザ幅に応じて、残りのスペースいっぱいで可変
|
左サイドバー
|
左カラム 幅220pxで固定
|
右サイドバー
|
右カラム 幅220pxで固定
|
■ 完成イメージ
CSSで3カラムレイアウトの指定をしよう
- main要素と2つのaside要素を横並びにして中央カラム、左カラムと右カラムを作成しますので、親要素であるdiv要素(class名:content-wrapper)にdisplay:flex;を指定し、Flexboxを有効にします。
- メインカラムのサイズ指定の方法:calc()を使う
- カラムの表示順の指定方法:orderプロパティを使う
-
ここでのポイントは次の2つです。
■ 1. メインカラムのサイズ指定の方法
- 左カラムと右カラムは固定幅(220px)ですので、aside要素(class名:sidebar-leftとsidebar-right)にwidth:220px;を指定すればOKです。
-
中央カラム(メインコンテンツ)の幅指定には、前節の2カラムレイアウトでも使用したcalc関数を使い指定します。
- メインコンテンツは、サイドバー領域以外の全領域を占めるという可変幅の仕様です。
- この仕様でメインコンテンツの幅(width)を指定するために、コンテンツ全体の幅(100%)からサイドバー幅(合計440px)を引くという計算処理を次のようにcalc関数で行います。
width: calc(100% - 440px);
HTML/CSS入門編 サンプルコード11-10また、次のように、2つのサイドバーの合計幅の計算も式に含めることが可能です。width: calc(100% - (220px + 220px));
HTML/CSS入門編 サンプルコード11-11
■ 2. カラムの表示順の指定方法
- 3カラムを構成する要素は、main要素(中央カラム)→aside要素(左カラム)→aside要素(右カラム)の順番で上からマークアップされています。
- 親要素であるdiv要素(class名:content-wrapper)をFlexコンテナ化すると、子要素であるFlexアイテムはこの順番で横に並ぶため、main要素が一番左端に表示されます。
- main要素を中央に表示させるためには、各Flexアイテム(子要素)にorderプロパティで表示順を指定する必要があります。
■ style.css
.content-wrapper { height: 100vh; display: flex; background-color: #e9e9e9; } .main-contents { width: calc(100% - 440px); order: 2; background-color: #c8fbff; } .sidebar-left { width: 220px; order: 1; background-color: #f9ffc7; } .sidebar-right { width: 220px; order: 3; background-color: #ceffc7; }
HTML/CSS入門編 サンプルコード11-12
【画面収録】カラムを横並びにする
【画面収録】カラムの表示順を指定する(3カラムレイアウト完成)
■ ブラウザプレビュー
これで「HTML/CSS入門編 11章 カラムレイアウトの基本を学ぼう」の解説を終わります。
次の章に進みましょう。
次の章に進みましょう。