カラムの高さを揃えるかどうかを指定する

CSS - column-fill

概要

CSSプロパティ「column-fill」は、columns プロパティなどで指定された要素のカラム同士の高さを揃えるかどうかを指定する際に使用します。このプロパティが有効になるのは height プロパティなので要素の高さが決まっている場合になります。

<p class="columns column-fill">明日の天気予報です。明日は全国的に晴れるでしょう。ですが、夕方以降急な雨に注意してください。次に海外の天気予報です。・・・・・・・・・・・・・・・</p>
<style>
p {
  font-size: 12px;
  border: 1px solid #000;
  background-color: #def;
  height: 80px;
}
.columns {
  column-width: 100px;
  column-count: 2;
  column-rule: 1px solid #000;
}
.column-fill {
  column-fill: balance;
}
</style>

値の指定方法

{column-fill: 表示方法}
説明
auto列が順に埋められていきます
balance可能な限り、列間でコンテンツの内容が等しくなるように調整されます

高さを固定して、それぞれの値がどうのように表示されるか確認してみます。

<p class="columns column-fill-auto">明日の天気予報です。明日は全国的に晴れるでしょう。ですが、夕方以降急な雨に注意してください。続いて、今月のイベント情報です。今月は東京の目黒川がライトアップされます。</p>

<p class="columns column-fill-balance">明日の天気予報です。明日は全国的に晴れるでしょう。ですが、夕方以降急な雨に注意してください。続いて、今月のイベント情報です。今月は東京の目黒川がライトアップされます。</p>
<style>
p {
  font-size: 12px;
  border: 1px solid #000;
  background-color: #def;
  height: 80px;
}
.columns {
  column-width: 100px;
  column-count: 2;
  column-rule: 1px solid #000;
}
.column-fill-auto {
  column-fill: auto;
}
.column-fill-balance {
  column-fill: balance;
}
</style>

プロパティの種類について

ショートハンドプロパティや、個別指定できるプロパティなど、columnプロパティをまとめた概要一覧です。詳細はそれぞれのページを参照してみてください。

プロパティ名説明
columns「column-count」と「column-width」を指定できるショートハンドプロパティ
column-countカラム数を指定する
column-widthカラムの幅と指定する
column-rule「column-rule-color」と「column-rule-style」と「column-rule-width」をまとめて指定するショートハンドプロパティ
column-rule-colorカラム間の区切り線の色を指定する
column-rule-styleカラム間の区切り線のスタイルを指定する
column-rule-widthカラム間の区切り線の幅を指定する
column-gapカラム同士の間隔を指定する
column-fillカラム同士の高さをそろえるかどうかを指定する
column-span複数のカラムにまたがる要素に指定する

使用例

このプロパティを使うことで、マルチカラムレイアウトを実装することができます。今までは、一つ一つ組み上げていたものが簡単にできるようになります。

<div class="header">ヘッダー</div>
<div class="multicolumnbox">
 <div>左カラムです。左カラムに入れたいテキストなどはこの要素内に入れていきます。</div>
 <div>真ん中のカラムです。真ん中カラムに入れたいテキストなどはこの要素内に入れていきます。</div>
 <div>右カラムです。右カラムに入れたいテキストなどはこの要素内に入れていきます。</div>
</div>
<div class="footer">フッター</div>
<style>
.header,
.footer {
  margin: 0px 10px;
  border: 1px solid #000;
}
.multicolumnbox div {
  border: 1px solid #000;
  background-color: #def;
}
.multicolumnbox {
  padding: 10px;
  columns: 3 100px;
  column-fill: auto;
}
</style>

仕様書

関連CSSプロパティ