使用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 相关文章推荐
image-set实现Retina屏幕下图片显示详细介绍
Dec 24 HTML / CSS
CSS3 制作绽放的莲花采用效果叠加实现
Jan 31 HTML / CSS
CSS3 display知识详解
Nov 25 HTML / CSS
非常漂亮的CSS3百叶窗焦点图动画
Feb 24 HTML / CSS
利用CSS3的线性渐变linear-gradient制作边框的示例
Jun 02 HTML / CSS
css3 盒模型以及box-sizing属性全面了解
Sep 20 HTML / CSS
详解Sticky Footer 绝对底部的两种套路
Nov 03 HTML / CSS
html5/css3响应式页面开发总结
Oct 16 HTML / CSS
如何避免常见的6种HTML5错误用法
Nov 06 HTML / CSS
关于h5中的fetch方法解读(小结)
Nov 15 HTML / CSS
详解CSS伪元素的妙用单标签之美
May 25 HTML / CSS
HTML页面点击按钮关闭页面的多种方式
Dec 24 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中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
jquery验证手机号是否正确实例讲解
2015/11/17 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
Python continue语句用法实例
2014/03/11 Python
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
Python脚本实现下载合并SAE日志
2015/02/10 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
用Python实现随机森林算法的示例
2017/08/24 Python
Python探索之创建二叉树
2017/10/25 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
医院护士的求职信
2014/01/03 职场文书
运动会方队口号
2014/06/07 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
社会发展项目建议书
2014/08/25 职场文书
课外科技活动总结
2014/08/27 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
2014年商场工作总结
2014/11/22 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android