ホームページ >ウェブフロントエンド >CSSチュートリアル >初心者向けのCSSマルチカラムレイアウトチュートリアル
CSSの概要マルチカラムレイアウトチュートリアル:キーポイント
column-count
属性は列の数を指定し、column-width
属性は各列の幅を指定します。どちらもauto
または正の数値に設定でき、略語columns
属性を使用して同時に設定できます。 column-gap
属性は列の間隔を指定し、column-rule
属性は略式されているため、列間に仕切りを追加できます。 column-fill
属性は、コンテンツが列を埋めるように割り当てられる方法を決定し、column-span
属性は要素が複数の列に及ぶ方法を制御します。 column-count
とcolumn-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
属性によって決定されます。空きスペースは、すべての列に均等に分布しています。 column-count
属性を使用して両方の値を同時に設定できます。 columns
属性の構文は次のとおりです。
columns
<code class="language-css">.example { columns: || }</code>
ご覧のとおり、最初の
<code class="language-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 */ }</code>定義は4番目の略語であり、2番目の定義は3番目の略語です。基本的に、整数がユニットを割り当てない場合、それは
に解析されます。 columns
column-count
これは、これまでに説明されている機能を実証するためのCodepenデモンストレーションです
ウィンドウをサイズ変更すると、次のことがわかります。
プロパティは、常に列の数を指定した値に等しくします。変更されるのは、列の幅です。column-count
属性は、使用可能なスペースに基づいて列の数を自動的に変更します。列の数は、指定された値よりも列幅を大きくすることで調整されます。また、空きスペースが不十分な場合、すべての列の幅をより小さな値に調整することもできます。 column-width
属性は、許可されている列の最大数の制限としてcolumns
は指定された幅にも非常に近くにあります。 column-count
column-count
column-width
属性を使用すると、列間のスペースの量を指定できます。
または長さの値に設定できます。ゼロになる可能性がありますが、負ではありません。に設定すると、ブラウザで定義された列間のデフォルトの間隔を使用します。 column-gap
normal
normal
属性は、列間に仕切りを追加できる略語です。これは、
属性を使用することに似ています。このプロパティは、次の構文に従います
column-rule
border-left
)として指定するか、キーワード(border-right
、
、column-rule-width
、3px
などの値を受け入れます。 thin
属性のすべての有効な値をmedium
を使用することができます。 thick
column-rule-style
これは、これらのプロパティが一緒に使用されるCodepenデモですdashed
dotted
solid
列の塗りつぶしと列のスパンborder-style
column-rule-style
column-rule-color
または
に設定できます。に設定すると、列が順番に入力されます。 を使用して、コンテンツがすべての列に均等に分散されていることを確認します。
列要素に固定された高さを設定する場合、Firefoxはコンテンツのバランスを自動的にバランスさせることに注意することが重要です。ただし、他のブラウザは列の順番に整理を開始します。
column-span
属性は、要素が複数の列に及ぶ方法を制御します。 2つの可能な値があります:all
またはnone
。 all
に設定すると、要素はすべての列に及びます。このプロパティはFirefoxではサポートされていません。
これは、すべての列にわたってブロッククォート要素を「拡大」するCodepenデモンストレーションです
Firefoxでは、BlockQuoteが中央の列に終わります。これは許容可能なフォールバックかもしれません。
複数の列を使用してレスポンシブレイアウトを作成します
さまざまなプロパティと考えられる値について学んだので、レイアウトをレスポンシブでユーザーフレンドリーに保つ方法に焦点を当てましょう。
およびcolumn-count
には、独自の問題があります。 column-width
は、大規模なデバイス上の列の数を制御できますが、小さなデバイスのレイアウトは中断されます。同様に、column-count
は、小さなデバイスで列が狭くないことを保証しますが、より大きなデバイスで多くの列になります。 column-width
とcolumn-count
の両方を指定する必要があります。これにより、列の幅と数を制御できます。ただし、次に説明するいくつかの問題を修正する必要がある場合があります。 column-width
auto
このCodepenデモンストレーションは、問題と可能な解決策を示しています
<code class="language-css">.example { columns: || }</code>ウィンドウをサイズ変更して、両方の例がどのように反応するかを確認します。
列が長すぎる
を修正しました
列が長すぎる場合、ユーザーはすべてを読むために上下にスクロールし続ける必要があります。列の高さがビューポートの高さ自体よりも大きい場合、複数の列を削除するのが最善です。これは、メディアクエリを使用して再度実行できます複数の列とメディアクエリを備えたデモを表示
<code class="language-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 */ }</code>結論
CSSマルチコラムレイアウトモジュールのこの入門チュートリアルが、この機能に慣れることを願っています。これらのプロパティは、レスポンシブデザインツールボックスにうまく追加できます。古いブラウザをサポートする必要がある場合は、複数の列を単一の列にエレガントに格下げします。 CSSマルチカラムレイアウトのFAQ
faqCSSでマルチカラムレイアウトを作成する方法は? CSSでマルチカラムレイアウトを作成するのは非常に簡単です。
プロパティを使用して、レイアウトで必要な列の数を指定できます。たとえば、3つの列が必要な場合は、次のように書くことができます。<code class="language-css">.example { columns: || }</code>この例では、
は、列に分割する要素のクラスです。 .container
属性は、要素のコンテンツを指定された列の数に自動的に分割します。 column-count
プロパティを使用すると、列間のスペースを制御できます。このプロパティに設定した値は、ギャップの幅になります。たとえば、列間に20pxのギャップが必要な場合は、次のように書くことができます。
column-gap
<code class="language-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 */ }</code>
column-count
CSSの列幅を制御する方法は?
column-width
CSSで列ルールを作成する方法は?
<code class="language-css">.example { column-rule: || || }</code>
CSSで列割り込みを制御する方法は? column-rule
<code class="language-css">.responsive-height { height: 250px; } @media (max-width: 1040px) { .responsive-height { height: auto; } }</code>プロパティを使用すると、列割り込みを制御できます。このプロパティを
break-inside
レスポンシブデザインでマルチコラムレイアウトを使用できますか? avoid
<code class="language-css">@media (min-width: 800px) { .long-columns { columns: 3 200px; } }</code>
デフォルトでは、列は順番に入力されます。これは、最初の列を最初に記入し、次に2番目の列などに記入することを意味します。ただし、この動作を
属性を使用して変更できます。このプロパティを列を渡る方法は? column-fill
balance
column-span
CSSマルチコラムレイアウトにブラウザ互換性の問題はありますか? all
<code class="language-css">.container { column-count: 3; }</code>
以上が初心者向けのCSSマルチカラムレイアウトチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。