如何rem js 实现响应式式设计的几种常见方法

什么是响应式Web设计?怎样进行?
开始第一篇。老规矩,先无聊的谈论天气一类的话题。十一长假,天气也终于开始有些秋天的味道,坐在屋里甚至觉得需要热咖啡。话说两年前也是在国庆假期里开始做Joomla文档翻译的;长假好时光,总会可以抽出一两天,安静的窝在家里做做博客、学做些新东西,简直没有比这更舒心的事情。
说正事儿。准备在近期的几篇里集中翻译学习一下"响应式Web设计"的相关话题,包括概念、实践方式、案例及观点讨论等方面。相比于从前做的文档译文,这些文章篇幅要长的多(甚至要加分页了!),今天放上的这篇几乎花掉了两天的"闲暇时间";对耐力是个考验,努力提高喽。废话结束,here we go.
眼下,几乎每个新客户都希望他们的网站可以有专门的移动设备版本。最完美的情况呐,就是为iPhone、iPad、黑莓、Kindle&&各自打造一款&&页面分辨率还必须兼容任何设备。谁知道未来5年内我们还需要为多少新发明的设备设计开发不同版本的页面?这种疯狂什么时候算个头?
在Web设计和开发领域,很快的,我们将会无法跟上设备与分辨率革新的步伐。对于多数网站来说,为每种新设备及分辨率创建其独立的版本根本就是不切实际的;结果就是,我们将会赢得使用某些设备的用户群,而失去那些使用其他设备的用户。不过,或许会有另外一种方式,可以帮助我们避免这种情况的发生。
响应式Web设计(Responsive Web design)的理念是,页面的设计与开发应当根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整。具体的实践方式由多方面组成,包括弹性网格和布局、图片、CSS media query的使用等。无论用户正在使用笔记本还是iPad,我们的页面都应该能够自动切换分辨率、图片尺寸及相关脚本功能等,以适应不同设备;换句话说,页面应该有能力去自动响应用户的设备环境。这样,我们就可以不必为不断到来的新设备做专门的版本设计和开发了。
响应式Web设计的概念
Ethan Marcotte曾经在A List Apart发表过一篇文章"",文中援引了响应式建筑设计的概念:
最近出现了一门新兴的学科&&"响应式建筑(responsive architecture)"&&提出,物理空间应该可以根据存在于其中的人的情况进行响应。结合嵌入式机器人技术以及可拉伸材料的应用,建筑师们正在尝试建造一种可以根据周围人群的情况进行弯曲、伸缩和扩展的墙体结构;还可以使用运动传感器配合气候控制系统,调整室内的温度及环境光。已经有公司在生产"智能玻璃":当室内人数达到一定的阀值时,这种玻璃可以自动变为不透明,确保隐私。
将这个思路延伸到Web设计的领域,我们就得到了一个全新的概念。为什么一定要为每个用户群各自打造一套设计和开发方案?和响应式建筑相似,Web设计同样应该做到根据不同设备环境自动响应及调整。
显然,我们无法也无需使用运动传感器或是机器人技术,响应式Web设计更多需要的是抽象思维。好在,一些相关的概念已经得到了实践,比如液态布局、帮助页面重新格式化的media queries和脚本等。但是响应式Web设计不仅仅是关于屏幕分辨率自适应以及自动缩放的图片等等,它更像是一种对于设计的全新思维模式。
调整分辨率
不同的设备都有各自的屏幕分辨率、清晰度以及屏幕定向方式,不断被研发着的各种新设备也将带来新的屏幕尺寸规格。有些设备基于横屏(portrait),有些是竖屏(landscape),甚至还有正方形;对于日益流行的iPhone、iPad及其他一些智能手机、平板电脑,用户还可以通过转动设备来任意切换屏幕的定向方式。怎样才能做到让一种设计方案满足所有情况?
要想做到同时兼容横、竖屏(用户还有可能在页面加载的过程中切换方向),我们就必须考虑N种屏幕尺寸规格。诚然,我们可以将这些规格划分为几个大类,然后为每一类做一种方案,确保该方案至少在本组中尽量具有弹性。但即使这样,结果也将是无比焦虑的,谁知道某类设备在5年之后的占有率是多少?而且很多用户甚至不去将浏览器的窗口最大化;类似这样的变数,我们还要考虑多少呢?
Morten Hjerde和他的同事们对年市场中的400余种移动设备进行了统计(),下图展示了大致的统计结果:
在08年之后,更多更有代表性的新设备问世并普及了。显然,我们不可以沿着"多方案"的思路继续走下去;那么我们应该怎样做呢?
部分解决方案:一切弹性化
几年前,弹性布局(flexible layout)几乎是一种奢侈品,所谓弹性,也只是体现在竖排布局以及字号等方面;图片始终可以轻易的破坏页面结构,而且即使是哪些弹性的元素结构,在很极端的情况下,仍会破坏布局。所以,所谓的弹性布局其实并非那样弹性,它有时甚至不能适应台式机与笔记本的屏幕分辨率差异,更不用说手机等移动设备了。
现在,我们可以通过响应式的设计和开发思路让页面更加"弹性"了。图片的尺寸可以被自动调整,页面布局再不会被破坏。虽然永远没有最完美的解决方案,但它给了我们更多选择。无论用户切换设备的屏幕定向方式,还是从台式机屏幕转到iPad上浏览,页面都会真正的富有弹性。
在前文提到的Ethan Marcotte的文章中,他通过展示了响应式Web设计在页面弹性方面的特性:
该实例的实现方式完美的结合了液态网格和液态图片技术,并且聪明的在正确的地方使用了正确的HTML标记。"液态网格"是一种很常见的实践方式;对于"液态图片"技术,下面的文章做了不错的介绍:
说到创建液态页面,最好看看Zoe Mickley Gillenwater的那本《Flexible Web Design: Creating Liquid and Elastic Layouts with CSS》,或是下载个样章先:""。另外,Zoe的这篇""提供了不少关于创建弹性网格和布局的教程、资源、创意指导和最佳实践方式。
从技术角度讲,虽然听上去这些都简单可行,但它比"将这些功能结合在一起"要复杂些。举个例子,仔细观察Ethan Marcotte提供的实例中的logo图片:
如果我们将浏览器窗口不断调小,会发现logo图片的文字部分始终会保持同比缩小,保证其完整可读,而不会和周围的插图一样被两边裁掉。所以整个logo其实包括两部分:插图作为页面标题的背景图片,会保持尺寸,但会随着布局调整而被裁切;文字部分则是一张单独的图片。
&h1 id="logo"&
&a href="#"&&img src="site/logo.png" alt="The Baker Street Inquirer" /&&/a&
其中,&h1&元素使用插图作为背景,文字部分的图片始终保持与背景的对齐。
这个实例小小的展示一下响应式Web设计的思路。不过这点小努力还不足以避免整个布局在小尺寸窗口中变的过窄或过短,并且logo文字最终会变的小到难以识别,背景图片也会被过多的裁切。
看过本文的人还看过
最新图文推荐
最新专栏文章
大家感兴趣的内容
网友热评的文章响应式设计时代,我们该如何设计网站?
发表于 11:44|
来源Smashing Magazine|
作者Vasilis van Gemert
摘要:随着各种屏幕尺寸设备的兴起以及交互方式的多样性,之前采用的网站设计方法已不再适用。我们需要更新设计方法,更新设计观念,更新设计工具。该文从分析Web发生了哪些变化入手,引出我们该采用的新的设计理念。
不久以前,我们进行的Web设计均是针对默认的屏幕大小和输入类型。但随着各种屏幕尺寸设备的兴起,以及交互方式的多样性,这些默认值已不再适用。现在我们进行网站设计所用到的所有默认值均需要更新。Web近年来所发生的变化人们一直在谈论Web发生了改变,让我们首先看看Web究竟发生了哪些变化。屏幕尺寸90年代,Web页为640像素宽,21世纪初,其宽增长到800像素。几年以前,我们将它调整为1024像素。但就在5年前,“奇怪的事”突然发生了。小屏幕设备进入市场。一时间,我们对Web设定的宽就不再适合了。不久,平板电脑进入市场。现在屏幕视窗的高超过了宽。屏幕尺寸已没有固定的值(图片来自:)现在我们无法了解用户所使用窗体的大小。我们只能假设其宽是一个令用户舒服的随机数。这些数字是任意的,总会有一些用户会看到不完整的Web页面。在这里,我们可以先忽略这些用户。“每个人都有一个鼠标”我们总是默认每个用户都有一个鼠标。虽然我们知道,这并不总是事实。大部分设计师会忽略为不使用鼠标的用户设计交互方式。不管什么原因,那些不得不使用键盘的用户往往很难与我们的网站进行交互。但由于大部分用户确实使用鼠标,当时很多设计者认为设计只要满足大部分人就可以了,所以我们设计出的网站还是有很多人是无法使用的。事实证明,这个数据一直在增加。很多依靠鼠标进行的交互,在触摸设备上是完全不起作用的。因为用户喜欢这些设备,甚至管理者和设计师都在用它们,所以它们是很难被忽略掉。“每个人都有宽带互联网”我们另一个默认情况就是每个人都有速度超快的互联网,至少和我们的一样快。如果他们现在没有它,不久也会有的。这似乎又是实事。网速确实越来越快。但是,今天越来越多的人在使用差劲的、不可靠的3G网络。如果你曾在火车上使用3G网络,你就会明白我所说的。如果你曾在酒店使用其提供的免费Wi-Fi,你就会明白我们假设互联网越来越快是不成立的。这是我们思维中的一大变化,我们确实应该为这些用户考虑。这将对我们的设计外观产生较大影响。“大家的电脑一年比一年快”电脑越来越快,过去是这样的。如果在买电脑之前再等半年,同样的价格你就可以买一台快两倍的电脑。这主要针对新式台式机,但对于移动设备,其有比处理器速度更重要的事。例如,对于手机,最重要的是电池待机时间:你不想每次打完电话后都必须充电吧。还有另一个趋势:现在的制造商开始销售价格更低廉的设备,而非速度更快的设备。相比处理器速度,很多用户更关注价格和电池待机时间。你的老式电脑怎么样了?你可能卖了,也可能扔了。但用户仍保留并使用着。并不是每个人都拥有与我们设计师同样的硬件设备。“所有的显示器均校准过”我们很清楚这一条是不对的。只有那些可视化专业人士的显示器才进行过校准。其他人的显示器大部分都无法正确显示色彩,很多显示器还是十分差劲的。我所测试过的大部分移动手机有着相当棒的显示屏。可当在阳光下使用时,如果你幸运,或许还可以看得见内容,但却无法看到低对比度设计下的微妙渐变。人们总会使用那些低劣的显示器,而且访问你网站的人往往视力不好。越来越多的人正在看不合格的调色板。与其购买一款专业的艺术类显示器,不如购买一款廉价的显示器和几台低端设备来测试你的作品,这是更好的投资。Web在最近5年里发生了变化,创建网站的老方式已不再适用。我们需要新的方法论。,该网站为响应式设计提供了很好的资源。过去几年里,我们一直在积极地研究新方法,以解决Web在不同尺寸屏幕上的显示问题。除了响应式设计,在日益增长的设备上存在越来越多的挑战。我们必须寻找新的交互模式:我们需要可以工作于任何设备上的界面。设计过程中,一些新的约定俗成正在产生,即新的默认。下文将列出我所收集到的新的默认情况。新的默认:激活方式本想用“触控”一词,但考虑到大家对该词的理解不同,所以改为了“激活”。对于所有设备,无论他们需要怎样的输入方式,都需要用户以某种方法来激活某件事。对于鼠标,就是点击;对于触控设备,就是滑动;对于键盘,就是敲击。还有声音、在空中挥动手臂等激活方法。很多设备往往提供多种交互方式。对于各种设备,其共同点就是必须通过激活动作来完成某件事。最近,我们开始思考用户输入的其他方法。我们曾经假设人们都使用鼠标。当鼠标移至上面时显示内容,移开后则隐藏内容。在触控设备进入市场之前,该方法一直为大部分人所采用。当内容只有通过鼠标操作才能显示的话,那对于没有鼠标的触控设备该怎么办呢?不同设备要有不同的解决方案。下面看看这个下拉菜单。当鼠标停在主菜单项上,子菜单便出现。此外,你还可以点击它打开该链接。现在,你在触摸设备上敲击该菜单项,会发生什么?子菜单出现了吗?链接激活了吗?两者都发生了?还是发生了其他事情呢?在iOS上,其他事情发生了。你第一次敲击该链接时,子菜单出现了,即引发了鼠标停在主菜单项上的事件。但你需要再敲击一下这个链接,才能打开它。我们可以针对不同的输入设备定义不同的交互方式。但我认为更好的办法是确保默认的交互方式适用于所有用户。如果你确实要这么做,你可以针对特定的用户来增强这种默认体验。例如,你确定有人正在使用鼠标,那你要保证靠鼠标进行的交互方式可用;如果你确定某人的手指较粗,那你要把小按钮做得再大些。只要大家对此无疑问,只要这种改善有利于交互,就可以这样做,但默认的交互方式除外。在这些假设中,有一些,比如鼠标的使用,是很难去除的——尤其在可以提供多种交互方式的设备上,如可安装鼠标、带有触摸键盘、相机、麦克风、键盘和触摸屏的笔记本。对此要认真思考一下。你确实需要针对鼠标进行优化吗?新的默认:小屏幕正如把一辆小汽车进行压缩,虽说更美观了,但却没有以前实用了。在网站上也同样,桌面上的网站进行压缩后用到小屏幕设备上,并不一定能带来同样的用户体验。构建适用于所有屏幕上的响应式网站,首先针对小屏幕进行设计是最容易的。它会迫使你专注于真正重要的事情上:不适于小屏幕的,很可能就是不重要。它会迫使你更好地思考布局,思考页面中内容的展现顺序。上文提到的交互设计方法同样适用于图形设计——首先设计激活事件,之后再改善它。我们首先设计每个人都能看见的东西,即内容。无论屏幕大小,无论浏览器功能多少,其均能显示字符。这是我们唯一确定的事情,所以从文本开始设计是原则(大部分Kindles不支持色彩,老版本的浏览器无法支持新版CSS中的很多特性,布局在小屏幕设备上处于次要位置。)我们可以从设计不同大小字体间的布局着手。无论每个人有怎样的设备,他们都可以看到该布局。该布局设计好后,你就可以针对更大屏幕设计布局。你可以把它看成针对使用更大屏幕用户的一次改善。之后,当不同的布局完成之后,你就可以为该网站增加其他“修饰” 了,如颜色、渐变、边框等。不能同时考虑其他方面。我也正尝试寻找所有不同设备(具有不同的屏幕大小,不同的特性)之间的共同点。首先针对这些共同点进行设计是合理的。而奇观的是,该一点往往被忽视:Web专业人员倾向于在高配置的设备(运行着最新版本的浏览器)上审视他们的作品。他们仅看到了改善部分,却忽略了提供基本体验的这些共同点。新的默认:内容直到最近,我们都是这样设计网站的:在顶部放上带有Logo的Banner图和导航,将子导航放在左边,右边放一些小部件,页脚放在底部。当所有这些完成后,我们再把内容塞在中部的小小空间中。这就好像我们对我们的内容很不自信,尝试提供一些用户可能会喜欢的其他东西。我们应该专注于中间的部分,保证它正常工作,看起来美观、具有可读性。确保所有人理解它,发现它有用。一旦你完成了内容部分,你可以自问一下,该内容确实需要一个Banner?Logo?子导航?它必须要有一个导航吗?它确实需要所有的这些小部件吗?显然最后一个问题的答案是“不”。我不理解这些小部件有什么用。在我看来,没有任何小部件比空白区域更美观。从内容开始着手,可以帮助我们找出很多有趣的解决方案。例如,Logo确实需要放在每页的顶部吗?在很多网页中,放在页脚部分效果可能更好,如在数字类型的导航中,或在注册页面中。子导航中的很多链接放在主要内容区域的相关部分效果可能更好。当观看页面布局时,主要导航比主要内容更重要吗?大部分情况下,并不是。我通常认为导航属于页脚内容。在页面顶部放一个“跳转”链接可以把访问者引导至导航处,也可获得导航,并将其显示在顶部。在响应式Web设计时代,我们需要很多新的、聪明的解决方案。过程改进看完上面内容后,你可能明白这只是过程改进。从文本开始,对文本进行设计,根据不同的屏幕大小和设备对它进行优化,之后再针对特殊属性进一步优化,如鼠标的使用,针对胖手指的设计。很多Web开发人员基于该原则构建网站。他们把漂亮的Photoshop制图转化成上述不同的层。如果开发者有很好的设计感且关注细节,这可以产生很好的效果。但如果他们并非如此(大部分情况是这样的),便很容易设计出可用性不好、简陋的产品。我并不是说不让设计者使用Photoshop。如果那是你的工具,继续使用它。但要记住,你正在设计Web的不同层,不是Photoshop中的层。一个Web要比单张漂亮图片包含更多内容。人们会以各种方式看我们的设计,我们在为所有这些人进行设计。请记住,我们不仅仅为使用笔记本的CEO设计,还为在火车上或使用免费Wi-Fi的人设计。工具上面也提到了,在设计Web过程中,Photoshop一直被滥用。好设计工具的缺失是造成过程改进难以进行的原因之一。我们所使用的工具大部分是帮助我们为网站增加“修饰”,而不是设计其核心。很幸运,针对特定功能的小型设计工具越来越多。如Gridset帮助我们针对不同的屏幕尺寸设计网格。好的设计工具可以帮助我们定义排版。把这些设计工具融入到我们的设计过程中,我们可以设计出更好的作品。结论现在的网站设计与以前已大不同。固定、单一的交互方式已不再适用。我们的设计过程需要新的起点。除了上文提到的,还有很多。就拿我们常用的表单来说吧,它足够用一系列文章来讲述。希望大家在设计过程中,可以创新出更多好方法。(编译/陈秋歌 责编/魏兵)原文链接:
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章什么是响应式Web设计?怎样进行_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
什么是响应式Web设计?怎样进行
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩15页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢段绍林云平台
<span class="tipso_style" id="tip-w" data-tipso=''>}

我要回帖

更多关于 响应式布局如何实现 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信