使用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中的元素过渡属性transition示例详解
Nov 30 HTML / CSS
对CSS3选择器的研究(详解)
Sep 16 HTML / CSS
CSS3教程(3):border-color网页边框色彩
Apr 02 HTML / CSS
如何利用CSS3制作3D效果文字具体实现样式
May 02 HTML / CSS
浏览器实现移动端高性能css3动画(开启gpu加速)
Dec 23 HTML / CSS
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
Aug 08 HTML / CSS
css3选择器基本介绍
Dec 15 HTML / CSS
CSS3中box-shadow的用法介绍
Jul 15 HTML / CSS
利用CSS3实现的文字定时向上滚动
Aug 29 HTML / CSS
HTML5引入的新数组TypedArray介绍
Dec 24 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
Feb 25 HTML / CSS
使用CSS实现一个搜索引擎的原理解析
Sep 25 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添加MySQL数据记录代码
2008/06/07 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
如何在vue中使用ts的示例代码
2018/02/28 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
python实现2048小游戏
2015/03/30 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
分析Python读取文件时的路径问题
2018/02/11 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
详解分布式任务队列Celery使用说明
2018/11/29 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
深入了解Python在HDA中的应用
2019/09/05 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
学校食堂采购员岗位职责
2013/12/05 职场文书
银行职员个人的工作自我评价
2014/02/15 职场文书
经典毕业生求职信
2014/07/12 职场文书
元宵节寄语大全
2015/02/27 职场文书
高质量“欢迎词”
2019/04/03 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
jquery插件实现搜索历史
2021/04/24 jQuery
如何使用Python实现一个简易的ORM模型
2021/05/12 Python