目次
列に固定された高さを指定すると、ビューポートを縮小すると、水平スクロールバーが表示されます。コンテンツを垂直に拡張できないため、水平に成長します。この問題を解決するために、ブラウザのサイズを変更して、水平面のスクロールバーが初めてどの程度幅が表示されるかを確認できます。その後、メディアクエリを使用して、その幅の下の列の高さを
残念ながら、CSSマルチコラムレイアウトモジュールは、異なる幅の列をサポートしていません。
に設定して、要素内の割り込みを防ぐことができます。たとえば、
CSSに列を入力する方法は?
に設定すると、ブラウザは列を均等に入力しようとします。
に設定できます。たとえば、
ホームページ ウェブフロントエンド CSSチュートリアル 初心者向けのCSSマルチカラムレイアウトチュートリアル

初心者向けのCSSマルチカラムレイアウトチュートリアル

Feb 22, 2025 am 10:44 AM

A CSS Multi-column Layout Tutorial for Beginners

CSSの概要マルチカラムレイアウトチュートリアル:キーポイント

  • CSSマルチコラムレイアウトモジュールにより、開発者はレスポンシブマルチコラムレイアウトを作成でき、さまざまな画面サイズで良い結果を生み出すことができます。 column-count属性は列の数を指定し、column-width属性は各列の幅を指定します。どちらもautoまたは正の数値に設定でき、略語columns属性を使用して同時に設定できます。
  • column-gap属性は列の間隔を指定し、column-rule属性は略式されているため、列間に仕切りを追加できます。 column-fill属性は、コンテンツが列を埋めるように割り当てられる方法を決定し、column-span属性は要素が複数の列に及ぶ方法を制御します。
  • レイアウトがすべての画面サイズに適切に表示されるためには、column-countcolumn-widthの両方を指定する必要があります。メディアクエリを使用すると、水平スクロールや過度の列の長さなどの問題を解決することができます。マルチコラム機能をサポートしていないレガシーブラウザは、単一列のレイアウトにエレガントに格下げされます。

長いテキスト行は読むのがより面倒である可能性があり、読者はテキストコンテンツ自体ではなく、非混乱線にもっと注意を払っています。この問題は、マルチコラムレイアウトを使用して簡単に解決できます。マルチカラムレイアウトは、印刷メディアで非常に一般的です。 CSSマルチコラムレイアウトモジュールの機能により、Webサイトで同じマルチコラム効果を再現できます。

Webデザインでマルチコラムレイアウトを使用することの難しさの1つは、ドキュメントサイズを制御できないことです。このチュートリアルでは、さまざまな画面サイズでうまく機能するレスポンシブマルチカラムレイアウトを作成する方法をお勧めします。基本から始めて、より複雑な概念を徐々に学びます。

ブラウザサポート

プレフィックスを使用する意思がある場合、マルチカラムレイアウトのブラウザサポートは非​​常に優れています。 can I Webサイトの統計によると、この機能は世界中のブラウザの95.32%でサポートされています。一部のブラウザ(IE10、Edge、Opera Miniなど)は、マルチカラムレイアウトを完全にサポートしています。 FirefoxやChromeなどの他のブラウザにはプレフィックスが必要です。

古いブラウザ(通常はIE9以下)をサポートする必要がある場合は、古いポリフィルを使用できます。もちろん、ブラウザがマルチコラム関数をサポートしていない場合、レイアウトは単一列のレイアウトにエレガントに格下げされます。したがって、この場合、ポリフィルは最良の選択肢ではないかもしれません。

CSSマルチコラムレイアウトモジュールには、さまざまなプロパティがあります。次のセクションでは、それらを1つずつ紹介します。

列の数と列幅

column-count属性は、要素に設定される列の数を指定します。 autoまたは正の数に設定できます。 autoに設定すると、列の数はcolumn-width属性によって決定されます。正の数に設定すると、すべての列に等しい幅が等しくなります。

column-width属性は、要素の各列の幅を指定します。これは厳密に守られていません。たとえば、利用可能なスペースが不十分な場合、列が狭くなる可能性があります。このプロパティは、autoに設定されている場合、幅はauto属性によって決定されます。空きスペースは、すべての列に均等に分布しています。 column-count

または、略語

属性を使用して両方の値を同時に設定できます。 columns属性の構文は次のとおりです。 columns

このプロパティのいくつかの使用例を以下に示し、各例の横にある説明とともに:
.example {
  columns:  || 
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ご覧のとおり、最初の
.example {
  columns: 10em;      /* column-width: 10em / column-count: auto */
  columns: 4;         /* column-width: auto / column-count: 4 */
  columns: 4 auto;    /* column-width: auto / column-count: 4 */
  columns: auto 10em; /* column-count: auto / column-width: 4 */
  columns: auto;      /* column-count: auto / column-width: auto */
  columns: auto auto; /* column-count: auto / column-width: auto */
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
定義は4番目の略語であり、2番目の定義は3番目の略語です。基本的に、整数がユニットを割り当てない場合、それは

に解析されます。 columns column-countこれは、これまでに説明されている機能を実証するためのCodepenデモンストレーションです

ウィンドウをサイズ変更すると、次のことがわかります。

プロパティは、常に列の数を指定した値に等しくします。変更されるのは、列の幅です。
  • column-count属性は、使用可能なスペースに基づいて列の数を自動的に変更します。列の数は、指定された値よりも列幅を大きくすることで調整されます。また、空きスペースが不十分な場合、すべての列の幅をより小さな値に調整することもできます。
  • column-width属性は、許可されている列の最大数の制限として
  • 値を使用します。
  • がカウント制限を超えないように幅を調整し、columnsは指定された幅にも非常に近くにあります。 column-count column-count column-width
  • 列の間隔と列ルール

属性を使用すると、列間のスペースの量を指定できます。

または長さの値に設定できます。ゼロになる可能性がありますが、負ではありません。

に設定すると、ブラウザで定義された列間のデフォルトの間隔を使用します。 column-gap normalnormal属性は、列間に仕切りを追加できる略語です。これは、

または

属性を使用することに似ています。このプロパティは、次の構文に従います column-rule の場合、幅を長さ(たとえばborder-left)として指定するか、キーワード(border-right

、または
.example {
  column-rule:  ||  || 
}
ログイン後にコピー
ログイン後にコピー

column-rule-width3pxなどの値を受け入れます。 thin属性のすべての有効な値をmediumを使用することができます。 thick column-rule-styleこれは、これらのプロパティが一緒に使用されるCodepenデモですdashed dottedsolid列の塗りつぶしと列のスパンborder-stylecolumn-rule-style column-rule-color

属性は、列に入力するコンテンツを割り当てる方法を決定します。このプロパティは、

または

に設定できます。

に設定すると、列が順番に入力されます。 を使用して、コンテンツがすべての列に均等に分散されていることを確認します。

列要素に固定された高さを設定する場合、Firefoxはコンテンツのバランスを自動的にバランスさせることに注意することが重要です。ただし、他のブラウザは列の順番に整理を開始します。

column-span属性は、要素が複数の列に及ぶ方法を制御します。 2つの可能な値があります:allまたはnoneallに設定すると、要素はすべての列に及びます。このプロパティはFirefoxではサポートされていません。

これは、すべての列にわたってブロッククォート要素を「拡大」するCodepenデモンストレーションです

Firefoxでは、BlockQuoteが中央の列に終わります。これは許容可能なフォールバックかもしれません。

複数の列を使用してレスポンシブレイアウトを作成します

さまざまなプロパティと考えられる値について学んだので、レイアウトをレスポンシブでユーザーフレンドリーに保つ方法に焦点を当てましょう。

およびcolumn-countには、独自の問題があります。 column-widthは、大規模なデバイス上の列の数を制御できますが、小さなデバイスのレイアウトは中断されます。同様に、column-countは、小さなデバイスで列が狭くないことを保証しますが、より大きなデバイスで多くの列になります。 column-width

すべての画面サイズにレイアウトが適切に表示されることを確認するには、

column-countの両方を指定する必要があります。これにより、列の幅と数を制御できます。ただし、次に説明するいくつかの問題を修正する必要がある場合があります。 column-width

Horizo​​ntal Scrollingを修正<」

列に固定された高さを指定すると、ビューポートを縮小すると、水平スクロールバーが表示されます。コンテンツを垂直に拡張できないため、水平に成長します。この問題を解決するために、ブラウザのサイズを変更して、水平面のスクロールバーが初めてどの程度幅が表示されるかを確認できます。その後、メディアクエリを使用して、その幅の下の列の高さを

に設定できます。これを行うコードは次のとおりです

autoこのCodepenデモンストレーションは、問題と可能な解決策を示しています

.example {
  columns:  || 
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ウィンドウをサイズ変更して、両方の例がどのように反応するかを確認します。

列が長すぎる

を修正しました

列が長すぎる場合、ユーザーはすべてを読むために上下にスクロールし続ける必要があります。列の高さがビューポートの高さ自体よりも大きい場合、複数の列を削除するのが最善です。これは、メディアクエリを使用して再度実行できます

この場合、ビューポート幅がユーザーが上下にスクロールする必要がなくなると、複数の列を使用します。

複数の列とメディアクエリを備えたデモを表示
.example {
  columns: 10em;      /* column-width: 10em / column-count: auto */
  columns: 4;         /* column-width: auto / column-count: 4 */
  columns: 4 auto;    /* column-width: auto / column-count: 4 */
  columns: auto 10em; /* column-count: auto / column-width: 4 */
  columns: auto;      /* column-count: auto / column-width: auto */
  columns: auto auto; /* column-count: auto / column-width: auto */
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

結論

CSSマルチコラムレイアウトモジュールのこの入門チュートリアルが、この機能に慣れることを願っています。これらのプロパティは、レスポンシブデザインツールボックスにうまく追加できます。古いブラウザをサポートする必要がある場合は、複数の列を単一の列にエレガントに格下げします。 CSSマルチカラムレイアウトのFAQ

faq

CSSでマルチカラムレイアウトを作成する方法は? CSSでマルチカラムレイアウトを作成するのは非常に簡単です。

プロパティを使用して、レイアウトで必要な列の数を指定できます。たとえば、3つの列が必要な場合は、次のように書くことができます。
.example {
  columns:  || 
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
この例では、

は、列に分割する要素のクラスです。 .container属性は、要素のコンテンツを指定された列の数に自動的に分割します。 column-count

CSSの列間の間隔を制御する方法は?

プロパティを使用すると、列間のスペースを制御できます。このプロパティに設定した値は、ギャップの幅になります。たとえば、列間に20pxのギャップが必要な場合は、次のように書くことができます。 column-gap

CSSで異なる幅の列を作成できますか?
.example {
  columns: 10em;      /* column-width: 10em / column-count: auto */
  columns: 4;         /* column-width: auto / column-count: 4 */
  columns: 4 auto;    /* column-width: auto / column-count: 4 */
  columns: auto 10em; /* column-count: auto / column-width: 4 */
  columns: auto;      /* column-count: auto / column-width: auto */
  columns: auto auto; /* column-count: auto / column-width: auto */
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

残念ながら、CSSマルチコラムレイアウトモジュールは、異なる幅の列をサポートしていません。

属性で作成されたすべての列には同じ幅があります。ただし、FlexBoxやグリッドなどの他のCSS技術を使用して、異なる幅の列を作成できます。

column-count CSSの列幅を制御する方法は?

属性を使用して、列の幅を制御できます。このプロパティは、列の最適な幅を指定しますが、ブラウザは必要に応じてコンテンツに適合するために幅を調整します。たとえば、列の幅を200pxに設定するには、次のことを書くことができます。

column-width CSSで列ルールを作成する方法は?

.example {
  column-rule:  ||  || 
}
ログイン後にコピー
ログイン後にコピー

プロパティを使用すると、列間にルールまたはラインを作成できます。ルールの幅、スタイル、色を指定できます。たとえば、1px Solid Blackルールを作成するには、次のように書くことができます。

CSSで列割り込みを制御する方法は? column-rule

.responsive-height {
  height: 250px;
}

@media (max-width: 1040px) {
  .responsive-height {
    height: auto;
  }
}
ログイン後にコピー
プロパティを使用すると、列割り込みを制御できます。このプロパティを

に設定して、要素内の割り込みを防ぐことができます。たとえば、

break-insideレスポンシブデザインでマルチコラムレイアウトを使用できますか? avoid

はい、レスポンシブデザインを備えたマルチコラムレイアウトを使用できます。メディアクエリを使用して、ビューポート幅に基づいて列数を調整できます。たとえば、小さな画面に1つの列と大きな画面に3つの列を表示することをお勧めします。
@media (min-width: 800px) {
  .long-columns {
    columns: 3 200px;
  }
}
ログイン後にコピー

CSSに列を入力する方法は?

デフォルトでは、列は順番に入力されます。これは、最初の列を最初に記入し、次に2番目の列などに記入することを意味します。ただし、この動作を

属性を使用して変更できます。このプロパティを

に設定すると、ブラウザは列を均等に入力しようとします。

列を渡る方法は? column-fill balance

属性により、要素が複数の列に及ぶことができます。このプロパティをすべての列に及ぼすようにこのプロパティを

に設定できます。たとえば、

column-spanCSSマルチコラムレイアウトにブラウザ互換性の問題はありますか? all

ほとんどの最新のブラウザはCSSマルチカラムレイアウトをサポートしていますが、実装にはいくつかの違いがあるかもしれません。レイアウトを別のブラウザでテストして、予想どおりに機能することを確認するのが最善です。また、さまざまなCSSプロパティのブラウザサポートを確認するために使用できるツールを使用することもできます。
.container {
  column-count: 3;
}
ログイン後にコピー

以上が初心者向けのCSSマルチカラムレイアウトチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? Apr 05, 2025 pm 11:24 PM

要素の数が固定されていない場合、CSSを介して指定されたクラス名の最初の子要素を選択する方法。 HTML構造を処理するとき、あなたはしばしば異なる要素に遭遇します...

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

SVGでタータンパターンを生成する静的サイトを作成する方法 SVGでタータンパターンを生成する静的サイトを作成する方法 Apr 09, 2025 am 11:29 AM

タータンは、スコットランド、特にファッショナブルなキルトに通常関連する模様のある布です。 Tartanify.comでは、5,000を超えるTartanを集めました

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

See all articles