使用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 相关文章推荐
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
Feb 04 HTML / CSS
CSS3实现缺角矩形,折角矩形以及缺角边框
Dec 20 HTML / CSS
canvas像素画板的实现代码
Nov 21 HTML / CSS
HTML5 语音搜索(淘宝店语音搜素)
Jan 03 HTML / CSS
HTML5本地存储之Web Storage应用介绍
Jan 06 HTML / CSS
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
Jan 09 HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
Jun 09 HTML / CSS
举例详解HTML5中使用JSON格式提交表单
Jun 16 HTML / CSS
详解如何解决canvas图片getImageData,toDataURL跨域问题
Sep 17 HTML / CSS
html+js 实现markdown编辑器效果
Oct 23 HTML / CSS
canvas实现手机的手势解锁的步骤详细
Mar 16 HTML / CSS
AmazeUI中各种的导航式菜单与解决方法
Aug 19 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单态模式简单用法示例
2016/11/16 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
php实现文件上传基本验证
2020/03/04 PHP
可输入的下拉框
2006/06/19 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
AspNet中使用JQuery上传插件Uploadify详解
2015/05/20 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
angularjs 中$apply,$digest,$watch详解
2016/10/13 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
Python 变量类型及命名规则介绍
2013/06/08 Python
python算法学习之计数排序实例
2013/12/18 Python
实例讲解Python中的私有属性
2014/08/21 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
任命书范本大全
2014/06/06 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
校园运动会广播稿
2015/08/19 职场文书
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
vue ref如何获取子组件属性值
2022/03/31 Vue.js