使用CSS实现弹性视频html5案例实践


Posted in HTML / CSS onDecember 26, 2012

当我编码Elemin Theme(我最近设计的一个响应式的站点)的时候,我遇到的一个跳帧就是,如何能让嵌入式的视频在尺寸变化上变得更加灵活。使用max-width:100% 和height:auto可以让html5的video标签很好的工作,但是这个解决方案不适用于iframe 或者 object标签的内嵌代码。通过几小时的寻找资料和实验,我最终找到了解决办法。当你在进行响应式设计的时候,这一css技巧能派上用场。

灵活的html5 video标签
使用html5的video,可以通过设置max-width:100%让他变得灵活。前面的介绍中,已经提到他不适用于常用的iframe和object中的内嵌代码。

复制代码
代码如下:

video {
max-width: 100%;
height: auto;
}

灵活的Object & Iframe 内嵌视频
这个技巧相当简单,你需要为video添加一个<div>容器,并且将div的padding-bottom属性值设置在50%到60%之间。然后设置子元素(ifame或者object)的width和height为100%,并且使用绝对定位。这样会迫使内嵌对象自动扩充到最大。
CSS
复制代码
代码如下:

.video-container {
position: relative;
padding-bottom: 56.25%;
padding-top: 30px;
height: 0;
overflow: hidden;
}
.video-container iframe,
.video-container object,
.video-container embed {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}

HTML
复制代码
代码如下:

<div class="video-container">
<iframe src="http://player.vimeo.com/video/6284199?title=0&byline=0&portrait=0" width="800" height="450" frameborder="0"></iframe>
</div>

在固定宽度下实现灵活性
如果限制了视频的宽度,那么我们需要一个额外的<div>容器包裹video,并为div设置固定宽度和max-width:100%。
CSS
复制代码
代码如下:

.video-wrapper {
width: 600px;
max-width: 100%;
}

HTML
复制代码
代码如下:

<div class="video-wrapper">
<div class="video-container">
<iframe src="http://player.vimeo.com/video/6284199?title=0&byline=0&portrait=0" width="800" height="450" frameborder="0"></iframe>
</div>
<!-- /video -->
</div>
<!-- /video-wrapper -->

兼容性
这个技巧支持所有的浏览器,包括:Chrome, Safari, Firefox, Internet Explorer, Opera, iPhone 和 iPad。
HTML / CSS 相关文章推荐
CSS3伪类选择器:nth-child()
Apr 02 HTML / CSS
CSS3实现鼠标悬停显示扩展内容
Aug 24 HTML / CSS
CSS Houdini实现动态波浪纹效果
Jul 30 HTML / CSS
详解CSS3弹性伸缩盒
Sep 21 HTML / CSS
HTML5的Geolocation地理位置定位API使用教程
May 12 HTML / CSS
基于HTML5 Canvas 实现商场监控实例详解
Nov 20 HTML / CSS
HTML5: Web 标准最巨大的飞跃
Oct 17 HTML / CSS
HTML5页面中尝试调起APP功能
Sep 12 HTML / CSS
Html5实现首页动态视频背景的示例代码
Sep 25 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
May 19 HTML / CSS
关于flex 上下文中自动 margin的问题(完整例子)
May 20 HTML / CSS
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
Jul 01 HTML / CSS
HTML5中实现拖放效果无须借助javascript
Dec 26 #HTML / CSS
html5 application cache遇到的严重问题
Dec 26 #HTML / CSS
html5 web本地存储将取代我们的cookie
Dec 26 #HTML / CSS
html5之Canvas路径绘图、坐标变换应用实例
Dec 26 #HTML / CSS
html5声频audio和视频video等新特性详细说明
Dec 26 #HTML / CSS
html5-Canvas可以在web中绘制各种图形
Dec 26 #HTML / CSS
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
Dec 25 #HTML / CSS
You might like
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
PHP 验证码不显示只有一个小红叉的解决方法
2013/09/30 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
Vue路由跳转问题记录详解
2017/06/15 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
设计模式中的原型模式在Python程序中的应用示例
2016/03/02 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
求职信范文怎么写
2014/01/29 职场文书
大学生军训感想
2014/02/16 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
冬季安全检查方案
2014/05/23 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
交通安全教育心得体会
2016/01/15 职场文书
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
HTML中的表单元素介绍
2022/02/28 HTML / CSS
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL