Flexbox弹性盒布局中gap的使用

一、gap基本使用

在CSS Grid Layout(网格布局)和Flexbox(弹性盒布局)中,gap 是一个缩写属性,用于同时设置行间隙列间隙,如果需要分开设置,row-gap用于单独设置行间隙,column-gap用于单独设置列间隙

.container {
  width: 600px;
  background-color: red;
  display: flex;
  /* 允许flex项换行 */
  flex-wrap: wrap; 
  /* 同时设置主轴和交叉轴上的间隙为10px */
  gap: 10px; 
  /* 或者更具体地 */
  /* row-gap: 10px; */
  /* column-gap: 15px; */
}
.box {
  width: 100px;
  height: 100px;
  background-color: aqua;
}

<div class="container">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>

在这里插入图片描述

二、gap的属性的值

gap 属性的值可以 px、em、vw、%等可接受的合法值

值的注意的是: 如果使用了百分比,则row-gap参考父元素的高度,则column-gap参考父元素的宽度,如果父元素的宽、高由内容撑开,则百分比则失效

.container {
  width: 600px;
  background-color: red;
  display: flex;
  /* 多行排列在顶端 */
  align-content: flex-start;
  /* 允许flex项换行 */
  flex-wrap: wrap;
  column-gap: 10px;
  /* 父元素高度由内容撑开,row-gap给百分比无效 */
  row-gap: 20%;
}

在这里插入图片描述

三、gap之后的边距

gap之后,间距都是在item之间、item的两边并没有边距,这一点很重重要

在这里插入图片描述

四、实现一行放m个,并且列间距是n

设置子元素的宽度为calc((100% - (m - 1) * npx) / m)

  • 示例:一行5个,并且间距是20px
.container {
  width: 600px;
  background-color: red;
  display: flex;
  /* 多行排列在顶端 */
  align-content: flex-start;
  /* 允许flex项换行 */
  flex-wrap: wrap;
  column-gap: 20px;
  row-gap: 20px;
}
.box {
  /* 一行放5个,并且间距是20px */
  /* calc((100% - (m - 1) * npx) / m) */
  width: calc((100% - (5 - 1) * 20px) / 5);
  height: 100px;
  background-color: aqua;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值