移动端列堆叠、PC端两行三列布局实现求助
解决响应式3列布局问题
直接用CSS Grid或Flexbox就能搞定,给你两种可行方案:
方案一:CSS Grid(推荐)
HTML结构:
<div class="container"> <div class="item">项目1</div> <div class="item">项目2</div> <div class="item">项目3</div> <div class="item">项目4</div> <div class="item">项目5</div> <div class="item">项目6</div> </div>
CSS代码:
/* 移动端默认样式:上下排列 */ .container { display: grid; grid-template-columns: 1fr; gap: 1rem; /* 项目间间距,可按需调整 */ } /* PC端样式:768px以上显示3列 */ @media (min-width: 768px) { .container { grid-template-columns: repeat(3, 1fr); } } .item { padding: 1rem; background: #f0f0f0; border-radius: 4px; }
方案二:Flexbox
CSS代码替换为:
/* 移动端默认样式 */ .container { display: flex; flex-direction: column; gap: 1rem; } /* PC端样式 */ @media (min-width: 768px) { .container { flex-direction: row; flex-wrap: wrap; } .item { flex: 0 0 calc(33.333% - 0.666rem); /* 减去gap占比,避免换行 */ } }
注意事项
- 媒体查询的
min-width可根据需求调整(比如992px),匹配你的PC/移动端分界标准 - 用
gap控制间距比手动加margin更稳妥,不会出现外边距重叠问题 - 如果之前样式混乱,检查是否有其他CSS规则冲突(比如给
.item加了固定宽度、float属性),可通过浏览器开发者工具排查
内容的提问来源于stack exchange,提问作者Hidde
相关产品推荐
相关产品推荐

