使用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中的border-radius(边框圆角)示例代码
Jul 19 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
Feb 11 HTML / CSS
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
Oct 10 HTML / CSS
基于Jquery和Css3代码制作可以缩放的搜索框
Nov 19 HTML / CSS
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
Feb 27 HTML / CSS
基于DOM+CSS3实现OrgChart组织结构图插件
Mar 02 HTML / CSS
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
Mar 05 HTML / CSS
HTML5: Web 标准最巨大的飞跃
Oct 17 HTML / CSS
IE9对HTML5中部分属性不支持的原因分析
Oct 15 HTML / CSS
记一次高分屏下canvas模糊问题
Feb 17 HTML / CSS
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
Nov 10 HTML / CSS
使用HTML5加载音频和视频的实现代码
Nov 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
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
XENON基于JSON变种
2010/07/27 Javascript
javascript天然的迭代器
2010/10/29 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
javascript时间差插件分享
2016/07/18 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
2017/08/23 jQuery
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
django 读取图片到页面实例
2020/03/27 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
高级护理专业毕业生推荐信
2013/12/25 职场文书
物流仓管员工作职责
2014/01/06 职场文书
社区两委对照检查材料
2014/08/23 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
财产分割协议书范本
2014/11/03 职场文书
教师考核评语大全
2014/12/31 职场文书
Mysql Online DDL的使用详解
2021/05/20 MySQL