使用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 相关文章推荐
详解CSS样式中的 !important * _ 符号
Mar 09 HTML / CSS
CSS3 渐变(Gradients)之CSS3 线性渐变
Jul 08 HTML / CSS
css3让div随鼠标移动而抖动起来
Feb 10 HTML / CSS
CSS3 中的@keyframes介绍
Sep 02 HTML / CSS
Html5剪切板功能的实现代码
Jun 29 HTML / CSS
HTML5重塑Web世界它将如何改变互联网
Dec 17 HTML / CSS
HTML5 离线应用之打造零请求、无流量网站的解决方法
Apr 25 HTML / CSS
仿CSDN Blog返回页面顶部功能实现原理及代码
Jun 30 HTML / CSS
逼真的HTML5树叶飘落动画
Mar 01 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
Jan 05 HTML / CSS
DIV CSS实现网页背景半透明效果
Dec 06 HTML / CSS
HTML中实现音乐或视频自动播放案例详解
May 30 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
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
js常见表单应用技巧
2008/01/09 Javascript
JavaScript国旗变换效果代码
2008/08/13 Javascript
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
Javascript如何判断数据类型和数组类型
2016/06/22 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
详解Nodejs之npm&amp;package.json
2017/06/15 NodeJs
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
2018/01/08 jQuery
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
Python常用内置函数总结
2015/02/08 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
python如何绘制疫情图
2020/09/16 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
大学生如何写自荐信
2014/01/08 职场文书
大专会计自我鉴定
2014/02/06 职场文书
《锄禾》教学反思
2014/04/08 职场文书
爱心活动计划书
2014/04/26 职场文书
公司外出活动方案
2014/08/14 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫
git中cherry-pick命令的使用教程
2022/06/25 Servers