像素单位(px pt rem em rpx)
px
px是css像素,是一个虚拟像素,是一个相对单位
例如在两个不同的设备上,1px对应的物理、设备像素是不一样的
pt
pt是物理像素,它是一个绝对单位,设备出厂就固定的,不会改变
通常我们说的显示器分辨率,并不是真正的物理分辨率,而是桌面设置的显示分辨率
px与pt
css像素px是相对的,而物理像素pt是设备的分辨率,我们以iphone6来举例
iphone6的实际设备像素是750x1334,而它的逻辑像素,也就是视觉像素是375x667,所以这就出现了一个比例,设备像素比(Device Pixel Ratio DPR),一个设备的物理像素与逻辑像素之比
也就是说,一个逻辑像素的渲染其实是占用了两个物理像素,这样在不同分辨率的屏幕上,1px所展示的大小就基本上是一致的了。但这也出现了一个问题,不同分辨率本就是为了展示更高清的图片,如果展示为一样的,就失去了高分辨率的意义,因此出现了2x、3x倍图,高清屏幕使用更高清的图片
关于获取逻辑像素,我们可以使用screen.width和screen.height来获取屏幕的宽高,也可以使用window.devicePixelRatio来获取设备像素比
1px边框问题
由于物理像素pt与css像素px是相对的,所以在例如iphone6中,1px的边线就会使用2pt来渲染,无法实现真正的1像素
em
em是一个相对单位,相对于当前对象的文本字体尺寸。
如果未设置尺寸,则会使用浏览器默认字体大小,如果设置字体为16px,则1em就等于16px。em是相对于父级的,因此只要改变父级字体大小,子级就会自动变化。
rem
rem是相对于根元素字体大小,不会出现em中改变父级影响子级的问题。
移动端适配过程中,一个css像素对应不同数量的物理像素,因此不能写死px,而是要根据设备不同,显示不同的px,也就是动态计算,因此可以使用rem,不同分辨率设置不同的根字体大小,想对应的1rem也就对应了不同的px。
由此我们写一下思路
var 根元素font-size = 实际设备宽度 / 开发设备宽度 * 开发时根元素字体大小
假设我们为iphone6适配,它是375px,我们设置开发字体是100px
document.documentElement.style.fontSize =(document.documentElement.offsetWidth/375)*100 + 'px' ;
如果设计稿是750,是物理像素的话,那么我们可以再除以2,这样就可以得到实际的px了。再除以100就是rem,这样比较方便。
rpx
rpx是微信小程序引入的像素单位,小程序编译中会对rpx与px进行换算,换算的基准是375物理像素。也就是说在375物理像素的屏幕下,1rpx=1px
拿iphone6来举例,它是750物理像素的,因此1rpx=375/750 = 0.5px
参考文章:
https://blog.csdn.net/u014465934/article/details/97040694
像素单位(px pt rem em rpx)相关推荐
- CSS单位 px pt em和rem 之间的区别
CSS中可以定义大小的单位有四种px,pt,em,rem,而px可以说在网页开发中最常见的单位了.不过现在如今的大多数网站已经开始用rem这个单位了.那么这四个单位有什么区别呢? px|pt|em|r ...
- Css单位px,rem,em,vw,vh的区别
Css单位px,rem,em,vw,vh的区别 px 像素 rem 根元素字体大小 应用场景 使用和修改 em 相对于父元素的大小 % 相对长度单位 vw.vh 相对于视口的单位 视口 VW 相对于视 ...
- 微信小程序布局中的单位及使用:px、rem、rpx、vw、vh、n%
没接触过 JavaScript.CSS.HTML的小白直接开始接触微信小程序的开发,在了解了各个部分的作用以后,布局的时候就发现:怎么这么多单位??? px.rem.rpx.vw.vh.n% 为了不总 ...
- 移动端rpx px,rem em区别
前言 px.rpx.em以及rem是我们开发移动端遇到的最常见的长度单位.我们在开发移动端的时候,就要首先去弄懂这几个长度单位的区别与用法,免得到时候有很多的兼容性问题. px px像素(Pixel) ...
- px rem em rpx 区别 用法
任意浏览器的默认字体高都是16px.所有未经调整的浏览器都符合: 1em=16px.那么12px=0.75em,10px=0.625em.为了简化font-size的换算,需要在css中的body选择 ...
- css1vh等于多少px,css单位px、rem、em、vw、vh
css单位有两种分为相对单位和绝对单位 绝对单位有:px 相对单位有:rem.em.vw.vh 下面我们一起来了解这几个单位吧. 1.rem:相对根元素字体大小来计算 1rem默认为16px当根元素有 ...
- web开发之长度单位:px, pt, rem, vw, vh
在前端开发中,常常会碰到各种长度单位,比如 px, em, rem, vw 等. 总的来说,可以把这些长度单位分成两类:绝对长度单位 和 相对长度单位. 绝对长度单位 绝对长度单位是一个固定的值,一个 ...
- css的像素单位PX或Px
PX和Px的用途 如果你希望部分 px 单位不被转换成 rpx 或者 rem ,最简单的做法就是在 px 单位中增加一个大写字母,例如 Px 或者 PX 这样,则会被转换插件忽略.如: /* `px` ...
- Android的单位px,pt,dp,sp总结和获取屏幕分辨率
px: pixels(像素). 是屏幕中可以显示的最小单位元素,px是设备密度有关的,不同设备显示效果不同.因为由于不同的设备密度不同,密度就是单位英寸的像素不同,在不同的手机上显示的大小就不同 pt ...
最新文章
- BZOJ 1488 Luogu P4727 [HNOI2009]图的同构 (Burnside引理、组合计数)
- 常见HTTP状态码列表
- 超详细的HTTP面试题
- 电脑计算机的硬盘那些可以删除吗,我的电脑出现多个可移动磁盘该怎么删除?...
- Oracle存储过程--案例
- 认证考试介绍之RHCE篇
- 小程序多个echars_小程序界面与逻辑
- Magento 创建唯一优惠券 Create unique coupon code in Magento
- 接口测试基础——第5篇xlrd模块
- RuntimeError: expected a Variable argument, but got torch.FloatTensor
- oracle批量update 转
- Puppet 部署tomcat
- 这是我见过Java版的最好的OA系统,拿来即用,非常方便(附项目地址)
- 《TCPIP详解》卷一系列解读
- axis2 wsdl2java 工具_Axis2中的工具wsdl2Java
- Pyton爬虫编程入门学习笔记(八)学习正则表达式
- 利用ps制作油画风格的照片
- 如何利用自定义函数把阳历转换成阴历
- 天气预报API (高德地图)
- 华为借贴牌沃达丰闯欧洲 首款3G手机9月上市
热门文章
- 程序员深度体验一周ChatGPT发现竟然....
- 年底谷歌扎堆升职,L3到L6升一级多$10w
- 彻底解决win10黑屏,睡眠后无法唤醒(Intel平台)
- CAD绘制二维码(网页版)
- HTML/CSS+JavaScript+jQuery
- PA2.2 PA2.3
- GitHub 上 100K+ Star 的前端面试开源项目汇总(进大厂必备)
- BIM土建插件墙齐梁板操作,实现墙、柱的顶部、底部对齐
- 福田欧曼ETX驱动桥的设计(说明书+8张CAD图纸+开题报告+任务书+中期检查表+答辩相关材料)
- linux系统能做什么的,Linux系统适合日常使用吗?普通人学Linux能干什么