响应式设计的性能优化(转)

2010年,Ethan Marcotte 提出了「响应式网页设计」(Responsive Web Design),通过 Media Query 和 Fluid Layout 判断屏幕宽度,自行调整布局.

一般,在页面头部加入 viewport 标签

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  • viewport: 一般指的是浏览器窗口内容区的大小,不包含工具条、选项卡等内容
  • width: 浏览器宽度,输出设备中的页面可见区域宽度
  • device-width: 设备分辨率宽度,输出设备的屏幕可见宽度
  • initial-scale: 初始缩放比例
  • maximum-scale: 最大缩放比例

当将 content 属性设置为 width=device-width 后,浏览器宽度以设备分辨率宽度显示. 所以在接下来的 Media Query 设置断点判断 width ( 浏览器宽度 ). 而不是判断 device-width ( 设备分辨率宽度 ). 因为在 PC 端拉伸屏幕将不会产生响应式( device-width 没有发生变化,仅仅是 width 发生变化 )

这样在移动端设置 width=device-width 后,判断 width (浏览器宽度),同时也是判断 device-width (设备分辨率宽度).

@media (min-width: 768px) {
  .main {
    width: 25%;
    float: left;
  }

  .sidebar {
      width: 75%;
      float: right;
  }
}

断点设置

那么问题来了,普遍的响应式设计一般会要求按照主流设备的屏幕分辨率设置断点. 随着现在手机更新迭代越来越快,屏幕分辨率更是参差多态. 现在设置的断点,可能一年半载就已不适应. 所以与其让「屏幕分辨率」确定断点,不如让「内容」确定断点.

引用 Responsive Design Workflow 作者 Stephe Hay 的话来说:

Start with the small screen first, then expand until it looks like shit. Time for a breakpoint!

大概意思是,从你需要适配的最小屏幕宽度开始测试,慢慢地拉伸,当你发现页面像坨屎的时候,一个新的断点就确定了. 接下来继续反复拉伸,确定新的断点,直到你所需要适配的最大屏幕宽度为止.

最后,你会发现通过 内容确定断点 使用的断点数量远比 屏幕分辨率确定断点 要少.

图片避免使用 display: none;

许多第一次使用 Media Query 进行响应式设计的伙伴们,都喜欢使用 display: none; 来隐藏内容. 可在 http 请求背后,这些被隐藏的内容也会请求下来. 这样就造成移动端浏览网页时,请求许多用不到的资源,造成加载缓慢.

以图片请求为例:

多数浏览器 产生请求 不产生请求
img 设置 src 属性 / display: none; 图片地址设置在不存在的属性中,比如 data-img
background-image display: none; background-image: none;

由上表可知,使用 display: none; 隐藏图片的方式是绝对要避免的. 对于一张内容图片更倾向于使用 Javascript 方案( data-img-jquery 之类的 ). 对于背景图片可以设置 background-image: none; .

更多详情参考:
媒体查询与 http 请求

能否更进一步优化?

后来思考,响应式设计不过是一种妥协. 承载着 PC 端的臃肿,通过 Media Query 和 Fluid Layout 让其表面简化适应移动端,可内在已混杂着移动端本身所不需要的代码和资源,所谓金玉其外,败絮其中.

如果追求更极致的性能,那重新制作一套移动页面或单独的移动 app 会更为合适.

转自http://www.jianshu.com/p/193911ee72e2

时间: 2024-10-14 18:18:18

响应式设计的性能优化(转)的相关文章

第二次讨论——响应式设计、布局技巧、css性能优化、css预处理

第二次讨论 [响应式设计] 集中创建页面的图片排版大小,可以智能地根据用户行为以及使用的设备环境(系统平台.屏幕尺寸.屏幕定向等)进行相对应的布局. 响应式布局: meta标签的实用:设置布局宽度等于设备宽度,布局viewport等于度量viewport <meta name="viewport" content="width=device-width,initial-scale=1"> [[布局]] [水平居中] 一.text-align和inline

如何在响应式基础上提升移动性能///响应式不是万能的!教你提升响应式设计的移动性能(一)

如何在响应式基础上提升移动性能 摘要:如何在响应式基础上提升移动性能,从细节做起,结合网站,做好响应式页面的设计优化工作.,随着互联网的高速发展,合肥网站建设小编今天为大家介绍,为解决移动性能的响应式页面设计并不是万能的,而应该不断的改进,从而更好的为用户服务.随着互联网的高速发展,例如近段时间炒得火热的谷歌申请的无人机技术,以及电商门户网站阿里巴巴的上市等等,这都促进了互联网日新月异的变化. 所以作为网站seo人员不应固步自封,而应该努力的跟上时代的步伐,不仅需要学习相关的seo知识,而且对于

响应式设计、改造与优化——互动出版网

这篇是计算机类的优质预售推荐>>>><响应式设计.改造与优化> 响应式移动设计从零到一+现有网站实现响应式改造+用户体验优化 编辑推荐 本书主要涵盖了以下内容: ◎ 论述为什么"移动优先"仍然是最佳实践 ◎ 融合内容.结构和美感向用户提供他们喜爱的体验 ◎ 利用响应式图片提升渲染速度并更有效地传达视觉信息 ◎ 利用栅格系统避免让用户觉得你的设计"被禁锢在盒子里" ◎ 掌握测量单位,例如px.em.rem和视图相关单位等,并理解它们

关于响应式设计与服务端性能

服务器端层 智能响应策略的最后一个选择是服务器. 服务器端功能检测和决策不是 移动网络的新鲜玩意.类似 WURFL 和Device Atlas的库在市场上有好多年,响应式设计和服务器组件的混合也众所周知.有时被称为是响应式设计和服务器端组件(RESS),有时又叫自适应设计,这 提高了响应式设计的速度和可用性,同时每一个服务器端都保持一个代码库. 很遗憾的是.这些技术这几年并没有什么突破性的发展.只能在博客和 杂志里看到一些开发者对"RESS"."响应式"."

复杂产品的响应式设计【流程篇】

转载:http://ued.taobao.org/blog/2013/05/复杂产品的响应式设计[流程篇]/ 响应式网页不像传统网页只需考虑一种状态,不是交付一套设计稿就完事儿了,它给设计.前端和开发团队之间的协作模式带来新的挑战.在一个复杂产品全面响应式的项目里,交互每个阶段该产出什么?交互与视觉如何协作?前端何时介入?哪些事情让后端开发来做更合理?经历“玩客”第一版后,我们得到了一些答案. 响应式设计之所以叫响应式“设计”而不叫响应式“技术”,是因为它是一项设计先行的工作.需要设计先明确好响

复杂产品的响应式设计流程

响应式网页不像传统网页只需考虑一种状态,不是交付一套设计稿就完事儿了,它给设计.前端和开发团队之间的协作模式带来新的挑战.在一个复杂产品全面响应式的项目里,交互每个阶段该产出什么?交互与视觉如何协作?前端何时介入?哪些事情让后端开发来做更合理?经历"玩客"第一版后,我们得到了一些答案. 响应式设计之所以叫响应式"设计"而不叫响应式"技术",是因为它是一项设计先行的工作.需要设计先明确好响应方式再实现出来,不能出一套设计稿后等着前端看情况把它变成响

移动端Web开发(响应式设计)

Amaze移动端开发框架:http://amazeui.org/ Zepto.js:http://www.css88.com/doc/zeptojs_api/ 移动端下拉刷新插件:https://github.com/lightningtgc/material-refresh 响应式Web设计代码实现:http://bbs.html5cn.org/thread-86091-1-1.html 参考网址:http://mobile.51cto.com/web-442588.htm    http:/

web响应式设计技能大盘点

响应式网页设计已经变成新的web标准,许多公司已经接受了这个挑战,并且已经建立起了专门的网页设计方案(比如只针对移动端的开发)或者已经开始试图解决跨平台的响应式网页设计方案. 1.计划 与往常一样,计划总是要放在第一优先级的.一旦你在纸上开始解决你的设计难题,你就已经准备好建立你的站点了. 2.充分利用好原型软件 推荐使用Adobe Edge Reflow,它能让你使用媒体查询,在程序内设置断点并设计适配桌面电脑.平板电脑和手机的布局.然后,你可以将CSS复制到另一个像Adobe Dreamwe

如何为你的响应式设计提速

响应式设计是最近的流行词,能够打造多屏幕一致体验.现在几乎每个人都喜欢响应式设计,而且可以是没有原因的支持,这跟Flash刚出现那会火热的局面有点相似.然而,响应式设计带来了表现力的问题,这需要通过调整图像.压缩图像.改变图像大小等手段来解决.然而,为了提高表现力,有的时候不得不增大文件的尺寸.浏览体验需要快速的载入,本文将讲述一些为响应式设计提速的方法.为什么响应式设计载入那么慢?在所有的设备上,响应式设计载入的HTML元素都相同.就算你的网站专供桌面或者专供平板,在其他设备上,载入的元素依然