簡體   English   中英

包含在flexbox網格中的flex項目的相等邊距空間

[英]Equal margin space for flex items that wrap in flexbox grid

我正在嘗試使用flexbox創建響應式網格:

  • 在大屏幕上,一行中應該有三列
  • 在較小的屏幕上,只有兩行或一行

我的代碼到目前為止:

 .grid { display: flex; flex-wrap: wrap; } .gridColumn { flex: 1 1 0px; background-color: lightblue; min-width: 200px; } 
 <div class="grid"> <div class="gridColumn"> <p>first column</p> </div> <div class="gridColumn"> <p>second column</p> </div> <div class="gridColumn"> <p>third column</p> </div> </div> 

現在,我想僅之間設置邊距(也不在網格的兩側),當調整屏幕大小時,這也應該正確。 有人知道實現這個目標的方法嗎?

您可以為網格項添加邊距...

.gridColumn {
    margin: $margin;
}

...然后由其容器抵消。

.grid {
    margin: -$margin;
}

為避免溢出,您可以將overflow-x: hidden應用於body

Codepen示例

它在這部分代碼上崩潰了

.gridColumn + .gridColumn {margin-left:20px; }

您應該嘗試使用媒體查詢並設置margin-left:0; 在小屏幕上。

上面的部分代碼仍在工作,因為flex-wrap只改變了“第三列”的位置,該列之前仍然有“姐妹”,而margin-left正在工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2025 STACKOOM.COM