使用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 相关文章推荐
支持IE8的纯css3开发的响应式设计动画菜单教程
Nov 05 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
Jun 05 HTML / CSS
webapp字号大小跟随系统字号大小缩放的示例代码
Dec 26 HTML / CSS
html5 worker 实例(一) 为什么测试不到效果
Jun 24 HTML / CSS
实例讲解HTML5的meta标签的一些应用
Dec 08 HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
Jul 11 HTML / CSS
HTML5语义化元素你真的用对了吗
Aug 22 HTML / CSS
详解HTML5 Canvas标签及基本使用
Jan 10 HTML / CSS
html5自动播放mov格式视频的实例代码
Jan 14 HTML / CSS
Html5踩坑记之mandMobile使用小记
Apr 02 HTML / CSS
canvas版人体时钟的实现示例
Jan 29 HTML / CSS
css布局巧妙技巧之css三角示例的运用
Mar 16 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面向对象的使用教程 简单数据库连接
2006/11/25 PHP
PHP MVC模式在网站架构中的实现分析
2010/03/04 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
使用jquery自定义鼠标样式满足个性需求
2013/11/05 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
Javascript实现字数统计
2015/07/03 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
vscode下vue项目中eslint的使用方法
2019/01/13 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
用js编写留言板
2020/03/17 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
python sort、sorted高级排序技巧
2014/11/21 Python
Python脚本处理空格的方法
2016/08/08 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
三八妇女节寄语
2015/02/27 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS