html5视频铺满父容器需父容器有明确尺寸并用object-fit控制缩放;推荐设父容器为width:100vw;height:100vh;视频设width:100%;height:100%;object-fit:cover;并隐藏原生控件。

HTML5 的 <video></video> 标签本身不会自动铺满父容器,直接设 width: 100%; height: 100%; 往往无效或变形,关键在于**父容器要有明确尺寸**,且需处理视频的宽高比问题。
确保父容器有可计算的高度
如果父容器(比如 <div class="video-wrap">)没有显式高度,<code>height: 100% 就会失效(百分比高度依赖父级有固定高度)。常见解决方式:
- 给父容器设置具体高度,如
height: 400px;或height: 100vh;(视口全高) - 若想响应式铺满整个视口,推荐:
.video-wrap { width: 100vw; height: 100vh; position: relative; } - 避免父容器是
display: inline或浮动/绝对定位未设尺寸的元素
用 object-fit 控制视频拉伸方式
即使宽高设为 100%,视频默认会保持原始宽高比,可能留黑边。用 object-fit 精确控制铺满效果:
-
object-fit: cover;—— 等比缩放并裁剪,完全覆盖容器(最常用,类似背景图background-size: cover) -
object-fit: fill;—— 拉伸填满,可能变形 -
object-fit: contain;—— 等比缩放并完整显示,可能有上下/左右黑边
记得加浏览器兼容前缀(如需支持旧版 Safari):video { width: 100%; height: 100%; object-fit: cover; -o-object-fit: cover;}
隐藏原生控件干扰(可选)
如果用了 controls 属性,控件会占用空间、影响铺满效果。建议:
立即学习“前端免费学习笔记(深入)”;
- 移除
controls,自定义按钮(更可控) - 或用 CSS 隐藏控件条:
video::-webkit-media-controls { display: none; }(仅 WebKit,不推荐强依赖) - 更稳妥:用
controlslist="nodownload noremoteplayback"减少干扰,保留必要功能
完整示例(响应式全屏铺满)
以下代码让视频真正铺满整个视口,无黑边、不变形:
<div class="video-wrap">
<video autoplay muted loop>
<source src="video.mp4" type="video/mp4">
</video>
</div>
<style>
.video-wrap {
width: 100vw;
height: 100vh;
overflow: hidden;
}
.video-wrap video {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
</style>










