原文地址:http://www.jb51.net/web/70361.html

上集回顾:

昨天讲了页面如何根据不同的设备尺寸做出响应。主要是利用了@media命令以及尺寸百分比化这两招。

上集补充:

其中,利用以下CSS设置让图片或视频大小不超过设备屏幕的宽度:

复制代码

代码如下:

img, object{
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格式的代码段替换成新的代码段。

如,旧的页面嵌套代码段为:

复制代码

代码如下:

<object
width="230" height="179" type="application/x-shockwave-flash"
data="http://www.youtube.com/v/O-jOEAufDQ4?fs=1&amp;h1=en_US&amp;rel=0"><embed
src=... /></object>

将其替换为:

复制代码

代码如下:

<iframe src="http://www.youtube.com/embed/O-jOEAufDQ4" style="max-width:100%"></iframe>

可以看到,两个视频的出路其实是不同的,youtube将用于移动设备显示的嵌入型视频放在embed目录下,这样大部分的移动设备就可以正常观看视频了。

国内的视频源可以用<iframe>这一招吗?

分别截取土豆和sina的各一段嵌入式视频代码可以看到用的都是object embed方式:

土豆:

复制代码

代码如下:

<embed
src="....swf"
type="application/x-shockwave-flash"
allowscriptaccess="always"
allowfullscreen="true"
wmode="opaque"
width="480" height="400"></embed>

sina:

复制代码

代码如下:

<div><object id='sinaplayer' width='480' height='370' >
<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)—视频能够做成响应式吗的更多相关文章

  1. [转]响应式WEB设计学习(1)—判断屏幕尺寸及百分比的使用

    原文地址:http://www.jb51.net/web/70360.html 现在移动设备越来越普及,用户使用智能手机.pad上网页越来越普遍.但是传统的fix型的页面在移动终端上无法很好的显示.因 ...

  2. [转]响应式WEB设计学习(3)—如何改善移动设备网页的性能

    原文地址:http://www.jb51.net/web/70362.html 前言 移动设备由于受到带宽.处理器运算速度的限制,因而对网页的性能有更高的要求.究竟是网页中的何种元素拉低了网页在移动设 ...

  3. 最佳的 14 个免费的响应式 Web 设计测试工具

    一旦你决定要搭建一个网站就应该已经制定了设计标准.你认为下一步该做什么呢?测试!我使用“测试”这个词来检测你网站对不同屏幕和浏览器尺寸的响应情况.测试在响应式网页设计的过程中是很重要的一步.如果你明白 ...

  4. Web开发——HTML基础(HTML响应式Web设计 Bootstrap)

    参考: 参考:http://www.bootcss.com/ 目录: 1.什么是响应式 Web 设计? 2.创建自己的响应设计 3.使用 Bootstrap 1.什么是响应式 Web 设计? RWD ...

  5. HTML5、CSS3与响应式Web设计入门(1)

    HTML5与CSS3已经当仁不让的成为了这两年Web界最火爆的词,他们似乎在HTML4和CSS2统治了Web很多年之后的某一天突然爆发,然 后一直占据着所有Web开发者的视野.HTML5本身就是一个很 ...

  6. 《响应式Web设计实践》学习笔记

    原书: 响应式Web设计实践 目录: 第2章 流动布局 1. 布局选项 2. 字体大小 3. 网格布局 4. 混合固定宽度和流动宽度 第3章 媒介查询 1. 视口 2. 媒介查询结构 3. 内嵌样式与 ...

  7. 学习之响应式Web设计---一个实例

    周末闲来无事,做了一个响应式设计的例子.当然,由此并不能窥见响应式设计真谛之一斑.但,对于初次接触响应设计,对于响应式设计的概念依旧模糊不清的同学来说,或许是个启蒙! 闲语暂且不表,进入正题,这里没有 ...

  8. <HTML5和CSS3响应式WEB设计指南>译者序

    "不是我不明白,这世界变化快."崔健的这首歌使用在互联网领域最合适不过.只短短数年的功夫,互联网的浪潮还没过去,移动互联网的时代已经来临.人们已经习惯将越来越多的时间花在各种移动设 ...

  9. css014 响应式web设计

    css014 响应式web设计 一.    响应式web设计基础知识 1.rwd的三大理念:a.用于布局的弹性网络, b.用于图片和视频的弹性媒体,c.为不同屏幕宽度创建的不同样式的css媒体查询. ...

随机推荐

  1. KSFramework:Unity3D开发框架快速入门

    KSFramework知识 https://github.com/mr-kelly/KSFramework KSFramework是一个整合KEngine.SLua和一些开发组件组成的全功能Unity ...

  2. 代码覆盖率工具 EMMA

    使用 EMMA 获得功能测试覆盖率 测试覆盖率是评价测试完整性的重要的度量标准之一. EMMA 是一个面向 Java 代码的测试覆盖率收集工具.在测试过程中,使用 EMMA 能使收集和报告测试覆盖率的 ...

  3. http协议(二)请求和响应报文的构成

    http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之 ...

  4. 改变input默认选中颜色

    修改 outline-color 属性即可实现

  5. 链剖&LCT总结

    在搞LCT之前,我们不妨再看看喜闻乐见的树链剖分. 树链剖分有一道喜闻乐见的例题:NOI2015 软件包管理器 如果你看懂题目了,你就会明白它是叫你维护一个树,这棵树是不会动的,要兹磁子树求和,子树修 ...

  6. 使用bootstrap-table简化CRUD

    1. 引入bootstrap-table资源包, 页首引用css, 页脚引用js 2. table 参数说明 data-toggle="table" data-toolbar=&q ...

  7. 01传智_jbpm与OA项目_整体项目架构

    oA项目: 项目结构如下:

  8. HTML <map> 设置图热点

    需要在一张图片中,设置一个区域为热点就用到了<map> 定义一个客户端图像映射.图像映射(image-map)指带有可点击区域的一幅图像. <img src="planet ...

  9. UML类图归纳

    作为一个程序员,掌握UML类图是开发和阅读程序的基础. 转载请注明地址http://www.cnblogs.com/zrtqsk/p/3739288.html,谢谢! 一.基本介绍 UML是一种标准的 ...

  10. 64位centos 下编译 hadoop 2.6.0 源码

    64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...