移动端适配前需弄懂的基本知识

对于刚接触移动端的适配,我想最大的困惑应该是为什么全部像素不能和pc端一样按照设计稿给定的像素来处理?

想弄明白上面的这个问题,得先搞明白像素和视口。

像素:中文全称为图像元素。是指在由一个数字序列表示的图像中的一个最小单位。像素仅仅只是分辨率的尺寸单位,而不是画质。通常以像素每英寸(PPI)为单位来表示影像分辨率的大小。

适配中需要考虑两种像素

1.设备像素

屏幕的物理像素,任何设备屏幕的物理像素的数量都是固定不变的,单位是pt

2.css 像素

在css、js中使用的一个抽象的概念,单位是px

顺便说下,css像素也可以称为设备独立像素(device-independent pixels)简称为dips,单位是dp

那么,设置一个元素width:200px,这个元素便跨越了200个css元素,200个css元素相当于多少个设备元素取决于两个条件

<1>页面是否缩放

缩放与设备像素、css像素的关系

缩放是在放大或缩小css像素,比如一个宽度为200px的像素无论怎样放大,还是200个css像素。但是因为这些像素被放大了,所以css像素也就跨越了更多的设备像素,缩小则相反。

缩放与视口

视觉视口:视觉视口是用户正在看到的网页的区域大小是屏幕中css像素的数量

window.innerWidth/Height 返回视觉视口的尺寸

缩放会影响视觉视口的尺寸。页面被用户放大,视觉视口内css像素数量减少;被用户缩小,视觉视口内css像素增多。

用户缩放不会影响布局视口但是设置缩放

<meta name="viewport" content="initial-scale=2">后,initial-scale有一个副作用:同时也会将布局视口设置为缩放后的尺寸,所以initial-scale=1与width=devide-width的效果是一样的

布局视口:一个没有为移动端做优化的网页,会尽可能缩小网页让用户看到所有东西。浏览器厂商为了让用户在小屏幕下网页也能够显示地很好,所以把视口宽度设置得很大,一般在768~1024px之间,最常见的宽度是980px。所以在手机上视口与移动端浏览器屏幕宽度不再相关联,是完全独立的,这个浏览器厂商定的视口被称为布局视口。

布局视口我们是看不见的,只知道网页的最大宽度是980px。可以这样设置布局视口的宽度:

<meta name="viewport" content="width=640">

媒体查询与布局视口  700px指的是布局视口的宽度

@media (min-width:700px){}

document.documentElement.clientWidth/Height返回布局视口的尺寸

理想视口:布局视口明显对用户是不友好的,完全忽略了手机本身的尺寸。所以苹果引入了理想视口的概念,它是对设备来说最理想的布局视口尺寸。理想视口中的网页是对用户最理想的宽度,用户进入页面的时候不需要缩放。

如果我们把布局视口的宽度改成屏幕的宽度不就不用缩放了么。可以这样设置告诉浏览器使用它的理想视口:

<meta name="viewport" content="width=device-width">

定义理想视口是浏览器的事情,并不能简单认为是开发者定义的,开发者只能使用。

screen.width/height 返回理想视口的尺寸,有严重的兼容性位图---可能返回两种值:

1.理想视口的尺寸(下载浏览器)

2.屏幕的设备像素尺寸(内置浏览器)


完美视口:

解决各种浏览器兼容问题的理想视口设置:

<meta name="viewport" content="width=device-width,initial-scale=1">


<2>屏幕是否为高密度

在缩放程度为100%(这个条件很重要,因为缩放也会影响他们)时,他们的比例叫做设备像素比(device-pixel-ratio      dpr)

dpr = 设备像素/css像素

可以通过js得到 dpr :      window.devicePixelRatio


所以对于第一个问题我想现在已经有了答案。

在屏幕不缩放的前提下,dpr决定了我们如何将设计稿的的像素转换为css像素。

10px*10px的图片在dpr为2的屏幕下显示为20px*20px,为了不被放大模糊掉,所以设计稿中这图片是20px*20px的。这样子我们设置该图片的css像素时为10px*10px,实际显示为20px*20px,最终结果是图片正常显示,不会模糊。

<3>屏幕像素密度

ppi=√ (window.screen.width∧2 * window.screen.height∧2)/屏幕尺寸

ppi为160时,一个css像素和一个设备像素相对应。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容

  • 一、meta标签的效果 移动端页面一般会在head头部添加如下meta标签。 该meta标签是否添加对页面渲染的影...
    nimw阅读 3,531评论 0 5
  • 我们第一次接触移动web的时候,直观印象样应该是:屏幕比pc小很多,所以对pc端设计的界面,不一定(或者说不完全)...
    Scaukk阅读 16,835评论 6 46
  • 刚开始做移动端web开发的同学应该都碰到过页面适配问题,为什么我在开发手机上调试好的页面在其他手机会有这样或那样的...
    留七七阅读 19,324评论 5 80
  • 在移动互联网快速发展的今天,手机的种类和尺寸越来越多,作为前端的小伙伴们可能会越来越头疼,但又不得不去适配一款又一...
    keenjaan阅读 26,810评论 9 86
  • 人生的每个阶段,回想起来都有让自己感动的时候。少年,青年,壮年,老年...某些疲倦,自己都会流下感动的泪水。 ...
    米Q阅读 573评论 0 2