1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > rem em px rpx等

rem em px rpx等

时间:2023-09-17 16:55:56

相关推荐

rem em px rpx等

1、任意浏览器的默认字体高都是16px。谷歌浏览器显示的最小字体大小是12px。

exp:突破谷歌浏览器显示12px限制。

(1)、<div>文本</div>

文本嵌套块标签,这是因为缩放只对有宽高的标签有效,缩放的时候也是将标签一起缩放,而不仅仅是缩放文本,所以如果使用span等行内标签时,还需要将行内标签进行元素转换为块元素(display:block;)

(2)、font-size:12px;

给文本设置字体12px,并设置缩放值为10/12=0.83333,也就是transform:scale(0.83);如果要设置8px,那就是8/12=0.66666

(3)、transform-origin:0 0;

默认缩放中心点是在盒子的正中心,所以如果我们需要文本左对齐,就需要改变中心点,也就是transform-origin:0 0;该值有两个参数值,第一个是水平方位值,第二个是垂直方位值,对应的如果需要右对齐、或者是有缩进,那就改变对应的参数值即可。

(4)、white-space: nowrap;

文本进行缩放后,并不会改变其原来盒子的大小,只是视觉上改变了大小,也就是说如果文本有换行的时候,它进行缩放后仍然是折行显示,这显然不符合我们要求,所以我们还需要强制文本在一行显示,也就是 white-space: nowrap;

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div {width: 300px;height: 30px;margin-bottom: 5px;background: rgb(206, 151, 151);}.box1 {font-size: 12px;}.box2 {font-size: 10px;transform: scale(0.83333);transform-origin: 0 0;white-space: nowrap;}</style></head><body><div class="box1">我是正常的12px的文字大小 Hello world!</div><div class="box1">我是正常的12px的文字大小 Hello world!</div><div class="box2">我是正常的10px的文字大小 Hello world!</div><div class="box2">我是正常的10px的文字大小 Hello world!</div></body></html>

2、em是相当于当前对象内的文本尺寸,当前对象没有那就继承父级。

3、rem是相对于html元素的字体大小。

4、em、rem一般都应用于移动端,按“设计稿/实际屏幕宽度”来按比例设置html的font-size,按比例放大或者缩小页面。如果直接写的px那在不同宽高的屏幕上都显示的一样的。

5、vw:viewpoint width,视窗宽度,1vw等于视窗宽度的1%。

vh:viewpoint height,视窗高度,1vh等于视窗高度的1%。

vmin:vw和vh中较小的那个。

vmax:vw和vh中较大的那个。

6、rpx

rpx是微信小程序独有的、解决屏幕自适应的尺寸单位可以根据屏幕宽度进行自适应,不论大小屏幕,规定屏幕宽为 750rpx通过 rpx 设置元素和字体的大小,小程序在不同尺寸的屏幕下,可以实现自动适配

7、为什么web端不使用rem?

因为在大多数场景下,用户使用更大的屏幕,是想看到更多的内容,而不是更大的字。

8、1px到底有多长呢?

首先,我们要介绍分辨率这个概念,比如1024*768,代表的就是这个屏幕水平方向有1024个像素,垂直方向有768个像素。

假如这个屏幕宽度是1024cm,那么对于这个屏幕来说,水平方向上1px就是1cm(当然,一般不会有那么宽的屏幕)。

所以,1px究竟有多长,取决于分辨率,取决于屏幕大小。1px = 屏幕长度/分辨率

exp:

(1)当同一块屏幕。当你调整了分辨率,水平方向的分辨率变大,但是屏幕实际宽度还是这么大,所以1px的实际长度就变小了。

(2)当一大一小的屏幕,相同的分辨率,那么屏幕大的1px实际长度就大。

9、移动设备的物理像素、逻辑像素、设备像素比?

(1)document.documentElement.clientWidth获取的宽度都是逻辑像素

(2)在手机上物理像素是改变不了的,但是你设置的逻辑像素px,到底用多少物理像素显示,是取决于像素比的。

以渲染一个宽度铺满屏幕的div举例说明

情况1: 375x667(devicePixelRatio=1)、750x1334(devicePixelRatio=2),一使用px布局不会影响布局

设置div宽度为375px,那么在375x667的屏幕水平方向上,刚好由375独立像素渲染,即刚好占满屏幕全部宽度,而在750x1334屏幕上,由于该屏幕的deviceRatio为2,水平方向渲染一个css像素实际使用2个像素,即该div水平方向由750个独立像素渲染,也刚好占满屏幕,所以在这两种屏幕上,即使使用px布局,渲染效果也是一样的

情况2: 375x667(devicePixelRatio=1)、360x640(devicePixelRatio=1),使用px影响布局

设置div宽度为375px,那么在375x667的屏幕水平方向上,刚好由375独立像素渲染,即刚好占满屏幕全部宽度,而在360*640屏幕上,由于该屏幕的deviceRatio同为1,水平方向渲染一个css像素实际使用1个像素,即该div水平方向由375个独立像素渲染,超出屏幕宽度,布局受到影响。

(3)设计给的倍图的使用

根据设计稿设计了宽高后,像素比dpr为1,就用1倍图

像素比dpr为2,就用二倍图。因为图像实际是100px的,你设置50px,放大两倍就是100px了。

(4)1px在不同像素比上粗细不同解决方案:使用transform:scale。

exp: 很多浏览器也显示不了0.5px,这个时候也用这个属性,能显示0.5px的效果。不同内核的浏览器对小数像素的显示和处理也不同。

.border-bottom-1px {position: relative;}.border-bottom-1px::after {content: ' ';width: 100%;height: 0;position: absolute;left: 0;bottom: 0;overflow: hidden;border-bottom: 1px black solid;transform-origin: left bottom;}@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) {.border-bottom-1px::after {-webkit-transform: scaleY(.7);transform: scaleY(.7);}}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {.border-bottom-1px::after {-webkit-transform: scaleY(.5);transform: scaleY(.5);}}@media only screen and (-webkit-min-device-pixel-ratio: 3), only screen and (min-device-pixel-ratio: 3) {.border-bottom-1px ::after {-webkit-transform: scaleY(.33);transform: scaleY(.33);}}

移动web开发相关知识 物理像素、逻辑像素、设备像素比、移动端常见布局、布局视口、视觉视口、理想视口_小杨同学呀呀呀呀的博客-CSDN博客

物理像素、逻辑像素、CSS像素、PPI、设备像素比分别是什么? - 知乎

前端的物理像素、逻辑像素、移动端1像素边框解决方案_小凳子腿的博客-CSDN博客

总结:

在pc端直接使用px。但是不同浏览器有显示的最小字体大小和border大小,都可以使用transform:scale来实现如小于12px的字体和0.5px。

在移动端使用rem。实现等比例放大缩小。但是还有像素比这个概念,设计给的倍图就是在不同像素比的手机下怕失真才用的。

小程序使用rpx。不管宽度多宽都是750rpx。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。