网格布局自适应(一)
需求
多个固定宽度的盒子横向排列,超过页面宽度自动换行。要求盒子间空隙自动计算,避免出现行末大幅空白现象。
分析
要求自适应,就不能给固定宽度的 margin
;
针对不同屏幕宽度,每行的盒子数量也不同;
因此,需要用到 repeat()
使得列宽自适应。比如:
.grid {
display: grid;
/* 指定网格列数:分为12个盒子 */
grid-template-columns: repeat(12, 1fr);
}
但是如果屏幕宽度变小,分成12个盒子,就会导致盒子宽度被挤压。因此需要使用 minmax()
保证盒子的最小宽度。
grid-template-columns: repeat( 12, minmax(250px, 1fr) );
如果屏幕宽度小于 250px * 12
,那么就会溢出,无法实现自动换行。因此要用到 auto-fit
或 auto-fill
。
grid-template-columns: repeat( auto-fit, minmax(250px, 1fr) );
解决
给父盒子添加以下代码:
display: grid;
grid-gap: 15px;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
参考链接
本文来自博客园,作者:shayloyuki,转载请注明原文链接:https://www.cnblogs.com/shayloyuki/p/17728012.html
标签:
css
posted on 2023-09-25 15:50 shayloyuki 阅读(103) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通