应式Web设计(Responsive Web design)的理念是,页面的设计与开发应当根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整。具体的实践方式由多方面组成,包括弹性网格和布局、图片、CSS media query的使用等。
无论用户正在使用笔记本还是iPad,我们的页面都应该能够自动切换分辨率、图片尺寸及相关脚本功能等,以适应不同设备;
换句话说,页面应该有能力去自动响应用户的设备环境。这样,我们就可以不必为不断到来的新设备做专门的版本设计和开发了。
几年前,弹性布局(flexible layout)几乎是一种奢侈品,所谓弹性,也只是体现在竖排布局以及字号等方面;图片始终可以轻易的破坏页面结构,而且即使是哪些弹性的元素结构,在很极端的情况下,仍会破坏布局。所以,所谓的弹性布局其实并非那样弹性,它有时甚至不能适应台式机与笔记本的屏幕分辨率差异,更不用说手机等移动设备了。
该实例的实现方式完美的结合了液态网格和液态图片技术,并且聪明的在正确的地方使用了正确的HTML标记。"液态网格"是一种很常见的实践方式;对于"液态图片"技术,下面的文章做了不错的介绍
===========
弹性图片
响应式Web设计的思路中,一个重要的因素是怎样处理图片方面的问题。有很多同比缩放图片的技术,其中有不少是简单易行的。其中,由Richard Rutter最先尝试的一种做法比较流行,即使用CSS的max-width属性。这个方法在Ethan Marcotte的液态图片一文中也有提到。
img { max-width: 100%;}
只要没有其他涉及到图片宽度的样式代码覆盖掉这一行规则,页面上所有的图片就会以其原始宽度进行加载,除非其容器可视部分的宽度小于图片的原始宽度。上面的代码确保图片最大的宽度不会超过浏览器窗口或是其容器可视部分的宽度,所以当窗口或容器的可视部分开始变窄时,图片的最大宽度值也会相应的减小,图片本身永远不会容器边缘隐藏和覆盖。实际上,就像Jason Grigsby在他的CSS Media Query for Mobile is Fool's Gold一文中提到的,"液态图片背后的思路,就是无论何时,都确保在其原始宽度范围内,以最大的宽度同比完整的显示图片。我们不必在样式表中为图片设置宽度和高度,只需要让样式表在窗口尺寸发生变化时辅助浏览器对图片进行缩放。" 一种简而美的方法。
图片本身的分辨率及加载时间是另外一个需要考虑的问题。虽然通过上面的方法,可以很轻松的缩放图片,确保在移动设备的窗口中可以被完整浏览,但如果原始图片本身过大,便会显著降低图片文件的下载速度,对存储空间也会造成没有必要的消耗。
响应式图片
由Filament Group提出的"响应式图片"技术思想,有助于解决上面提到的问题:不仅要同比的缩放图片,还要在小设备上降低图片自身的分辨率。可以看下demo页面先。
这个技术的实现需要使用几个相关文件,我们可以在Github上获取。包括一个JavaScript文件(rwd-images.js),一个.htaccess文件,以及一些范例资源文件。具体使用方法可以参考Responsive Images的说明文档。大致的原理是,rwd-images.js会检测当前设备的屏幕分辨率,如果是大屏幕设备,则向页面head部分中添加BASE标记,并将后续的图片、脚本和样式表加载请求定向到一个虚拟路径"/rwd-router"。当这些请求到达服务器端,.htacces文件会决定这些请求所需要的是原始图片还是小尺寸的"响应式图片",并进行相应的反馈输出。对于小屏幕的移动设备,原始尺寸的大图片永远不会被用到。
这项技术支持多数的现代浏览器,包括IE8+、Safari、Chrome和Opera,以及这些浏览器的移动设备版本;在FireFox及一些旧浏览器中,则会优雅降级:我们仍可得到小图片的输出,但同时,原始大图也会被下载。
禁用iPhone中的图片自动缩放
在iPhone及iPod Touch中,页面会被自动的同比例缩小至最适合屏幕大小的尺寸,x轴不会产生滚动条,用户可以上下拖拽浏览全部页面,或在需要的时候放大页面的局部。这里会产生一个问题,即使我们运用响应式Web设计的思想,专门为iPhone的小屏输出小图片,它同样会随着整个页面一起被同比例缩小,如下图左侧所示。
我们可以使用苹果专有的一些meta标记来解决类似的问题。在页面的部分添加以下代码(详情可以参考Think Vitamin的相关文章):
- <meta name="viewport" content="width=device-width; initial-scale=1.0">
将initial-scale的值设定为"1",即可覆写默认的缩放方式,保持原始的尺寸及比例。更多关于viewport meta标记的用法,可以参考苹果官方的文档。
相关推荐
在HTML5中,响应式设计得到了增强和支持。HTML5引入了一些新的元素,如`<header>`、`<nav>`、`<section>`、`<article>`等,这些元素有助于构建更加语义化的网页结构,为响应式布局提供了良好的基础。同时,HTML5的...
响应式Web设计是一种现代网页设计方法,...总的来说,通过学习这本书,你不仅可以掌握响应式设计的基本原理,还能深入了解HTML5和CSS3的新特性和最佳实践,从而在移动优先的设计理念下,创造出既美观又实用的现代网页。
【Python基于Django购物网站HTML5响应式设计源码案例设计】 这个压缩包包含的是一套完整的基于Python的Django框架构建的购物网站源码,其中融入了HTML5的响应式设计,使得网站能够在不同设备上自适应显示,提供优秀...
本文通过分析响应式布局网页的设计要求,结合 HTML5、CSS3 和 jQuery 技术的应用特点,对响应式布局网页中的文字设计、图片设计和媒体查询设计的要点进行了研究,并对其中的智能化处理设计方法进行了探讨。...
通过学习,开发者不仅可以掌握响应式设计的基本原理,还能了解如何利用HTML5和CSS3的最新特性构建适应多平台的高性能网站。这不仅对于个人职业发展至关重要,也是满足当今互联网用户多样化需求的必要技能。
关于网页布局的设计, HTML 响应式 Web 设计,响应式 Web 设计让你的网页能在所有设备上有好显示。 响应式 Web 设计只使用 HTML 和 CSS。 响应式 Web 设计不是一个程序或Javascript脚本。
HTML5响应式设计是现代网页开发中的核心技术,它使得网站能够根据用户设备的不同屏幕尺寸和方向自动调整布局、内容和功能。"HTML5响应式设计公司模板" 是一种专为公司或企业设计的网站模板,它充分利用了HTML5的新...
本源码提供了一个基于Html的JPress官网响应式HTML模板设计。项目包含49个文件,其中包括10个JPG图片、7个CSS样式文件、7个PNG图片、5个JavaScript文件、5个HTML文件、2个Gitignore文件、1个XML文件、1个LICENSE文件...
在给定的压缩包文件中,"响应时布局一列.html"可能是一个展示如何用响应式设计处理单一列布局的示例,而"基于HTML5的响应式Web设计.pptx"可能是关于HTML5在响应式设计中的应用的讲解,可能包含了新的HTML5标签(如`...
在这个响应式网站中,HTML代码会包含各种响应式设计的标记,如`<meta>`标签中的视口设置(`, initial-scale=1">`),这有助于在移动设备上正确显示网站。此外,HTML文件可能会使用`<div>`元素和类名来定义响应式的...
在“响应式设计例子”这个压缩包中,我们很可能会找到一系列HTML、CSS和JavaScript文件,它们共同协作实现了一个响应式网站的演示。 1. 媒体查询:媒体查询是响应式设计的核心组成部分,它允许开发者针对不同的设备...
Python基于Django购物网站HTML5响应式设计毕业源码+mysql+毕业设计.zipPython基于Django购物网站HTML5响应式设计毕业源码+mysql+毕业设计.zipPython基于Django购物网站HTML5响应式设计毕业源码+mysql+毕业设计....
HTML5响应式设计是现代网页开发的关键技术,它使得网站能够根据用户设备的屏幕尺寸和方向自动调整布局、内容和功能。在这个标题为"HTML5响应式网络科技公司网站模板"的资源中,我们可以期待找到一系列专为科技公司...
本篇文章将深入探讨响应式设计的核心知识点,包括基础布局、页面美化和响应式技术。 首先,我们要了解HTML5中的基础布局结构。常见的布局方式包括div-ul-li布局、div-dl-dt-dd布局、div-table-tr-td布局以及div-...
《响应式Web图形设计》以创建响应式Web的角度,介绍了基础的HTML和CSS语法,并深入研究了响应式Web设计中色彩、布局、图像、排版、动画、视频和音频等方面的内容。, 《响应式Web图形设计》结构整、轻松易懂,能够...
响应式网页设计的HTML网站源码是当今网络发展的趋势。它通过灵活的布局和自适应的设计,确保了网站在各种设备上都能提供最佳的观看体验。这套源码适用于不同规模的项目,无论是个人博客、企业宣传还是电子商务平台,...
在响应式设计中,HTML(超文本标记语言)是构建网页的基础,它与CSS(层叠样式表)和JavaScript一起工作,创建出适应不同设备的页面。HTML5是目前广泛使用的版本,提供了更多语义化的元素,有助于提高网页的可读性...
HTML5和CSS3是实现响应式设计的关键技术。在“响应式Web设计HTML5和CSS3实战”中,我们将深入探讨如何利用这两种强大的工具来创建灵活、适应性强的网站。 HTML5是超文本标记语言(HTML)的最新版本,引入了许多新...