响应式站点1-技术基础

原文3年多前发表在私人站点,现迁移到简书

响应式是指网站在不同分辨率、不同大小的设备下,实现比较好的体验,背后的技术基础在于区分不同设备的尺寸、密度

1.设备尺寸和分辨率

PC时代,设备尺寸一般控制在1024px,基本不考虑用户主动改变浏览器大小的情况。诺基亚时代,已经可以小尺寸设备访问网站,那时候网路差,上网本来就不方便,整体体验都不好,网页都是按照PC渲染,再局部放大将就着看。

iphone刚出现时,也是通过先加载全部网页再放大局部浏览,后面出现了为iphone量身定制的网站,直接设置宽度为320px。ios最先引入了meta viewport来允许用户修改视窗的大小,来达到最好的效果。

** 可以在这里直观的感受下:http://andreasbovens.github.io/understanding-viewport/ **

img

(不设置viewport)

img

(设置了width=device-width之后)

设备密度

iphone3和4都是3.5寸,前者分辨率是320*480,后者是640何960,这和设备密度有关

devic pixel: 物理像素(长宽单位为1)。在屏幕上,元素其实是通过硬件的物理点(RGB)来展示的。1个大设备上的点比小设备上的点要大(很容易理解),只是因为我们看的距离不同(看电视会坐的比较远,看手机会拿的很近),所以对我们来说看着都比较清晰

css pixel: css像素,假设有个div宽20px; 如果以绝对的1:1物理点来显示的话,必然大屏幕的20px会比小屏的px大(想象一下设置一个宽度,在电脑和手机上表现不一样,这就太坑爹了)。 我们实际web开发的时候没遇到这样的问题,因为css px是一个中间层,在retina屏上1X1的css pixel点以4(2X2)个device pixel来展示

img

devicePixelRatio: 设备像素比,就是指多少个物理像素来显示一个逻辑像素,现在比较多的是2,3也有,可以同通过window.devicePixelRatio获得

device width: 设备宽度,指逻辑像素下的款宽度(就是上面的css pixel),比如iphone的device width就是320*480。这里可以查看各种设备的物理像素和逻辑像素

文字

对文字来说,其实不存在不同密度下显示的的问题,font-size:12px;在不同设备上看着都是一样得,因为可以自动的以多个物理点来显示一个逻辑点。但是图片就没这么容易了,一个200200px的图片在2倍密度的设备上,实际对应的是400400的物理点,多出来的点只能以临近的值来填充,所以就会显得模糊。

图片

图片的响应式确实是一个比较棘手的问题,除了视觉上,还有性能上的问题要考虑,上面200200px像素的问题,简单的做法就是提供一张400400的图片,以200*200展示


深入viewport

响应式站点2-viewport和media-query

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 移动前端开发之viewport的深入理解 一、viewport的概念 通俗的讲,移动设备上的viewport就是设...
    明明三省阅读 15,587评论 1 46
  • 我们先从一个听的最多的概念——PPI开始。PPI什么是PPIPPI的复杂之处在于如果他所处的上下文环境不同,意义也...
    garble阅读 3,994评论 0 1
  • 原文地址 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewp...
    matthewm阅读 5,419评论 0 4
  • 在做主管的过程中,自身需要不断的学习,也经常组织内外部的培训,更需要将各项工作、任务梳理、分解给团队成员。所以,有...
    素士阅读 936评论 0 1
  • 今天看书突然想到一个案例,我有个朋友平时还比较能吃,所以每次一起吃饭点多菜时,大家都说,某某你比较能吃,不要浪费了...
    吾往千万里阅读 1,417评论 0 1