px+em+pt+rpx+rem的区别 2017年07月22日 10:25:36 阿擎 阅读数 1892更多 分类专栏: HTML 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_39520238/article/details/75701129 px+em+pt+rpx+rem的区别 1.px:(Pixel)单位名称像素,相对长度单位,是相对显示器屏幕分辨率而言的。国内使用的多。 2.em:单位名称为相对长度单位,相对于当前对象内文本的字体尺寸。如果当前对行内文本的字体尺寸未被人设置,则相对于浏览器的默认字体尺寸。国外使用的多。 3.pt:单位名称为点(point),绝对长度单位一般老版本的table使用,现在已经不用了。 4.rpx:在移动端用较多。 5.rem:是CSS3中新增加的一个... 一道相关题 一道相关题 line-height: 15px; line-height: 150%; line-height: 1.5; line-height: 1. 5em; 解答: 1、两个字上下之间的距离为15个像素; 即line-height:15px; 2、两个字上下之间的距离为150%倍; 即line-height:150%; 3、假如我们初始设font-size:12px; 那么line-height:1.5; 就相当于12*1.5=18px; 4、先了解 1em=16px 全世界默认标准font size尺寸是16px,可以改; 所以:1.5em=24px; 即两个字上下之间的距离为24个像素;line-height:1.5em == line-height:24px; px是像素,设置字体大小时,比较稳定和精确。但是如果改变了浏览器的缩放,页面布局会被打破。因此,这时就提出了使用'em'来定义Web页面的字体。 em是根据基准来缩放字体的大小。em实质是一个相对值,而非具体的数值。这种技术需要一个参考点,一般都是以自己的或父级的'font-size'为基准。 rem:em是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道它父元素的大小。而rem是相对于根元素,这样就意味着我们只需要在根元素确定一个参考值。 px是你屏幕设备物理上能显示出的最小的一个点,这个点不是固定宽度的,不同设备上点的长宽、比例有可能会不同。假设:你现在用的显示器上1px宽=1毫米,但我用的显示器1px宽=两毫米,那么你定义一个div宽度为100px,你显示器上看这个div是10厘米,我显示器上看是20厘米。另外一个px点的长宽不一定是1:1的正方形,有的设备上长宽比是不一样的。 em尺寸:所有现代浏览器下默认字体尺寸是16px,这时1em=16px。然后你人为的把body里面定义font-size:12px;(把浏览器默认16px改小了),此刻1em=12px,如果0.8em实际等于12px*0.8;em的用处是你要整个网页字体统一变大变小你只要改body里面font-size的值就行了。 另外:em会继承父元素的字体大小,比如: body{font-size: 16px;} p{font-size:0.75em;} span{font-size:2em;} 0.75em就是(font设置的全世界默认16px)16px像素点x0.75 我大小为16px; 段落文字大小为12px(16*0.75); 我大小是2em,即24px,这里是相对父级字号*2的,而不是相对body里面的16px Rem,上面你看到了,em相对父级,嵌套一多了算字体到底多大就很操蛋,所以有了Rem(浏览器支持还不是很理想),他只相对html或body的字体尺寸(默认还是16px,除非你自己用font-size定义为其他),没有了继承父级尺寸这个关系。1.PX实际上就是像素,用PX设置字体大小时,比较稳定和精确。但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,如果改变了浏览器的缩放,这时会使用我们的Web页面布局被打破。这样对于那些关心自己网站可用性的用户来说,就是一个大问题了。因此,这时就提出了使用“em”来定义Web页面的字体。 2.EM就是根据基准来缩放字体的大小。EM实质是一个相对值,而非具体的数值。这种技术需要一个参考点,一般都是以的“font-size”为基准。另外,em是相对于父元素的属性而计算的,如果想计算px和em之间的换算,输入数据就可以px和em相互计算。 3.EM是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小。而Rem是相对于根元素,这样就意味着,我们只需要在根元素确定一个参考值。 ac345982b2b7d0a2b55b9bf1c6ef76094a369ac8扩展资料: 1.PX是Pixel的缩写,也就是说像素是指基本原色素及其灰度的基本编码,由 Picture(图像) 和 Element(元素)这两个单词的字母所组成的,如同摄影的相片一样,数码影像也具有连续性的浓淡阶调。若把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小方点所组成,这些小方点就是构成影像的最小单位“像素”。 2.em单位名称为相对长度单位。相对于当前对象内文本的字体尺寸,国外使用比较多。(emphasize) 标签告诉浏览器把其中的文本表示为强调的内容。对于所有浏览器来说,这意味着要把这段文字用斜体来显示。 3.REM是相对单位,是相对HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器均已支持rem。 参考资料:百度百科-PX (计算机语言中的像素) 百度百科-EM (HTML术语) 百度百科-Rem (css3中的rem) CSS之px、em、rem三者的联系与区别 前端唠唠嗑 发布时间:18-07-1619:59 px、em、rem都是计量单位,都能表示尺寸,但是有有所不同,而且其各有各的优缺点。 Px表示“绝对尺寸”(并非真正的绝对),实际上就是css中定义的像素(此像素与设备的物理像素有一定的区别,后续详细说明见文末说明1),利用px设置字体大小及元素宽高等比较稳定和精确。Px的缺点是其不能适应浏览器缩放时产生的变化,因此一般不用于响应式网站。 em表示相对尺寸,其相对于当前对象内文本的font-size(如果当前对象内文本的font-size计量单位也是em,则当前对象内文本的font-size的参考对象为父元素文本font-size)。使用em可以较好的相应设备屏幕尺寸的变化,但是在进行元素设置时都需要知道父元素文本的font-size及当前对象内文本的font-size,如有遗漏可能会导致错误。 rem也表示相对尺寸,其参考对象为根元素的font-size,因此只需要确定这一个font-size。 表1表示在不同环境下em和rem换算成的px。 表1:em、rem换算px表 以下为实例展示。(只显示相关代码,html设定font-size=15px) 相关代码如下:
第一组 h1节点em测试

h1节点rem测试




h1节点em测试

第三组

h1节点em测试

h1节点rem测试

结果如图1所示: 图1:测试结果 说明1:以上所述px为css中定义的像素(以下简称css像素),与实际的物理像素是有区别的,早期电脑屏幕的物理像素与css像素相同,但是随着科技的发展,高精度屏幕开始出现在人们的视野中。以iPhone的Retina屏为例,其物理像素与css像素关系见图2。 图2:Retina屏物理像素与css像素关系图 为此移动端浏览器以及某些桌面浏览器引入了devicePixelRatio(DPR)属性,其官方的定义为:设备物理像素和设备独立像素的比例,也就是 devicePixelRatio = 物理像素 / 独立像素。而css像素=独立像素,由此我们可以得出 devicePixelRatio = 物理像素 / css像素,进而可以推算出该设备上一个css像素代表几个物理像素。例如iPhone的retina屏的devicePixelRatio = 2,那么该设备上一个css像素相当于2个物理像素。了解更多像素相关知识,可以参考:https://github.com/jawil/blog/issues/21。