ホームページ  >  記事  >  ウェブフロントエンド  >  CSS グリッドで正確に等しい列幅を実現するにはどうすればよいですか?

CSS グリッドで正確に等しい列幅を実現するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-06 09:11:03869ブラウズ

CSS グリッドでの正確な等しい列幅

CSS グリッドで同じサイズの列を作成するのは簡単そうに見えますが、それには特別なアプローチが必要です。 Flexbox はフレックスベースのプロパティを使用して簡単なソリューションを提供しますが、CSS グリッドではより正確な構成が必要です。

課題:

次のような HTML 構造があるとします。

<code class="html"><div class="row">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</div></code>

目標は、行内の子要素の数に関係なく、これらの要素を同じ列に表示することです。

解決策:

共通1fr は列の厳密な等価性を強制するのではなく、使用可能なスペースを分配するため、repeat(3, 1fr) のアプローチでは不十分です。コンテンツがトラック サイズを超える場合、自動的に調整されず、列幅が不均一になる可能性があります。

正確に同じ列幅を実現するには、次の CSS プロパティを使用します:

<code class="css">grid-template-columns: repeat(3, minmax(0, 1fr));</code>

説明:

minmax(0, 1fr) では、グリッド トラックを 0 まで小さく、1fr まで大きくすることができます。これにより、列が等しくなることが保証されます。ただし、コンテンツが列より大きい場合、または折り返すことができない場合は、オーバーフローが発生する可能性があるため、注意してください。

違いを示すために、次の例を考えてみましょう。

<code class="css">.equalColumns {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.minmaxEqualColumns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}</code>

equalColumns stop(3, 1fr) を使用:

EqualColumns result

minmaxEqualColumns with stop(3, minmax(0, 1fr)):

MinmaxEqualColumns result

以上がCSS グリッドで正確に等しい列幅を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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