使用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模拟jq点击事件的实例代码
Jul 06 HTML / CSS
利用CSS3的border-radius绘制太极及爱心图案示例
May 17 HTML / CSS
CSS3实现瀑布流布局与无限加载图片相册的实例代码
Dec 22 HTML / CSS
HTML5实现一个能够移动的小坦克示例代码
Sep 02 HTML / CSS
使用HTML5技术开发一个属于自己的超酷颜色选择器
Sep 22 HTML / CSS
推荐10个HTML5响应式框架
Feb 25 HTML / CSS
HTML5标签嵌套规则详解【必看】
Apr 26 HTML / CSS
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
Dec 16 HTML / CSS
Html5之自定义属性(data-,dataset)
Nov 19 HTML / CSS
H5 video poster属性设置视频封面的方法
May 25 HTML / CSS
浅谈amaze-ui中datepicker和datetimepicker注意的几点
Aug 21 HTML / CSS
CSS3 制作的悬停缩放特效
Apr 13 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
PHP 压缩文件夹的类代码
2009/11/05 PHP
php全角字符转换为半角函数
2014/02/07 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
js获取文件里面的所有文件名(实例)
2017/10/17 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
python多进程中的内存复制(实例讲解)
2018/01/05 Python
Django框架实现的分页demo示例
2019/05/25 Python
详解python中__name__的意义以及作用
2019/08/07 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
Python标准库json模块和pickle模块使用详解
2020/03/10 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
人事部专员岗位职责
2014/03/04 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
Python使用永中文档转换服务
2022/05/06 Python