概要
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>