CSS - 複数カラムレイアウト
こんにちは、Web開発者の卵さんたち!今日は、CSSの複数カラムレイアウトのワクワクする世界に飛び込みます。あなたの近所の親切なコンピュータの先生として、私は多くの例と説明を交えてこの旅を案内します。それでは、始めましょう!
複数カラムレイアウトの紹介
新聞を読んでいると、テキストが整然とカラムに組まれていることに気づきますよね?それはまさに、私たちがWebページ上でCSSを使って達成しようとしているものです!複数カラムレイアウトを使うことで、視覚的に魅力的で読みやすいコンテンツ構造を作成できます。
CSS 複数カラムレイアウト - 3カラムレイアウト
まずは基本的な3カラムレイアウトから始めましょう。これは雑誌スタイルのコンテンツを作成するのに最適で、ウェブページ上の情報を整理するのにも役立ちます。
<div class="three-column">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
.three-column {
column-count: 3;
column-gap: 40px;
}
この例では、column-count
プロパティを使って3カラムを指定しています。column-gap
プロパティは各カラム間のスペースを設定します。
CSS 複数カラムレイアウト - column-widthの設定
時々、カラムの数を指定する代わりに、各カラムの特定の幅を設定したい場合があります。その方法を見てみましょう:
<div class="flexible-columns">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
.flexible-columns {
column-width: 200px;
}
ここでは、column-width
を使って各カラムの幅を200ピクセルに設定しています。ブラウザはこの幅を保ちながら、可能な限り多くのカラムを作成します。
CSS 複数カラムレイアウト - カラムのスタイル
今度はカラムに少しスタイルを加えましょう。境界線を追加したり、背景色を変更したり、さらに他のこともできます!
<div class="styled-columns">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
.styled-columns {
column-count: 3;
column-gap: 40px;
column-rule: 4px dotted #ff00ff;
column-rule-style: dotted;
column-rule-width: 4px;
column-rule-color: #ff00ff;
}
この例では、column-rule
を shorthand プロパティとして使ってカラム間に点線を追加しています。これらのプロパティは個別に column-rule-style
、column-rule-width
、および column-rule-color
を使って設定することもできます。
CSS 複数カラムレイアウト - カラム跨ぎ
時々、コンテンツの一部を複数のカラムに跨げたい場合があります。それをどうやるか見てみましょう:
<div class="spanning-columns">
<h2>この見出しはすべてのカラムに跨ります</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<p class="span-two">このパラグラフは2カラムに跨ります。Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
</div>
.spanning-columns {
column-count: 3;
column-gap: 40px;
}
.spanning-columns h2 {
column-span: all;
text-align: center;
}
.span-two {
column-span: 2;
background-color: #f0f0f0;
padding: 10px;
}
ここでは、column-span: all
を使って見出しがすべてのカラムに跨るようにし、column-span: 2
を使ってパラグラフが2カラムに跨るようにしています。
CSS 複数カラムレイアウト - フラグメント化
フラグメント化は、コンテンツがカラム間でどのように分割されるかを指します。それをどのように制御できるか見てみましょう:
<div class="fragmented-columns">
<h3>第1章</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<h3>第2章</h3>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
.fragmented-columns {
column-count: 2;
column-gap: 40px;
}
.fragmented-columns h3 {
break-after: column;
}
この例では、break-after: column
を使って各章の見出しが新しいカラムの顶部から始まるようにしています。
関連プロパティ
これまで学んだすべてのプロパティを便利な表にまとめます:
プロパティ | 説明 |
---|---|
column-count | カラムの数を指定 |
column-width | 各カラムの幅を設定 |
column-gap | カラム間のスペースを定義 |
column-rule | カラム間の線を設定する shorthand プロパティ |
column-rule-style | カラムルールのスタイルを設定 |
column-rule-width | カラムルールの幅を設定 |
column-rule-color | カラムルールの色を設定 |
column-span | 要素がカラムに跨るかどうかを指定 |
break-after | 要素の後ろでのカラム分割を制御 |
そして、それで終わりです、皆さん!私たちはCSSの複数カラムレイアウトの世界を旅しました。練習が成功の鍵ですので、これらのプロパティを試してみてください。誰 knows? 次の大きな雑誌スタイルのウェブサイトを作成するかもしれません!
私の古い教授がよく言っていたように、「CSSは料理みたいなものです。最初はごちゃつくかもしれませんが、練習を積むことで、すぐに名作を創作できるようになります!」 codingを続け、学び続け、そして最も重要なのは、楽しむことです!
Credits: Image by storyset