CSS gap 超精簡核心筆記

一、什么是 gap

gap容器內(nèi)部子元素之間的間距
只作用在 flex、grid、column 布局

二、簡寫 & 拆分

/* 上下間距 左右間距 */
gap: 行間距 列間距;

/* 只寫一個,上下左右一樣 */
gap: 20px;

/* 拆分寫法 */
row-gap: 16px;  /* 行間距 */
column-gap: 24px; /* 列間距 */

三、核心優(yōu)點(比 margin 強太多)

  1. 不額外撐大容器,不會溢出
  2. 只在元素中間產(chǎn)生間距,不會有首尾多余邊距
  3. 不用寫 : first-child / :last-child 清 margin
  4. 布局更干凈,不用算外邊距重疊問題

四、和 margin 最大區(qū)別

  • gap:容器控制內(nèi)部元素間隔,首尾無留白,布局規(guī)整
  • margin:元素自己向外留白,首尾也會有邊距,容易重疊、溢出、要清邊

五、適用場景

? 推薦用 gap

  • Flex 橫向 / 縱向列表
  • Grid 網(wǎng)格布局
  • 卡片列表、導(dǎo)航菜單、宮格布局
    ? 不適合用 gap
  • 需要元素和容器邊框有外邊距時,用 padding
  • 單個元素獨立上下留白,用 margin

六、兼容

現(xiàn)代項目全兼容;老舊瀏覽器完全支持 flex-gap
不用顧慮,企業(yè)項目直接放心用

七、萬能模板 直接復(fù)制

.flex-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 20px;
}

.grid-wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr); // 一行放 3 列,剩余空間均分 1 份
  grid-template-columns: 200px 300px;  /* 第1列200px 第2列300px */
  gap: 24px;
}

八、實踐

.grid-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(12px, 2vw, 24px);
}

注釋:

  1. repeat(auto-fit, minmax(300px, 1fr))
  • 每列最小寬度 300px
  • 屏幕夠大:自動排多列,PC 一行 3 列
  • 屏幕變?。鹤詣邮湛s,手機自動變成 2 列、1 列
  • auto-fit 自動換行,不用寫 @media
  1. minmax(300px, 1fr)
  • 列寬最小 300px
  • 富余空間就均分占滿
  1. gap: clamp(12px, 2vw, 24px)
  • 大屏間距最大 24px
  • 小屏最小 12px
  • 中間隨屏幕自動變化,自適應(yīng)間距拉滿
    html如下
<div class="grid-list">
  <div class="item">卡片1</div>
  <div class="item">卡片2</div>
  <div class="item">卡片3</div>
  <div class="item">卡片4</div>
</div>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容