前端瀑布流怎么布局

假设你需要把页面搭建成这样,有两列元素,每个元素宽度一定,高度不一定。如何实现?

在这里插入图片描述
这种瀑布流布局有很多实现方式,比如Grid布局。

什么是Grid布局

Grid布局是一种很灵活的布局方式,他把你的页面划分成了很多小格子。

.list {
  display: grid;
  grid-auto-rows: 5px; // 每个小格子大小
  grid-template-columns: repeat(auto-fill, calc(50% - 5px)); // 定义网格布局中各列的宽度、间距等信息
  align-items: start; //定义网格容器中所有网格项在垂直方向上的对齐方式
  justify-content: space-between; //定义网格容器中所有网格项在水平方向上的对齐方式
}

list是你的容器元素。

 document.querySelectorAll(".box").forEach((el, index) => {
      const dom = useRect(el); //vant获取元素大小的方法
      const rows = Math.ceil(dom.height / 5) + 10;
      el.style.gridRowEnd = `span ${rows}`; //grid-row-end 子元素顶部距离下个元素占多少行格子
    });

box是你的每一个子元素。通过动态设置gridRowEnd 的大小来设置子元素的高度。grid会自动把子元素放在合适的位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值