前言:本文主要为科普移动端基础适配概念,欢迎来喷
- 英寸:
描述屏幕的物理大小,电脑显示器的 15.6,22, 手机显示器的 4.8、 5.7等使用的单位都是英寸。 上面的尺寸都是屏幕对角线的长度: 英寸( inch,缩写为 in)在荷兰语中的本意是大拇指,一英寸就是指甲底部普通人拇指的宽度。 英寸和厘米的换算: 1英寸=2.54厘米 - 屏幕分辨率(物理像素):
指一块屏幕由多少像素点组成,例如iphonexs max 2688(垂直) X 1242(水平) - 屏幕清晰度(ppi)
pixel per inch: 每英寸包含的像素数,值越大,屏幕越清晰,显示画面更为细腻 iPhone XSMax 和 iPhone SE的 PPI分别为 458和 326,说明前者的屏幕更清晰。 购买设备时的重要参考数值 - 设备独立像素(dip or dp)
现如今新出的手机分辨率越来越高,比如之前的设备A:分辨率为 375 X 480, 新出的设备B:分辨率750 X 960,设备A与设备B物理尺寸大小一致(4.8英寸) 正常来讲,css设置一个宽度为100px的盒子,在设备B上展示物理尺寸(视觉效果)相比设备A更小, 为了解决这个问题,苹果推出retina屏幕,在设备B上用400个物理像素渲染个100个css像素, 解决了不同分辨率设备上的显示问题, 这个时候就需要一个标准的单位来告知不同分辨率设备,它们在界面上显示的元素大小是多少, 即设备独立像素 - 设备像素比
物理像素 / 设备独立像素 js: 通过 window.devicePixelRatio来帮助我们获取设备像素比 css:通过媒体查询 @media only screen and (min-device-pixel-ratio:2) - 布局视口
以百分比来指定一个元素的大小时,它的计算值是由这个元素的包含块计算而来的素, 最顶级元素就是基于布局视口来计算的。所以布局视口是网页布局的基准视口 移动端布局视口被赋予一个默认值,大部分为 980px,这样 PC的网页可以在手机浏览器上呈现, 但是非常小,用户可以手动对网页进行放大。 api: window.documentElement.clientWidth/Height - 视觉视口
用户通过屏幕看到的真是区域,默认等于当前浏览器的窗口大小 对浏览器进行缩放时,不会改变布局视口的大小,所以页面布局是不变的, 但是缩放会改变视觉视口的大小。 布局视口限制 CSS布局而视觉视口决定用户具体能看到什么。 api: window.innerHeight/Width - 理想视口
网站页面在移动端展示的理想大小 浏览器调试移动端时页面上给定的像素大小就是理想视口大小,它的单位正是设备独立像素 api: window.screen.width/height - api集合:
window.innerHeight:获取浏览器视觉视口高度(包括垂直滚动条)。 window.outerHeight:获取浏览器窗口外部的高度。表示整个浏览器窗口的高度,包括侧边栏、窗口镶边和调正窗口大小的边框。 window.screen.Height:获取获屏幕取理想视口高度,这个数值是固定的, 设备的分辨率/设备像素比 window.screen.availHeight:浏览器窗口可用的高度。 document.documentElement.clientHeight:获取浏览器布局视口高度,包括内边距,但不包括垂直滚动条、边框和外边距。 document.documentElement.offsetHeight:包括内边距、滚动条、边框和外边距。 document.documentElement.scrollHeight:在不使用滚动条的情况下适合视口中的所有内容所需的最小宽度。测量方式与 clientHeight相同:它包含元素的内边距,但不包括边框,外边距或垂直滚动条。