英語610230 views
雑学1473071 views
MathPython494053 views
高校化学2917283 views
高校物理158902 views
中学英語810076 views
高校倫理1436304 views
中学社会667619 views
高校国語786644 views
小学社会309127 views

CSS の columns で複数のリストを縦の列にするときは、リストの子要素(の子要素)をインラインにしてはいけない

結論はタイトルのとおり。

ul
	columns: 2
	column-gap: 24px

などとしたら、その子要素 li は

A E
B F
C G
D H

のように 2 カラムになる。もし li の子要素が a タグで D の高さが他よりも高いと、D にある a タグの文章の一部が次のカラムに移ってしまう。下図はリスト全体(ul)が columns に指定されて、リスト要素の中に a が入っている例。

columns_1

よく見ると、左カラムの最後の文章が途中で切れて右カラムの上に続いている。これを修正するには a タグを inline-block にする。

ul
	columns: 2
	column-gap: 24px

	li
		a
			display: inline-block

こうすると

columns_2

のようになる。これで文章がリスト要素の中に入った。