IT修真院·小课堂丨互联网职业小课堂在线学习平台

课堂课题:

手机分辨率和网页中的px是一回事吗?

关联任务:

任务一

直播时间:

2019-05-14 15:30:00


课堂内容:

视频链接:

PPT链接:

提交按钮:

小课堂内容格式


标题:

【修真院xx(职业)小课堂】课题名称

开场语:

大家好,我是IT修真院XX分院第X期的学员XX,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网XX(职业)任务X,深度思考中的知识点——XXX

(1)背景介绍:

背景介绍的时候,尽可能的要宽广,讲清楚来龙去脉,讲清楚为什么会需要这个技术。

(2)知识剖析:

讲知识点的时候,尽可能的成体系,学会成体系的去给别人介绍知识。现在很多做的都是零散的,没有分类。

(3)常见问题:

最少列出1个常见问题。

(4)解决方案:

写清楚常见问题的解决方案。

(5)编码实战:

尽可能的去寻找在真实项目中在用的。如果你能找到某个网站在用你说的知识点,这是最好的。学以致用,否则当成练习题就没有意义了。多准备一些demo,讲解过程中将知识点和demo结合,便于大家理解所讲解的知识点。

(6)拓展思考:

知识点之外的拓展思考,由分享人进行讲解,这些东西就是所谓的深度,也是一个人技术水准高低比较的表现。

(7)参考文献:

引入参加文献的时候,在引用的句子后面加上序号【1】。参考文献中列出详细来源。不要去抄别人的东西,这是一个基本的态度。

(8)更多讨论:

Q1:提问人:问题?
A1:回答人(可以是分享人,也可以是其他学员):回答
Q2:提问人:问题?
A2:回答人(可以是分享人,也可以是其他学员):回答
Q3:提问人:问题?
A3:回答人(可以是分享人,也可以是其他学员):回答

(9)鸣谢:

感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

手机分辨率和网页中的px是一回事吗?     中品

辅导师兄 [真传弟子]CSS-汪开放


【修真院 web 小课堂】手机分辨率和网页中的px是一回事吗?

大家好,我是IT修真院北京分院第38期的学员肖明明,一枚正直纯洁善良的web前端程序员,今天给大家分享一下,修真院官网css任务3,深度思考中的知识点——手机分辨率和网页中的px是一回事吗?

(1)     背景介绍:

刚开始接触css的时候会接触到px这个单位,它是写在css里的,比如一个div的宽是10px,高是10px,那么呈现在网页上就是一个宽高都是10px的盒子,那么这个px和我们平常接触到的手机的分辨率有什么关系呢?是不是1px就代表手机上的一个像素呢?

(2)     知识剖析:

先来看看什么是像素,什么是手机分辨率?

像素:手机屏幕显示出画面是由一个个发光的小点组成的,每个小点就是像素。

分辨率:分辨率是单位长度内包含像素点的数量,通常以像素每英寸ppi(pixel per inch)为单位来表示图像分辨率的大小,例如分辨率为72ppi表示每英寸包含72个像素点,分辨率越高,包含的像素点就越多,图像越清晰,但占用的存储空间就越大。

分辨率分为屏幕分辨率和图像分辨率,例如:屏幕分辨率是1280*720,就是屏幕的水平方向上有1280个像素点,垂直方向上有720个像素点;一张图片分辨率是800*500,就是说图片在没有缩放的前提下,水平方向上有800个像素点,垂直方向上有500个像素点。

像素单位的分类

上面讨论的手机上的像素叫设备像素,也叫物理像素,顾名思义,显示屏是由一个个物理像素点组成的,通过控制每个像素点的颜色,使屏幕显示出不同的图像,屏幕从工厂出来的那天起,它上面的物理像素点就固定不变了。

物理像素是指设备屏幕实际拥有的像素点,比如iPhone6 的屏幕在宽度方向有750个像素点,高度方向有1334个像素点,所以iPhone6总共有750*1334个物理像素

逻辑像素:也叫设备独立像素(Device Independent Pixel,DIP),可以理解为反映在css/js代码里的像素点数。

设备像素比(Device Pixel Ratio,DPR),一个设备的物理像素与逻辑像素之比。

比如iPhone6,我css里写一个div盒子,多宽可以把屏幕刚好占满,答案是宽375px,就能占满整个屏幕的宽度,因为iPhone6的设备像素比是2。

很久以前,物理像素和逻辑像素是没区别的,css里写1px,显示在屏幕中就是一个实际的像素点,DPR=1,比如iPhone3gs,但是后来,苹果使用了Retina技术,这种技术使用4个乃至更多的物理像素来显示一个逻辑像素,这样一来,同样的css代码设置的尺寸,在Retina 和非Retina屏幕上看起来大小是一样的,但在Retina屏幕上要精细得多。

用iPhone3gs和4s来举例,iPhone3gs得手机分辨率是320*480,而4s的手机分辨率是640*960,而两者的尺寸都是3.5寸。假设有个邮件列表页,如果还是css中1px对应1个物理像素点,那么3gs上大概只能显示4-5行,4s就能显示9-10行,而且每行会变得特别宽。两款手机一样大,如果按照这种方式显示,3gs上刚刚好的效果,在4s上就会小到根本看不清字。

 

在现实中,这两者效果却是一样的,这是因为Ratina屏幕把2*2个像素当一个像素使用。比如原本44像素高的顶部导航栏,在Retina屏上用了88个像素的高度来显示。导致界面元素都变成两倍大小,反而和3gs效果一样,画质却更清晰。

 

(3)     常见问题

任务三给的psd图打开查看图片大小是640*1136像素,那么我们如果要还原这个页面那么css里的总宽高应该是多少?

(4)     解决方案

我们知道iPhone5,5s,se的分辨率是640*1136,而它们的设备像素比都是2,即两个物理像素等于一个css像素,所以我们css里要写的总宽高是设备像素除以2,即为320*568 。

(5)     编码实战

我电脑屏幕的设备分辨率是1920*1080,当前分辨率设置下逻辑分辨率是1280*720,从图中可以验证,横,纵方向的设备像素数量恰好是设备独立像素的1.5倍。这也意味着,设备独立像素的边长是设备像素的边长的1.5倍。

(6)     拓展思考

如何理解<meta name="viewport" content="width=device-width”>?

device-width 是指的设备宽,比如iPhone的屏幕宽度是由css中的宽度决定的,也就是说,在iPhone3,4,5,中,css中的320px就代表它们的屏宽,iPhone6的device-width是375px。

(7)     参考文献

【1】你真正了解像素、分辨率吗?已总结好,激情收藏!│03图像及尺寸

http://baijiahao.baidu.com/s?id=1601797930021194629&wfr=spider&for=pc

【2】CSS中的px与物理像素、逻辑像素、1px边框问题

http://www.mamicode.com/info-detail-2396539.html

【3】响应式设计——理解设备像素、设备独立像素和css像素

https://www.jianshu.com/p/6b1f94bfa263

【4】CSS像素、物理像素、逻辑像素、设备像素比、PPI、Viewport

https://github.com/jawil/blog/issues/21

【5】移动前端开发之viewport的深入理解

http://www.cnblogs.com/2050/p/3877280.html

【6】设备像素比devicePixelRatio简单介绍

https://www.zhangxinxu.com/wordpress/2012/08/window-devicepixelratio/

 

(8)     更多讨论

【1】     如何查看自己设备的设备像素比?

【答】可以通过window.devicePixelRatio查看

https://www.zhangxinxu.com/study/201208/window-device-pixel-ratio.html

【2】如何理解px是一个相对长度单位?

【答】在缩放比例为100%的情况下,一个css像素大小等于一个设备独立像素。

假设我们用pc浏览器打开一个页面,浏览器此时的宽度为800px,页面上同时有一个400px宽的块级元素容器。很明显此时块状容器应该占页面的一半。但如果我们把页面放大(通过Ctrl+“+“键),放大为200%,也就是原来的两倍。此时块状容器则横向占满了整个浏览器。此时我们既没有调整浏览器窗口大小,也没有改变块状元素的css宽度,但是它看上去却变大了一倍——这是因为我们把css像素放大为了原来的两倍。也就是说默认情况下一个css像素应该是等于一个物理像素的宽度的,但是浏览器的放大操作让一个css像素等于了两个设备像素宽度。

【3】编写css的时候,是按照物理像素还设备独立像素去编写呢?

【答】按照设备独立像素编写。

(9)     感谢顾仁鹏师兄,此篇分享在他的帮助下完成的更好

(10)  今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

 


评论

[北京|结业弟子]JS-顾仁鹏 发表于 2019-05-21 09:45:18 #1

第一次将可能有点紧张 不过讲的条例挺清晰 争取下次不要看稿

回复

请您登录 后进行评论