使用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 和 HTML5 兼容速查表 图文
Apr 01 HTML / CSS
发现两个有趣的CSS3动画效果
Aug 14 HTML / CSS
一款纯css3实现的竖形二级导航的实例教程
Dec 11 HTML / CSS
利用HTML5+CSS3实现3D转换效果实例详解
May 02 HTML / CSS
浅谈CSS3 动画卡顿解决方案
Jan 02 HTML / CSS
css3实现元素环绕中心点布局的方法示例
Jan 15 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
Jul 11 HTML / CSS
html5教程画矩形代码分享
Dec 04 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
Feb 19 HTML / CSS
使用phonegap查找联系人的实现方法
Mar 31 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
Nov 19 HTML / CSS
HTML5拖拽文件上传的示例代码
Mar 04 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
php保存信息到当前Session的方法
2015/03/16 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
Javascript模块化编程详解
2014/12/01 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
值得学习的bootstrap fileinput文件上传工具
2016/11/08 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
原生js二级联动效果
2017/06/20 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
Python open()文件处理使用介绍
2014/11/30 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
Python语言生成水仙花数代码示例
2017/12/18 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
2019/06/19 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
本科生详细的自我评价
2013/09/19 职场文书
物流专业大学的自我评价
2014/01/11 职场文书
学历公证委托书
2014/04/09 职场文书
学生保证书范文
2014/04/28 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
天河观后感
2015/06/11 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
在Python中如何使用yield
2021/06/07 Python
nginx访问报403错误的几种情况详解
2022/07/23 Servers