首頁  >  文章  >  web前端  >  為什麼 Flex 項目不透過邊距和「邊框」大小縮小以適應每行三個?

為什麼 Flex 項目不透過邊距和「邊框」大小縮小以適應每行三個?

DDD
DDD原創
2024-11-02 18:51:31389瀏覽

Why Don't Flex Items Shrink to Fit Three Per Row with Margins and `border-box` Sizing?

Flex 項目忽略邊距和邊框大小

在Flexbox 中,透過設定flex: 1 1 33.33% 和marginon: 10px物品,人們可能會期望每排三個盒子。然而,使用 flex-wrap:wrap 時,盒子不會縮小到每行三個。

原因在於 box-sizing: border-box 的本質。雖然此屬性在寬度和高度計算中包括填充和邊框,但不包括邊距。邊距是單獨計算的,預設情況下,Flex 專案具有 flex-shrink: 1,允許它們收縮以適合容器。

要解決此問題,可以透過設定 flex- 來覆蓋預設行為收縮:0。這可以防止彈性項目收縮到邊緣。

另一個解決方案是調整flex-basis值,同時保持flex-grow:1。因為不需要強制執行flex-basis由於flex-grow 消耗了可用空間,可以減少該值以容納邊距。例如,透過設定 flex: 1 1 26% 和 margin: 10px,Flex 專案現在可以按預期調整。

以上是為什麼 Flex 項目不透過邊距和「邊框」大小縮小以適應每行三個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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