首頁 >web前端 >css教學 >在動態調整八個元素的大小時,如何使用 Flexbox 強制兩行四個元素?

在動態調整八個元素的大小時,如何使用 Flexbox 強制兩行四個元素?

Susan Sarandon
Susan Sarandon原創
2024-12-29 08:07:10322瀏覽

How to Force Two Rows of Four Elements Each Using Flexbox When Dynamically Resizing Eight Elements?

Flexbox佈局:每行4個元素

在使用Flexbox動態調整頁上8個元素尺寸時,如何強制將其分為兩行(每行4個)?

給定以下程式碼片段:

<div class="parent-wrapper">
  <div class="parent">
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
  </div>
</div>
.parent-wrapper {
  height: 100%;
  width: 100%;
  border: 1px solid black;
}

.parent {
  display: flex;
  font-size: 0;
  flex-wrap: wrap;
  margin: -10px 0 0 -10px;
}

.child {
  display: inline-block;
  background: blue;
  margin: 10px 0 0 10px;
  flex-grow: 1;
  height: 100px;
}

解決方案:

問題在於flex容器上的flex-wrap: wrap ,它允許元素換行。但是,flex-grow: 1在元素上允許無限制地生長,導致它們在空間不足時無法換行。

解決方案是為元素定義一個寬度,迫使其換行:

.parent {
  display: flex;
  flex-wrap: wrap;
}

.child {
  flex: 1 0 21%; /* 展开说明如下 */
  margin: 5px;
  height: 100px;
  background-color: blue;
}

flex屬性的第一個值(在我們的範例中為1)將空間均勻分配給所有元素,第二個值(為0)最小寬度設定為0,第三個值(為21%)定義了元素的最大寬度為可用的21% 。透過這樣設置,元素將在達到最大寬度之前換行,從而創建每行4個元素的佈局。

以上是在動態調整八個元素的大小時,如何使用 Flexbox 強制兩行四個元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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