首頁  >  文章  >  web前端  >  如何在 CSS 網格中實現精確相等的列寬?

如何在 CSS 網格中實現精確相等的列寬?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-06 09:11:03869瀏覽

CSS 網格中的精確相等的列寬

在 CSS 網格中創建相等大小的列可能看起來很簡單,但它需要特定的方法。雖然 Flexbox 透過其 flex-basis 屬性提供了一個簡單的解決方案,但 CSS Grid 需要更精確的配置。

挑戰:

給定如下HTML 結構:

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

目標是在相等的列中顯示這些元素,無論行內的子元素有多少。

解:

常見的Repeat(3, 1fr) 的方法是不夠的,因為 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帶有重複(3, 1fr):

EqualColumns result

minmaxEqualumns 帶有重複(3, minmax(0, 1fr)):

MinmaxEqualColumns result

以上是如何在 CSS 網格中實現精確相等的列寬?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn