必须设置flex-wrap: wrap才能让列表项自动换行;否则即使写媒体查询或flex: 1,子项仍强制单行溢出。配合flex: 1 1 minmax(280px, 1fr)可兼顾最小宽度与弹性分配,避免窄屏文字挤压或空隙失衡。

用 flex-wrap 让列表项自动换行,而不是写死列数
直接设 .item { flex: 0 0 300px } 或 width: 33.33% 在小屏下会撑破容器或换行错乱。必须启用换行能力:flex-wrap: wrap 是基础前提。否则哪怕写了媒体查询,子项仍被强制挤在同一行,溢出或文字折行异常。
配合 flex: 1 1 minmax(280px, 1fr)) 更稳妥——它让每个列表项最小宽 280px(保证标题可读),超出后按比例均分剩余空间,避免空隙过大或过小。别用 flex: 1 单独写,它会忽略最小宽度约束,窄屏下文字被压成一串。
- 常见错误:只设
display: flex但漏掉flex-wrap: wrap,导致移动端列表横向滚动 - 注意
gap值要和flex-basis中的calc()保持一致,比如gap: 16px就对应calc(33.333% - 16px) - 若列表项含图片缩略图,记得给
<img>加max-width: 100%; height: auto;,否则拉伸变形
用 @media 控制主轴方向,而非仅调子项宽度
很多人只在小屏下调 .item 的宽度,却忘了父容器仍保持 flex-direction: row。结果是列表项变窄、高度猛增,视频区域被顶开。正确做法是切换整个容器的布局逻辑:
移动端优先设 .video-list { display: block; },桌面端再激活 Flex:@media (min-width: 769px) { .video-list { display: flex; flex-direction: row; } }。这样语义清晰,且避免旧浏览器中 Flex 属性残留干扰。
- 断点用
min-width: 769px,不是max-width: 768px,防止 768.5px 这类非整数值失效 - 不要对单个列表项设
margin-left: auto试图右对齐——它在块级流里无效,必须靠父容器justify-content - 如果列表上方有搜索框或筛选栏,它们也应纳入同一 Flex 容器,用
align-items: flex-start统一基线
用 align-items: stretch 对齐列表项高度,避免视频区域错位
当某条视频标题很长、换两行时,该列表项高度会突增,而其他项保持默认高度,导致 Grid 或 Flex 轨道参差不齐,左侧视频区域上下浮动。这不是视频本身的问题,而是右侧列表的行高失控。
解决方法不是给每项设固定 height(会截断文字),而是用 align-items: stretch(Flex 默认值)让所有项撑满容器高度,并配合 overflow: hidden 和 text-overflow: ellipsis 处理超长文本。
- 若用了
gap,别再同时设margin,否则间距加倍 - 安卓 WebView 中
align-items: stretch有时失效,可加min-height: 0强制重算 - 避免对列表项用
display: inline-block,它会破坏 Flex 的对齐行为
视频容器与列表共用同一 Flex 容器时,慎用 flex: 1
把视频 <video></video> 和列表 .video-list 放进同一个 display: flex 父容器时,常有人给视频写 flex: 1、列表也写 flex: 2。这看似合理,但实际会导致视频高度塌陷——因为 <video></video> 默认是替换元素,flex: 1 不会自动尊重其固有宽高比。
更可靠的做法是:视频区域单独设宽高比容器(如伪元素 + padding-top: 56.25%),再用 position: absolute 嵌入;列表区域用 flex: 1 占满剩余空间。两者都需包裹在 position: relative 的父容器内。
- 别对
<video></video>元素本身设height: 100%,它会覆盖aspect-ratio - 若用
aspect-ratio: 16 / 9,记得加min-height: 0防止某些 Safari 版本计算异常 - 列表项若用
display: contents优化 DOM 结构,需确认父容器未依赖其盒模型(比如设置了border)
Flex 布局做响应式播放列表,真正卡住人的从来不是语法,而是“哪个元素该承担尺寸控制权”——视频比例由容器控,列表换行由父容器控,单个项的高度由内容和溢出策略控。混用这些控制点,就容易互相打架。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











