网站首页 > 教程分享 正文
方法一:使用 object-fit 属性
这是最简单且推荐的方法,通过 CSS 的 object-fit 属性,可以控制视频在容器内的填充方式,从而实现自适应。
HTML 代码:
CSS 代码:
.video-container {
width: 100%; /* 容器宽度占满父元素 */
height: auto; /* 容器高度根据视频比例自适应 */
}
.video-container video {
width: 100%;
height: 100%;
object-fit: contain; /* 视频保持比例,完整显示在容器内 */
}
object-fit 属性的常用值:
- contain:保持视频原有宽高比,完整显示在容器内,可能会出现留白。
- cover:保持视频原有宽高比,缩放视频以覆盖整个容器,可能会裁剪视频。
- fill:拉伸或压缩视频以填充整个容器,可能导致视频变形。
- none:视频保持原始尺寸,不进行缩放或裁剪。
- scale-down:如果视频尺寸小于容器,则按 none 处理;否则按 contain 处理。
方法二:使用 padding-bottom 实现等比例缩放
这种方法通过设置容器的 padding-bottom 值,使其高度始终保持与宽度一定的比例,从而实现视频的等比例缩放。
HTML 代码:
CSS 代码:
.video-wrapper {
width: 100%;
position: relative; /* 设置相对定位,为子元素绝对定位做准备 */
padding-bottom: 56.25%; /* 16:9 比例,可根据视频比例调整 */
height: 0;
}
.video-wrapper video {
position: absolute; /* 设置绝对定位,使其相对于父元素定位 */
top: 0;
left: 0;
width: 100%;
height: 100%;
}
注意事项:
- padding-bottom 的百分比值需要根据视频的宽高比来计算。例如,16:9 的视频比例,padding-bottom 值为 56.25%(9 / 16 * 100%)。
- 这种方法适用于需要保持视频宽高比的场景。
方法三:使用 JavaScript 动态计算高度
如果需要更复杂的自适应逻辑,可以使用 JavaScript 来动态计算视频容器的高度。
HTML 代码:
JavaScript 代码:
const videoContainer = document.querySelector('.video-container');
const video = videoContainer.querySelector('video');
video.addEventListener('loadedmetadata', function() {
const videoRatio = video.videoWidth / video.videoHeight;
videoContainer.style.height = videoContainer.offsetWidth / videoRatio + 'px';
});
window.addEventListener('resize', function() {
const videoRatio = video.videoWidth / video.videoHeight;
videoContainer.style.height = videoContainer.offsetWidth / videoRatio + 'px';
});
代码解释:
- loadedmetadata 事件:在视频元数据加载完成后触发,获取视频的原始宽高。
- resize 事件:在窗口大小改变时触发,重新计算视频容器的高度。
- videoRatio:视频的宽高比。
- videoContainer.offsetWidth:视频容器的宽度。
猜你喜欢
- 2025-03-14 17.CSS概念和语法(css概述与基本语法)
- 2025-03-14 2015年学习CSS3的15个高级免费教程
- 2025-03-14 78官测:万代PG 独角兽高达2号机 报丧女妖
- 2025-03-14 CSS Grid 布局终极指南:从入门到精通的速查表
- 2025-03-14 使用这些不太常用的CSS属性,布局效率上又提高了一个层次
- 2025-03-14 掌握这些CSS知识点,Coding如飞(css术语)
- 2025-03-14 CSS中px, vw, vh单位(css单位rem)
- 2025-03-14 一个简单的CSS属性助你实现页面的等比例缩放,快来学习一下吧
你 发表评论:
欢迎- 最近发表
-
- IT之家学院:使用PIN或密码审批管理员权限
- Yarn 安装的时候提示错误 error:0308010C:digital envelope routines
- Windows常用的一些CMD运行命令(windows常见的命令)
- 电脑忘记开机密码10秒解决(戴尔电脑忘记开机密码10秒解决)
- 如何下载Windows 10聚焦提供的锁屏壁纸
- Windows CMD 命令大全:简单粗暴收藏!
- 系统小技巧:解决CHKDSK只读模式问题
- Windows的cmd都有哪些奇技淫巧?这22个CMD命令记得收藏起来!
- windows错误代码0x80072EE2?win10系统更新错误问题的处理方法
- Windows 10技术预览版快捷键方式汇总
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)