P粉3047046532023-08-21 13:34:12
之前的答案非常好,但我還想提到,對於網格來說,也有一種固定佈局的等效方法,你只需要將你的軌道大小寫為minmax(0, 1fr )
而不是1fr
。
P粉8180888802023-08-21 00:00:55
預設情況下,網格項目的大小不能小於其內容的大小。
網格項目的初始大小為min-width: auto
和min-height: auto
。
您可以透過將網格項目設定為min-width: 0
,min-height: 0
或overflow
(除visible
之外的任何值)來覆寫此行為。
來自規範:
#這是一個更詳細的解釋,涵蓋了彈性項,但也適用於網格項:
#這篇文章也涵蓋了嵌套容器的潛在問題和主要瀏覽器之間的已知渲染差異。
要修復您的佈局,請對您的程式碼進行以下調整:
.month-grid { display: grid; grid-template: repeat(6, 1fr) / repeat(7, 1fr); background: #fff; grid-gap: 2px; min-height: 0; /* 新增 */ min-width: 0; /* 新增;Firefox需要 */ } .day-item { padding: 10px; background: #DFE7E7; overflow: hidden; /* 新增 */ min-width: 0; /* 新增;Firefox需要 */ }
#1fr
與minmax(0, 1fr)
#上面的解決方案是在網格項目層級上操作的。有關容器層級的解決方案,請參閱以下文章: