使用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实现精美横向滚动菜单按钮
Apr 14 HTML / CSS
css3 iphone玻璃透明气泡完美实现
Mar 20 HTML / CSS
css3教程之倾斜页面
Jan 27 HTML / CSS
CSS3实现鼠标悬停显示扩展内容
Aug 24 HTML / CSS
css3的focus-within选择器的使用
May 11 HTML / CSS
html5 localStorage本地存储_动力节点Java学院整理
Jul 06 HTML / CSS
html5 input输入实时检测以及延时优化
Jul 18 HTML / CSS
HTML5新标签兼容——&gt; 的两种方法
Sep 12 HTML / CSS
html5+css如何实现中间大两头小的轮播效果
Dec 06 HTML / CSS
浅谈amaze-ui中datepicker和datetimepicker注意的几点
Aug 21 HTML / CSS
AmazeUI 等分网格的实现示例
Aug 25 HTML / CSS
详解CSS不定宽溢出文本适配滚动
May 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
PHP 采集获取指定网址的内容
2010/01/05 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
python 写入csv乱码问题解决方法
2016/10/23 Python
Python学习笔记之解析json的方法分析
2017/04/21 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
python实现狄克斯特拉算法
2019/01/17 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
求网格中的黑点分布
2013/11/06 面试题
行政助理的职责
2013/11/14 职场文书
完美的中文自荐信
2014/05/24 职场文书
学校教学工作总结2015
2015/05/19 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
7个关于Python的经典基础案例
2021/11/07 Python