CSSでマルチカラムを作るもっとも簡単な方法は、columns
プロパティを使うことである。例えば3列のカラムを作りたいならcolumns:3;
とすればよい。
columnsプロパティとは
colmuns
プロパティは、column-count
とcolumn-width
のショートハンドだ。それぞれカラムの数と幅を指定する。
以下はcolumns
プロパティを使った場合。こちらは’s’がつくので注意したい。
単位のあるなしで区別されるため、columns
に指定するプロパティの順番はどちらが先でも良い。また、幅の単位は、CSSの長さを表現する単位であればどれでも良い。
colmun-count
もcolumn-width
も、auto
の値を指定できる。この値を指定すると、もう一方の値に基づいて自動で適切な値が使われる。両方ともauto
を指定すると、見かけ上は何も起きない。カラムが解除……ように見えるが、何か知らない条件があるのかもしれない。
子要素もカラムに分けられる
columns
プロパティを使うと、一見複雑に見えるマルチカラムも簡単に実現できる。例えば画像を敷き詰めたようなレイアウトなどに重宝する。
マルチカラムに関連するその他のプロパティ
columns
と併せて、マルチカラムを作成する際に使えるプロパティがある。
余白に関連するもの
プロパティ名 | 値 |
---|---|
column-gap | 任意の長さ。カラムとカラムの幅。デフォルト値は1em。 |
column-fill | auto;/* 端から埋める。 */ balance;/* コンテンツの高さをできるだけ均等に配置。デフォルト値 */ balance-all; |
線に関連するもの。
プロパティ名 | 値 |
---|---|
column-rule-color | 任意の色; |
column-rule-style | none; /* デフォルト値。 */ hidden; dotted; dashed; solid; double; groove;/* めり込む線 */ ridge;/* 出っぱる線 */ inset;/* 要素ごとめり込む(ように見える線) */ outset;/* 要素ごと出っぱる(ように見える線) */ |
column-rule-width | thin; /*1px*/ medium;/* 3px。デフォルト値*/ thick;/* 5px */ 任意の長さ; |
column-rule | 上記3つのショートハンド。 |
子要素に指定するもの。
プロパティ名 | 値 |
---|---|
column-span | none; /* デフォルト値 */ all; /* カラムを無視して横いっぱいに広がる */ |
column-gapが効かない?
カラム間の余白は、column-gap
というプロパティで指定する。ただ、column-count
の挙動を理解してないと、column-gap
が効かないように見えることがある。
column-count
は、その要素を指定した要素の幅に収めたいカラム数を指定する。これは、親要素に収めたいカラム数であって、折り返されるカラム数ではない。
例えば幅100、高さ100の親要素の中に、幅50、高さ100の子要素が3つあるとする。この場合にcolumn-count:2;
を指定すると、3つのカラムが作られ、最初の1つが親要素に収まる。2つ目はcolumn-gap
プロパティのデフォルト分(1em分)、親要素からはみ出る。残ったカラムは完全にはみ出る。
column
系のプロパティは努力目標(できる範囲でがんばりま〜す)であって、指定した通りにムリクリ収めてくれるものではない。要注意だニャー。