《响应式Web设计:HTML5和CSS3实践指南》——1.3节基于cookie及JavaScript的响应式图像

1.3 基于cookie及JavaScript的响应式图像
使用复杂的服务器端逻辑也能实现响应式图像。有时因为一些特殊的需求,开发者往往不能够采取最简单的方法来实现特定的目标。之前提到的基于宽度百分比的方法依赖于客户端来实现对于大图像文件的缩放。而本方法则是在服务器端依据客户的请求,返回恰当大小的图像文件。如果你正为网页加载过慢导致的网站性能问题而烦恼,也许该方法能够给不堪重负的服务器负载和网络带宽带来一些改进。

1.3.1 准备工作
本条目所涉及的方法都需要在服务器端实现相应的功能。首先,服务器端需要提供PHP服务。其次,服务器端需要实现根据客户端的请求返回3张不同大小的图像的功能。

1.3.2 实现方式
下面的JavaScript代码比较简单,创建一个基于用户设备屏幕尺寸的cookie。当客户端请求服务器端的图像时,运行在服务器端的PHP服务便会依据该屏幕参数决定返回何种大小的图像。

现在通过你的图像编辑软件,打开一张尺寸较大的图像,然后保存两份较小尺寸的新图像。如果原始图像为300px,那么新图像的大小可以分别保存为200px和100px。然后分别命名为robot.png、robot-med.png及robot-low.png,并上传到images文件夹中。
最后很重要的一点,将下面的HTML文件存放到服务器端的文档根目录中:

虽然该方法只能根据屏幕大小返回特定的图像,并不完全是自适应的,但是该方法在服务器端提供与CSS媒介查询一样的功能。可以通过CSS给这些图片加上样式,或者使用JavaScript实现动画效果。将不同的方法结合在一起使用,能够更好地提供响应式内容。
本方法中所涉及的代码最初由我聪明的同行所创建,放置在http://www.html.it/articoli/responsive-images-con-i-cookie/上。

1.3.3 工作原理
首先HTML文件中创建cookie用以记录设备屏幕的尺寸。当向服务端发起获取图片的请求时,就如同PHP中的include声明一样。首先检查声明的文件是否存在,然后读取cookie中的屏幕尺寸,最后返回与之适配的图像资源。

时间: 2024-10-25 04:18:57

《响应式Web设计:HTML5和CSS3实践指南》——1.3节基于cookie及JavaScript的响应式图像的相关文章

《响应式Web设计:HTML5和CSS3实践指南》——导读

目 录 第1章 响应式元素及媒介1.1 简介 1.2 基于宽度百分比的图像缩放1.3 基于cookie及JavaScript的响应式图像 1.4 使视频自适应于屏幕宽度1.5 基于媒介查询的图像缩放 1.6 基于媒介查询的动态导航栏 1.7 基于尺寸的响应式内边距1.8 基于CSS3按钮的进度条 第2章 响应式字体 2.1 简介2.2 创建自适应的响应式字体2.3 使用画布实现文本阴影2.4 使用画布实现内侧阴影和外侧阴影 2.5 使用画布旋转文本2.6 使用CSS3旋转文本2.7 使用CSS3

《响应式Web设计:HTML5和CSS3实践指南》——1.1节简介

1.1 简介 响应式Web设计是自我学生时代BBS上出现ASCII字符图形至今,Web开发领域最让人感到兴奋的事情之一.HTML5.CSS3及jQuery给旧网络注入了新生命,给使用你应用程序的用户带来乐趣和兴奋.本章介绍的几个方法将会帮助你构建自己的响应式HTML元素及媒介. 这些方法有易有难.所涉及的响应式Web设计的各种元素代码均能在本书中找到,因此书中所提到的所有内容都是可以实现的.每一个响应式Web设计的方法都有助于优化网站展示,无论你的用户使用何种尺寸的何种设备,都会从中得到令其惊叹

《响应式Web设计:HTML5和CSS3实践指南》——1.6节基于媒介查询的动态导航栏

1.6 基于媒介查询的动态导航栏媒介查询不仅限于调整图像大小.可以使用媒介查询为访问者提供更加动态的网页.可以使用媒介查询显示一个基于不同屏幕尺寸的响应式菜单. 1.6.1 准备工作为了实现一个响应式菜单系统,我们将使用两个不同的菜单,为三种不同的浏览器窗口尺寸显示一个动态菜单. 1.6.2 实现方式对于较小的浏览器窗口,特别是对移动设备和平板电脑,创建一个简单的select菜单,其只占用少量的垂直空间.这个菜单为导航选项使用了HTML中的form元素,通过触发JavaScript代码来加载选择

《响应式Web设计:HTML5和CSS3实践指南》——2.5节使用画布旋转文本

2.5 使用画布旋转文本HTML5中的画布元素不只是能给文本着色或者添加阴影,你也可以用它来移动或操作位于画布区域中的元素对象.在本节中,我们将旋转位于画布中的元素对象. 2.5.1 准备工作学习本节需要掌握之前的几节.如果跳过了之前的几节也没关系,你还可以参照完整代码来学习. 2.5.2 实现方式一旦你完成了之前技巧中的画布设置步骤,那么实现旋转的基本步骤很简单.在函数开头添加一个rotate方法的调用. 效果如下图所示. 2.5.3 工作原理JavaScript能够通过rotate方法来旋转

《响应式Web设计:HTML5和CSS3实践指南》——1.4节使视频自适应于屏幕宽度

1.4 使视频自适应于屏幕宽度 流媒体视频同样可以为响应式的.在HTML5页面中嵌入响应式视频是一件非常简单的事情.如video标签支持百分比的宽度设置,但是问题在于,该方案需要网站主机拥有对应的视频源.如果已经有视频源,那么一切都易如反掌. 不过,使用视频托管网站(如YouTube或Vimeo)比自己托管更具优势.首先,自己的托管服务器可能会受到带宽或磁盘空间的限制.其次,相比于使用自己的托管服务器,使用视频托管网站上传可用的Web视频的整个过程更加便捷. 1.4.1 准备工作 视频托管网站允

《响应式Web设计:HTML5和CSS3实践指南》——1.5节基于媒介查询的图像缩放

1.5 基于媒介查询的图像缩放媒介查询是针对响应式图像的另一个有用和高度可定制的方法.这与通过设置宽度百分比来实现自适应宽度的方法并不相同.你的设计可能需要为不同的屏幕尺寸范围准备一些具体的图像宽度,而自适应宽度会打破你的设计. 1.5.1 准备工作这种方式仅仅需要一张图像.而且在客户端浏览器调整图像,而不是在服务器端. 1.5.2 实现方式HTML代码相当简单,使用标准的图像标签创建一个图像元素,如下所示: 将CSS中的这个类添加到每个媒介查询中,所对应设置的尺寸都不相同.这将会使浏览器针对每

《响应式Web设计:HTML5和CSS3实践指南》——1.8节基于CSS3按钮的进度条

1.8 基于CSS3按钮的进度条 和其他网站一样,你的网站也需要去迎合那些急性子的用户.如果你的网站有一个可提交的表单,访客可能会不耐烦地多次单击"提交"按钮,因为你的页面加载新内容不够快.这可能会导致一个问题,就是表单多次提交同样的数据. 1.8.1 准备工作 为了防止这种行为,可以添加一些简单的视觉提示,告诉用户后台正在处理,请保持耐心.如果效果比较华丽,甚至可以给他们匆忙的生活增添点阳光.这个方法不需要任何图像,只需要使用CSS创建一个漂亮的渐变式提交按钮.本节内容很长,你可以先

《响应式Web设计:HTML5和CSS3实践指南》——1.2节基于宽度百分比的图像缩放

1.2 基于宽度百分比的图像缩放本方法依赖于客户端编码来完成对于大图像的缩放功能.客户端只需单张图像来依据浏览器的窗口大小呈现图像.如果对于客户端的网络带宽有足够的信心,确信该操作不会使得页面加载变慢,那么本方法是比较可行的. 1.2.1 准备工作毫无疑问我们需要一张图像.使用Google的图像搜索来获取一张高分辨率的图像.例如,搜索 robots,将会得到158 000 000条记录,还不错的结果.但是想要的是一张大尺寸的图像,因此单击Search tools选项,然后将Any Size选项改

《响应式Web设计:HTML5和CSS3实践指南》——2.7节使用CSS3制作3D文本

2.7 使用CSS3制作3D文本在前几节中,我们使用画布元素创建了投影.斜面以及内侧阴影.使用CSS3可以让文本真的站起来.使用CSS3的text-shadow属性,可以让文本看起来好像伸出屏幕来面对用户. 2.7.1 准备工作如果你想直接跳过本节,你可以从Packt Publishing的网站上下载代码.否则,如果你想边学边做,那就一起来创建属于你自己的3D文本吧.下面将通过组合多个CSS3的阴影效果来实现3D特效. 2.7.2 实现方式在IDE中,创建一个在body元素中只有一个header