[转]响应式WEB设计学习(2)—视频能够做成响应式吗
原文地址:http://www.jb51.net/web/70361.html
上集回顾:
昨天讲了页面如何根据不同的设备尺寸做出响应。主要是利用了@media命令以及尺寸百分比化这两招。
上集补充:
其中,利用以下CSS设置让图片或视频大小不超过设备屏幕的宽度:
代码如下:
max-width:100%;
}
这一语句一般加在@media screen and (max-width:481)的判断内,主要是让手机用户在查看网页时图片不至于比手机屏幕还大。
这一招在《Head First Moblie Web》中被称为“Fluid Image Technique”。
视频能够做成响应式吗?
除了图片以外,还有一种常见的多媒体形式是视频。有时在web设计中,根据需要会在页面中加入视频,一般视频都是上传到youtube、土豆/优酷、新浪等网站上后,再用链接的形式加入到我们的网页中。
为什么在iphone上看不到youtube视频?(在境外)
在IOS上查看网页视频时,在不越狱安装插件的情况下,是没法看flash格式的视频的,因为iphone上的浏览器不支持Adobe
Flash,这跟苹果等公司的商业竞争政策有关,咱也没办法。对于这一问题,使用youtube视频源的web设计有一个解决方案,就是将原来嵌套在网页
中的object embed格式的代码段替换成新的代码段。
如,旧的页面嵌套代码段为:
代码如下:
width="230" height="179" type="application/x-shockwave-flash"
data="http://www.youtube.com/v/O-jOEAufDQ4?fs=1&h1=en_US&rel=0"><embed
src=... /></object>
将其替换为:
代码如下:
可以看到,两个视频的出路其实是不同的,youtube将用于移动设备显示的嵌入型视频放在embed目录下,这样大部分的移动设备就可以正常观看视频了。
国内的视频源可以用<iframe>这一招吗?
分别截取土豆和sina的各一段嵌入式视频代码可以看到用的都是object embed方式:
土豆:
代码如下:
src="....swf"
type="application/x-shockwave-flash"
allowscriptaccess="always"
allowfullscreen="true"
wmode="opaque"
width="480" height="400"></embed>
sina:
代码如下:
<param name='allowScriptAccess' value='always' />
<embed pluginspage='http://www.macromedia.com/go/getflashplayer'
src='....swf'
type='application/x-shockwave-flash'
allowScriptAccess='always'
allowFullScreen='true'
name='sinaplayer'
width='480' height='370'></embed>
</object></div>
两者的参数设置也差不多,不过土豆的代码要简洁很多。
现在,用<iframe>代码块将土豆视频地址包起来,放入测试页面中,会发生一个问题:

(这是图片哦……)
不能全屏了……这是因为单独截取了播放地址,而与flash有关的例如allowFullScreen等设置都被抛弃了。那么用iframe这个方法显然就有两个问题了:
一是片源格式没有改变,还是swf格式,仍然不能被不支持Adobe Flash的手机播放。
二是因为丢失了flash播放器的参数设置,而丧失了部分功能。
这样显然是不能接受的。
对于第一点,只能期待视频网站使用更通用的视频格式来规避各个硬件厂商之间商业竞争带来的副作用;对于第二点,我们将继续使用object
embed的方式,因为手机看不到flash格式的亲们已经找到了各种破解、插件来弥补了,所以web设计者在没有更通用片源格式的情况下,还是沿用之前
的方式好了。
但是,视频格式的大小一般是固定的,只使用CSS而不使用javascript很难动态的根据设备的大小或者浏览器当前的尺寸来动态改变。就视频的
宽度(width)而言,是可以设置成百分比的形式,如设置成容器的80%,那么该视频就会一直占其所在容器的80%的宽度,但是高度(height)就
无法设定了,因为一般人都不会按比例去缩放浏览器窗口。要么是拉窄点,要么是缩短点。所以,靠百分比的方式来保证视频尺寸的缩放不太现实。
在这样的前提下,还是希望视频就保持一定的尺寸,而网页的其他部分根据浏览器的大小动态改变布局。
如视频所示:
可以看到,在拉动浏览器的整个过程中,视频的尺寸是不改变的,直到浏览器的宽度小于视频的宽度时,视频的宽度才变小(使用了上面提到的Fluid Image Technique)。
制作整个效果没有什么新的技巧,也就是将CSS的尺寸判断又两种变成了三种而已。具体的可以看演示代码。
总结:
视频大小的自适应单靠CSS本身似乎是做不到的。而希望移动设备可以正常的观看页面视频还期待于视频网站使用更通用的视频格式而不是flash……
最后拿一个书中的公式收尾吧RWD = Fluid-grid layouts + CSS media queries + Fluid Image/Media + a state of mind
大意是响应式设计 = 流式网格布局 + @media语句 + 流式图片/媒体 + 设计者的意识
[转]响应式WEB设计学习(2)—视频能够做成响应式吗的更多相关文章
- [转]响应式WEB设计学习(1)—判断屏幕尺寸及百分比的使用
原文地址:http://www.jb51.net/web/70360.html 现在移动设备越来越普及,用户使用智能手机.pad上网页越来越普遍.但是传统的fix型的页面在移动终端上无法很好的显示.因 ...
- [转]响应式WEB设计学习(3)—如何改善移动设备网页的性能
原文地址:http://www.jb51.net/web/70362.html 前言 移动设备由于受到带宽.处理器运算速度的限制,因而对网页的性能有更高的要求.究竟是网页中的何种元素拉低了网页在移动设 ...
- 最佳的 14 个免费的响应式 Web 设计测试工具
一旦你决定要搭建一个网站就应该已经制定了设计标准.你认为下一步该做什么呢?测试!我使用“测试”这个词来检测你网站对不同屏幕和浏览器尺寸的响应情况.测试在响应式网页设计的过程中是很重要的一步.如果你明白 ...
- Web开发——HTML基础(HTML响应式Web设计 Bootstrap)
参考: 参考:http://www.bootcss.com/ 目录: 1.什么是响应式 Web 设计? 2.创建自己的响应设计 3.使用 Bootstrap 1.什么是响应式 Web 设计? RWD ...
- HTML5、CSS3与响应式Web设计入门(1)
HTML5与CSS3已经当仁不让的成为了这两年Web界最火爆的词,他们似乎在HTML4和CSS2统治了Web很多年之后的某一天突然爆发,然 后一直占据着所有Web开发者的视野.HTML5本身就是一个很 ...
- 《响应式Web设计实践》学习笔记
原书: 响应式Web设计实践 目录: 第2章 流动布局 1. 布局选项 2. 字体大小 3. 网格布局 4. 混合固定宽度和流动宽度 第3章 媒介查询 1. 视口 2. 媒介查询结构 3. 内嵌样式与 ...
- 学习之响应式Web设计---一个实例
周末闲来无事,做了一个响应式设计的例子.当然,由此并不能窥见响应式设计真谛之一斑.但,对于初次接触响应设计,对于响应式设计的概念依旧模糊不清的同学来说,或许是个启蒙! 闲语暂且不表,进入正题,这里没有 ...
- <HTML5和CSS3响应式WEB设计指南>译者序
"不是我不明白,这世界变化快."崔健的这首歌使用在互联网领域最合适不过.只短短数年的功夫,互联网的浪潮还没过去,移动互联网的时代已经来临.人们已经习惯将越来越多的时间花在各种移动设 ...
- css014 响应式web设计
css014 响应式web设计 一. 响应式web设计基础知识 1.rwd的三大理念:a.用于布局的弹性网络, b.用于图片和视频的弹性媒体,c.为不同屏幕宽度创建的不同样式的css媒体查询. ...
随机推荐
- 使用jMeter测试Solr服务接口
之前一直用ab做简单的服务接口测试,ab功能强悍,使用简单,但是没有生成专题图和表格等功能,因此,我们决定使用jmeter来作为我们测试工具.接下来,我们将详细介绍jmeter使用的步骤,主要包括:j ...
- Nodejs 请求转发代理
var sendPromise = function (res, callback) { var options = { hostname: settings.Ip, port: settings.P ...
- import
避免类名混淆: 区分有包名的类,如果一个源文件引入了两个包中同名的类,那么在使用该类时,不允许省略包名,如引入了tom.jiafei包中的AA类和sun.com包中的AA类,那么程序在使用AA类时必须 ...
- PHP 图片处理PNG颜色丢失
根据需求做一个用户点击测试桃花运的小程序.在开发中需要使用PHP进行开发,原理是将用户的姓名通过php的图片处理写入图片中,此处遇到一巨坑. 就是png图片在调用 imagecolorallocate ...
- AngularJs 时间格式化处理
1.AngularJs的controller中格式: var dateAsString = $filter('date')(item_date, "yyyy-MM-dd hh:mm:ss&q ...
- php加载xml编码错误,“Error: Input is not proper UTF-8, indicate encoding! ”
最近在给php中解析xml的时候,抛出一个错误: "Warning: DOMDocument::load(): Input is not proper UTF-8, indicate enc ...
- Permutation test 置换检验
来源:Public Library of Bioinformatics 显著性检验通常可以告诉我们一个观测值是否是有效的,例如检测两组样本均值差异的假设检验可以告诉我们这两组样本的均值是否相等(或者那 ...
- img加载在IE11,chrome,FF下的不同
IE11 img.complete 得不到img的大小,会使用img.onload chrome,ff:img.complete 得不到img的大小,会使用自己创建的img加载方法
- mac: vmware fusion中cent os启动假死的解决办法
环境: mac os X 10.9.2 + vmware 6.0.2 + cent OS 6.5 minimal 现象: Booting CentOS (2.6.32-358.e.l6.i686) i ...
- tkinter 的两个例子
第一个例子:after 用于定时操作 import tkinter as tk import time class MyApp(tk.Frame): def __init__(self, msecs= ...