三个步骤实现响应式web

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

响应式Web组员:孙慧张瑞刘健谭旭龙1.响应式Web的设计理念2.响应式Web是怎样进行3.什么情况下适宜采用响应式Web设计方式4.三个步骤实现响应式web响应式Web的设计理念眼下,几乎每个新客户都希望他们的网站可以有专门的移动设备版本。最完美的情况呐,就是为iPhone、iPad、黑莓、Kindle……各自打造一款——页面分辨率还必须兼容任何设备。谁知道未来5年内我们还需要为多少新发明的设备设计开发不同版本的页面?这种疯狂什么时候算个头?在Web设计和开发领域,我们很快就会发现,要跟上新产品出现的速度,是很难做到的。对于很多站点来说,根本不可能为每一个有着新分辨率的新产品设计一个移动端版本。那么,我们真的是鱼和熊掌不可兼得,必须舍弃用某种设备的用户换来使用另外一种设备的用户吗?或者还有新的方法?响应式Web的理念•页面的设计与开发应当根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整。具体的实践方式由多方面组成,包括弹性网格和布局、图片、CSSmediaquery的使用等。无论用户正在使用笔记本还是iPad,我们的页面都应该能够自动切换分辨率、图片尺寸及相关脚本功能等,以适应不同设备;换句话说,页面应该有能力去自动响应用户的设备环境。这样,我们就可以不必为不断到来的新设备做专门的版本设计和开发了。-----摘自EthanMarcotte曾经在AListApart发表过一篇文章“ResponsiveWebDesign”(有求必应网页设计)显然,我们无法也无需使用运动传感器或是机器人技术,响应式Web设计更多需要的是抽象思维。好在,一些相关的概念已经得到了实践,比如液态布局、帮助页面重新格式化的mediaqueries和脚本等。但是响应式Web设计不仅仅是关于屏幕分辨率自适应以及自动缩放的图片等等,它更像是一种对于设计的全新思维模式。响应式Web是怎样进行响应式Web怎样进行?弹性图片响应式Web设计的思路中,一个重要的因素是怎样处理图片方面的问题。有很多同比缩放图片的技术,其中有不少是简单易行的。其中,由RichardRutter最先尝试的一种做法比较流行,即使用CSS的max-width属性。这个方法在EthanMarcotte的液态图片一文中也有提到。img{max-width:100%;}只要没有其他涉及到图片宽度的样式代码覆盖掉这一行规则,页面上所有的图片就会以其原始宽度进行加载,除非其容器可视部分的宽度小于图片的原始宽度。上面的代码确保图片最大的宽度不会超过浏览器窗口或是其容器可视部分的宽度,所以当窗口或容器的可视部分开始变窄时,图片的最大宽度值也会相应的减小,图片本身永远不会容器边缘隐藏和覆盖。实际上,就像JasonGrigsby在他的CSSMediaQueryforMobileisFool'sGold一文中提到的,液态图片背后的思路,就是无论何时,都确保在其原始宽度范围内,以最大的宽度同比完整的显示图片。我们不必在样式表中为图片设置宽度和高度,只需要让样式表在窗口尺寸发生变化时辅助浏览器对图片进行缩放。一种简而美的方法。图片本身的分辨率及加载时间是另外一个需要考虑的问题。虽然通过上面的方法,可以很轻松的缩放图片,确保在移动设备的窗口中可以被完整浏览,但如果原始图片本身过大,便会显著降低图片文件的下载速度,对存储空间也会造成没有必要的消耗。•由FilamentGroup提出的响应式图片技术思想,有助于解决上面提到的问题:不仅要同比的缩放图片,还要在小设备上降低图片自身的分辨率。可以看下demo页面先•这个技术的实现需要使用几个相关文件,我们可以在Github上获取。包括一个JavaScript文件(rwd-images.js),一个.htaccess文件,以及一些范例资源文件。具体使用方法可以参考ResponsiveImages的说明文档。大致的原理是,rwd-images.js会检测当前设备的屏幕分辨率,如果是大屏幕设备,则向页面head部分中添加BASE标记,并将后续的图片、脚本和样式表加载请求定向到一个虚拟路径/rwd-router。当这些请求到达服务器端,.htacces文件会决定这些请求所需要的是原始图片还是小尺寸的响应式图片,并进行相应的反馈输出。对于小屏幕的移动设备,原始尺寸的大图片永远不会被用到。•这项技术支持多数的现代浏览器,包括IE8+、Safari、Chrome和Opera,以及这些浏览器的移动设备版本;在FireFox及一些旧浏览器中,则会优雅降级:我们仍可得到小图片的输出,但同时,原始大图也会被下载•当页面所需要适应的不同设备的屏幕尺寸差异过大时,除了图片方面,我们也应该考虑到整个布局结构的响应式调整;我们可以使用独立的样式表,或者更有效的,使用CSSmediaquery。这不会引起多大的麻烦,多数样式设定不会被影响和改变,只有一些特定的元素会通过浮动、宽度和高度等的设置来改变位置。•我们可以使用一个默认主样式表来定义页面的主要结构元素,比如#wrapper、#content、#sidebar、#nav等的默认布局方式,以及一些全局性的配色和字体方案。•我们可以监测页面布局随着不同的浏览环境而产生的变化,如果它们变的过窄过短或是过宽过长,则通过一个子级样式表来继承主样式表的设定,并专门针对某些布局结构进行样式覆写。我们来看下代码示例:••下面的代码可以放在默认主样式表style.css中:•/*Defaultstylesthatwillcarrytothechildstylesheet*/•html,body{•background...•font...•color...•}•h1,h2,h3{}•p,blockquote,pre,code,ol,ul{}•/*Structuralelements*/•#wrapper{•width:80%;•margin:0auto;•background:#fff;•padding:20px;•}•#content{•width:54%;•float:left;•margin-right:3%;•}•#sidebar-left{•width:20%;•float:left;•margin-right:3%;•}#sidebar-right{•width:20%;•float:left;•}•下面的代码可以放在子级样式表mobile.css中,专门针对移动设备进行样式覆写:•#wrapper{•width:90%;•}•#content{•width:100%;•}•#sidebar-left{•width:100%;•clear:both;•/*Additionalstylingforournewlayout*/•border-top:1pxsolid#ccc;•margin-top:20px;•}•#sidebar-right{•width:100%;•clear:both;•/*Additionalstylingforournewlayout*/•border-top:1pxsolid#ccc;•margin-top:20px;•}•大致的视觉效果如下图所示:•显示或隐藏内容•通过前文的学习,我们已经了解到,对于响应式Web设计,同比例缩减元素尺寸以及调整页面结构布局,是两个重要的方式方法。但是对于页面中的文字内容信息来说,则不能简单的只从同比缩小和调整布局结构这两方面去处理。对于手机等移动设备来说,在文字内容方面,已经有了很多最佳实践方式和指导原则:简化的导航、更易聚焦的内容、以信息列表代替传统的多行文案内容等。触屏与鼠标•触屏设备已经成为主流。虽然目前多数触屏设备还是小屏幕类型的产品,比如手机,但是市场上越来越多的大屏幕设备也开始使用触屏技术;且不说iPad一类的平板电脑,就连一些笔记本和台式机也加入了这一行列。比如HPTouchsmarttm2t,即使用传统的键鼠设备,同时也加入了触屏技术•相比于传统的基于鼠标指针的互动,触屏技术显然带来了截然不同的交互方式与相应的设计规范;两者又有各自所适用的领域。所幸,要使我们的设计方案同时满足这两类设备的规范,并非一件难事,只是有些地方需要注意。比如,触屏设备无法反映CSS定义的hover行为及相应的样式,因为它没有鼠标指针的概念,手指点击就是click行为。所以不要让任何功能依赖于对hover状态的触发。•有兴趣的话,可以读读这篇DesigningforTouchscreen,这里提到的很多建议即有利于改进针对触屏设备的设计方式,同时也不会削弱传统键鼠设备上的用户体验。比如,放在页面右侧的导航列表可以对触屏设备的用户更加友好。因为多数人习惯用右手点击操作,而左手负责握住设备;这样,放在右侧的导航列表即方便右手的点击,又可以避免被握着设备的左手不小心触碰到。而这一点与键鼠设备用户的习惯完全不矛盾。什么情况下适宜采用响应式Web设计方式你心里没谱设计开发一个全新的移动版本站点或是客户端应用,整个过程是有很大挑战性的。除非产品正式上线,否则你无法真正了解它是否会成功。与其单纯地为了移动化而花费资源打造移动版本站点或是开发客户端应用,不如先花些心思将原本的网站打造得更具弹性,使其在各种主流移动设备中都拥有尽量优秀的用户体验。要打造响应式站点,自然离不开有经验的交互、视觉设计及前端开发人员。所需的资源,尤其是时间方面,比起普通网站来说大约增加20%到30%的样子;但比起单独打造移动版本的网站,或是设计开发客户端应用的成本来说,却要低很多。从维护的角度来说,也会轻松很多。你想节约成本你希望网站可以兼容未来的新设备三个步骤实现响应式web基于CSS3的媒介查询(MediaQuery)特性使得网页适应不同设备Step1.Meta标签•大多数移动浏览器将HTML页面放大为宽的视图(viewport)以符合屏幕分辨率,此处使用视图的meta标签来进行重置•metaname=viewportcontent=width=device-width,initial-scale=1.0•IE8或者更早的浏览器并不支持MediaQuery。你可以使用media-queries.js或者respond.js来为IE添加MediaQuery支持。•!--[ifltIE9]•scriptsrc=•![endif]--Step2.HTML结构viewcssStep3.媒介查询-MediaQueries•CSS3MediaQuery-媒介查询是响应式设计的核心。它根据条件告诉浏览器如何为指定视图宽度渲染页面。•viewdemo•将所有的容器宽度从像素值设置为百分比以使得容器大小自适应。•媒介查询的目的在于为指定的视图宽度指定不同的CSS规则,来实现不同的布局。媒介查询可以写在同一个或者单独的样式表中。

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功