当前位置: 首页 > news >正文

自适应布局,平均分配,自动换行,上下对齐

前言

做一个桌面应用的需求,要求所有元素平铺排列,窗口大小改变后会自动换行,且上下对齐

flex布局

在flex布局中,如果使用justify-content: space-between; 最后一行没铺满的时候也会左右对齐,不能达到上下对齐的效果,所以需要设置after,让最后一行变成左对齐。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><style type="text/css">li {list-style: none;}.list {width: 100%;box-sizing: border-box;display: flex;justify-content: space-between;flex-wrap: wrap;padding: 10px;}.list:after{content: "";flex: auto;}.item {width: 220px;height: 60px;background-color: azure;margin-bottom: 10px;border: 1px solid red;margin-right: 17px;}.item:nth-child(5n){margin-right: 0;}</style><body><div style="width: 1200px; margin: auto; background-color: #cccccc; height: 500px;"><ul class="list"><li class="item"></li><li class="item"></li><li class="item"></li><li class="item"></li><li class="item"></li><li class="item"></li><li class="item"></li><li class="item"></li><li class="item"></li><li class="item"></li><li class="item"></li><li class="item"></li><li class="item"></li></ul></div></body>
</html>

在这里插入图片描述
这里每个item的margin-right要调整,才能达到上下对齐的效果

问题一

对于桌面工具来说,窗口缩放时margin的比例会改变,造成最后一行与上面不能对齐的情况。
这种方法对于固定宽度的窗口是有效的。
解决:给每一个item设置flex的比例:

		.item {flex: 0 0 20%height: 60px;background-color: azure;margin-bottom: 10px;border: 1px solid red;padding: 10px;}

这种方法虽然可以自动让上下对齐,但也有缺点,它的一行只能放5个元素了,如果窗口变大也不会增多元素。

grid布局

改成grid布局,可以完美实现这个需求

    .list {display: grid;/* 根据容器宽度自动填充列 */grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));justify-items: stretch;}

在这里插入图片描述

这里 grid-template-columns参数的minmax要根据item的宽度调整。

总结

如果屏幕宽度不会改变可以选择flex布局,推荐使用grid布局,效果很好。

相关文章:

  • 大模型相关面试问题原理及举例
  • java+postgresql+swagger-多表关联insert操作(九)
  • 【Scratch编程入门】字母动画制作
  • NHANES指标推荐:CMI
  • LLaMA Factory多模态微调实践:微调Qwen2-VL构建文旅大模型
  • 《奇迹世界起源》:神之月晓活动介绍!
  • YRAN定义
  • Enovia许可证管理与监控工具
  • 对WAV文件进行降噪
  • 51、项⽬中的权限管理怎么实现的
  • k8s介绍与实践
  • 【AI提示词】儿童看护员
  • 【嵌入式】【阿里云服务器】【树莓派】学习守护进程编程、gdb调试原理和内网穿透信息
  • css图片设为灰色
  • Allure测试报告按测试终端和测试类型智能分类查看
  • 前端为什么需要单元测试?
  • 数据仓库分层架构解析:从理论到实战的完整指南​​
  • AXOP36061S: 60V 高压单通道运算放大器
  • 视频分析设备平台EasyCVR化解高速服务区管理难题,打造全方位智能安防监控方案
  • 《AI赋能职场:大模型高效应用课》第8课 AI辅助职场沟通与协作
  • “科技+萌点”机器人马拉松刷屏!宇树回应“半马摔倒”
  • “女子被前男友泼汽油烧伤案”二审将于22日开庭,一审判12年
  • 人民网评:“中国传递爱而不是关税”
  • 科普|一名肿瘤医生眼中的肺癌诊疗变化:从谈癌色变到与癌共存
  • “万人大院”重组,上海交大校长丁奎岭:人才培养事关生存发展,再难也要改
  • 第六季了,姐姐们还能掀起怎样的风浪