HTML5标签video设置视频的宽度高度

本文探讨了HTML5中video标签的尺寸控制问题,详细解释了如何通过设置父元素宽高及使用object-fit属性使视频内容自适应。介绍了object-fit的五种取值及其效果,包括fill、contain、cover、none和scale-down。

HTML5中一般情况下video设置视频的宽度高度:

<video width="500" height="400" controls="controls">

但是有的时候发现设置了视频的高度却并没有发生变化,我们可以设置其父元素的宽高,让video填充满父元素。只要给video标签加上style="width:100%;height:100%;object-fit:fill"即可。

object-fit语法
object-fit:fill | contain | cover | none | scale-down
object-fit取值说明
object-fit主要适合于替换元素,比如:<video>、<object>、<img>、<input type="image">、<svg>、<svg:image>和<svg:video>等,其默认值为fill。
object-fill取值的说明如下:
fill:此值为boject-fit的默认值,替换内容的大小被设置为填充元素的内容框,也就是说,元素的内容扩大到完全填充容器的外形尺寸,即使这打破其内在的宽高比。
contain:替换元素内容大小保持长宽比例填充元素内容容器,其具体对象大小被解析为一个包含元素的宽度和高度。也就是说,如果你在替换元素上设置一个明确的高度和宽度,此值将导致内容大小,完全在固定的比例显示,但仍在元素尺寸内显示。
cover:替换元素内容大小保持长宽比例填充元素内容容器,其具体对象大小被解析为覆盖整个元素的宽度和高度。也就是说,替换元素内容大小保持长宽比,但改变宽度和高度,以便完全覆盖内容元素。
none:替换元素内容不调整大小以适应内部元素的容器,内容完全忽略设置在元素上的任何高度和权重,并且仍在元素尺寸内显示。
scale-down:当内容大小设置了non或contain,将导致具体对象变得更小。

### 设置 Vue 项目中的 `video` 标签以使其宽度高度自适应充满父级容器 为了实现这一目标,可以通过 CSS 来控制 `video` 的尺寸,确保其能够响应式地调整大小并完全填满父容器。以下是具体方法: #### 使用相对定位与百分比设定宽高 通过定义 `.divVideo` 类来创建一个具有特定宽高的占位符,并利用绝对定位让内部的 `<video>` 元素根据这个占位符的比例自动缩放。 ```css .divVideo { position: relative; width: 100%; height: 0; padding-bottom: 56.25%; /* 这里假设视频比例为16:9 */ } video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; /* 确保视频覆盖整个区域而不变形 */ } ``` 上述代码片段中设置了 `.divVideo` 容器的高度为零并通过底部填充 (`padding-bottom`) 控制最终显示出来的高度比率[^1]。对于嵌套在内的 `<video>` 节点,则采用全屏模式(`object-fit:cover`)使得内容既不会被裁剪也不会拉伸失真。 #### 应用于 Vue 组件 在 Vue 单文件组件 (SFC) 中应用这些样式非常简单,只需将上面提到的选择器加入到 `<style scoped>` 部分即可。同时,在模板部分添加相应的 HTML 结构如下所示: ```html <template> <div class="divVideo"> <video controls autoplay muted loop> <!-- 替换为你自己的mp4路径 --> <source src="@/assets/sample.mp4" type="video/mp4"/> Your browser does not support the video tag. </video> </div> </template> <style scoped lang="scss"> @import '@/styles/global.scss'; // 如果有全局样式的引入需求可选加这句 // 上述CSS代码粘贴到这里... </style> ``` 这样就可以保证无论屏幕分辨率如何变化,视频都会按照预期的方式呈现出来并且完美适配各种设备上的视窗大小。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值