column-fillとは?段組みレイアウトの列の埋め方を決めるプロパティ

column-fill-eye

column-countなどで文章などを段組みレイアウトで表示しようとする際に

段組み表示をした列の埋め方を、均等にしたり、左から埋めたりするやり方がわからない。

と考えたことはないでしょうか。

column-fillというプロパティを使うことで実現できます。

今回は、column-fillの

・基本的な使い方
・Firefoxと別のブラウザの動作の違い

について説明します。

ぜひ参考にしてみてください。

column-fillとは

column-fillの読み方

column-fillは「カラム-フィル」と読みます。カラムは行列の列、フィルは何かを満たす、詰める、埋めると言った意味の単語です。

column-fillの説明

column-fillはcolumn-countで文章や要素の段組み表示をした際の、列の埋め方を設定するCSSプロパティです

雑誌や書籍などでよく見ることができるレイアウトに「段組み」があります。1ページに表示する文章を2列や3列などで区切ってレイアウトすることで、可読性を上げるレイアウトです。

column-countというプロパティでこの段組みを設定できるのですが、この列を恥から埋めていくか、できるだけ列ごとの行数が同じになるように均等に配置するかを指定できます。

基本的には下記のように、column-countとセットで使います。

注意
後述で説明をしますが、column-fillでautoを使う場合にはheightを指定することをお勧めします。Firefoxとそれ以外のブラウザで動作に違いが発生するのを回避するために、heightを指定します。

column-fillで利用できる値

column-fillでは以下の属性を使うことができます。

説明
balance column-countで段組みした列全てに、できるだけ同じ行数になるよう均等にコンテンツを配置するように計算して埋めていきます。
auto column-countで段組みした列に、左からコンテンツを埋めていきます。

対応ブラウザ

対応ブラウザは以下の通りです。

PC用ブラウザ 対応状況
Chrome 完全対応
Edge 完全対応
Firefox 完全対応
Internet Explorer 完全対応
Opera 完全対応
Safari 完全対応
スマートフォン用ブラウザ 対応状況
Android webview 完全対応
Android版Chrome 完全対応
Android版Firefox 完全対応
Android 版 Opera 完全対応
iOS版Safari 完全対応
Samsung Internet 完全対応

column-fillの基本的な使い方

column-fill-01

column-fillを有効にするために段組みレイアウトにする

column-fillを利用するには、段組みレイアウトにする必要があります

段組みレイアウトはcolumn-countやcolumn-widthを指定すると、文章や内容の要素が段組みレイアウトになります。

下記の図のように、1列で表示していた文章を列に区切って表示するレイアウトです。

column-fill-img01

参考文献:坊ちゃん(青空文庫)

CSSで上記のような表示にするにはcolumn-countまたはcolumn-widthなどをプロパティで行います。

段組に文章などのコンテンツを均等に配置するbalance

column-fillのbalanceは、段組に文章などのコンテンツを均等に配置することができます

デフォルトであるため、column-fillを指定しない場合はこの設定になります。

下記の記述をすると、コンテンツを5列の段組みで表示し、それぞれの列はなるべく均等になるように文章や要素などを配分して表示します。

段組に文章などのコンテンツを左から埋めるauto

column-fillのautoは、段組に文章などのコンテンツを左から配置していきます。そのため、文章などの量が少なく要素を埋め尽くせない場合には、空の列ができる場合があります。

balanceと違う点は、段組の高さが決まっている必要があります。下記ではheightで固定しています。

下記の図のようにコンテンツを左から埋めていくため、足りない部分が空欄になります

column-fill-img02

参考文献:坊ちゃん(青空文庫)

Firefoxと別のブラウザの動作の違い

column-fill-02

Firefoxと別のブラウザの動作の違い

column-fillを使うと、ブラウザによって動作が異なる場合があります

column-fillをautoに指定して、且つ段組する要素の高さが決まっていない場合下記のような動作の違いがあります。

条件

  • column-fillにautoを指定
  • 高さの指定がない

動作の違い

  • Firefoxの場合、1列に全ての要素が表示される。
  • Firefox以外の場合、balanceと同様に全ての列に均等に表示される。

対処方法

Firefoxで見なければ良いのですが、Firefox以外で見てくださいというわけにもいきません。

また、高さを指定しない場合にはFirefox以外のブラウザで見た時も、想定した動作をしません。本来であれば、左からコンテンツを埋めて欲しいのでautoを指定してるのですが、balanceの動作をしてしまいます。

これを回避するには、column-fillにautoを設定する場合には、必ずheightを指定しましょう

まとめ

いかがでしたでしょうか。

column-fillは段組みの埋め方を指定するプロパティで2通りしかないので覚えやすいプロパティです。

しかし、autoを指定する場合には注意が必要なことがわかりました。Webサイトを作成する場合にはこのようなことが多々あるので、様々なブラウザで確認することをお勧めします。

この記事が参考になれば幸いです。

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?