
[英]Wrap items for last row in flex layout with space between alignment
[英]Remove space (gaps) between multiple lines of flex items when they wrap
我試圖在一個具有設定高度的容器中放置一些相互下方的物品。 如果沒有剩余空間,項目將彼此相鄰。
這是想法:
我正在嘗試使用 flexbox 來實現這一點,一個具有設置高度的容器,方向設置為column
並且flex-wrap
是wrap
:
問題是列之間有很大的間隙。
我嘗試將justify-content
和align-items
為flex-start
,但這可能是默認值。
有沒有辦法解決這個問題?
這是代碼:
* { box-sizing: border-box; } body { font-family: sans-serif; } .container { display: flex; flex-wrap: wrap; height: 300px; flex-direction: column; background-color: #ccc; } .items { width: 100px; height: 100px; margin: 10px; background-color: tomato; color: white; font-size: 60px; font-weight: bold; text-align: center; padding: 15px; }
<div class="container"> <div class="items">1</div> <div class="items">2</div> <div class="items">3</div> <div class="items">4</div> <div class="items">5</div> </div>
flex 容器的初始設置是align-content: stretch
。
這意味着多行 flex 項目將沿交叉軸均勻分布。
要覆蓋此行為,請將align-content: flex-start
應用於容器。
當您在單行 flex 容器(即flex-wrap: nowrap
)中工作時,用於沿交叉軸分配空間的屬性是align-items
和align-self
。
當您在多行 flex 容器(即flex-wrap: wrap
)中工作時——就像在問題中一樣——用於沿交叉軸分布彈性線(行/列)的屬性是align-content
。
從規范:
8.3. 跨軸對齊:
align-items
和align-self
屬性
align-items
設置所有彈性容器align-items
的默認對齊方式,包括匿名彈性項目。align-self
允許為單個 flex 項目覆蓋此默認對齊方式。8.4. 包裝 Flex Lines:
align-content
屬性當橫軸上有額外空間時,
align-content
屬性會在 flex 容器內對齊 flex 容器的行,類似於justify-content
在主軸內對齊單個項目的方式。 請注意,此屬性對單行 flex 容器沒有影響。
align-content
屬性有六個值:
flex-start
flex-end
center
space-between
space-around
stretch
這是stretch
的定義:
stretch
線條伸展以占據剩余空間。 如果剩余可用空間為負,則該值與
flex-start
相同。 否則,自由空間會在所有行之間平均分配,從而增加它們的交叉大小。
換句話說,橫軸上的align-content: stretch
類似於主軸上的flex: 1
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.