質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

2632閲覧

column-countで指定した段数よりも少なく表示される原因

urara

総合スコア29

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/02/12 09:35

編集2019/02/12 09:41

column-countをつかい段組みレイアウトにしたいのですが、
指定した段数よりも少なく表示されるときがあります。

理由をご存知の方がいましたら、ぜひご教示いただきたいです。

実現したいこと

HTML, CSSを用いて4列のレイアウトを作りたいです。
column-countをつかいましたが、liの数によっては3列になってしまいます。

イメージ説明

css

1ul { 2 column-count: 4; 3} 4 5li a { 6 width: 254px; 7}

width: 254px;は、試しに少なめに入れた数字です。
ulの幅は1040pxなので260pxでも収まる想定となっています。
ulにfont-size:0を指定して隙間を無くすなども試しました。

4列入るスペースはあり、カラム落ちなどではないかと思います…。

検索をかけましたが、「段数が少なくなることもある」と記載されている書籍がありましたが、理由が載っておらず解決方法がはっきりしません。

ただし、実際の段数は、レイアウトに応じて指定した段数より少なくなることもあります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2019/02/12 09:48

再現できるHTML/CSSを質問文に追記いただけませんか?
yoshinavi

2019/02/12 22:37 編集

flexとは性質が「違う」事を理解して、適材適所で使用するしかないですね。
guest

回答2

0

これは、左上から順に、縦に要素が入るからですね。
column-countが4でliが9個の場合、段の高さがli2つ分では足りないので、li3つ分になります。
その状態で左上から順に縦にliを入れていくと、結果的に一番右のカラムが使われなくなるというわけです。

まあ、3個-2個-2個-2個と入ってほしい感じもしますが、

要素1 | 要素4 | 要素6 | 要素8
要素2 | 要素5 | 要素7 | 要素9
要素3 |

というのもそれはそれでおかしいですよね。

投稿2019/02/12 12:21

編集2019/02/12 12:29
7Kreuz

総合スコア112

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshinavi

2019/02/12 22:43

「横並べ」と勘違いしている人も多そうですよね。最初は私も「flex要らないじゃん!」と勘違いした1人です。 (^^;)
guest

0

ベストアンサー

column-countに指定した数は最大値の扱いで、その範囲で各段のコンテンツの高さがほぼ同じになるようにブラウザーは自動的に段の高さの最大値を設定するようです。
結果、9項目のリストのような場合3x3になることもあります。
もしコンテンツが少なくても4段で表示させたい場合はheightやmax-heightを指定すれば後の方のコンテンツを右へ流すことができるはずですのでお試しください。

投稿2019/02/12 12:27

編集2019/02/12 12:41
cerfweb

総合スコア1907

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

7Kreuz

2019/02/12 12:32

height指定で右へ流すのはムリだと思いますよ 「li要素3つ分の高さ」はどうしても確保する必要がありますが、そうしたら3×3になりますので
cerfweb

2019/02/12 12:45

min-ではなくmax-heightでした。訂正しました。 確かに、9つの場合は2x4+1となってしまうので、そうすると最後の1つがはみ出てしまいますね。 はみ出た分は隠していいのならoverflow:hidden;で8つだけ表示というのはできますが。
yoshinavi

2019/02/14 02:49

「テキストのみ」であれば、高さの調整で4段は可能でしょうが、ブロック要素は、1つを分割して、他のブロック要素に…って訳には行かないので、その違いでしょうね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問