kd-cloud-web / Blog

一群人, 关于前端, 做一些有趣的事儿
13 stars 1 forks source link

移动端兼容 #37

Open 1h1h opened 4 years ago

1h1h commented 4 years ago

移动端兼容

1.分辨率

1.1.像素


定义:像素即一个小方块,它具有特定的位置和颜色。图片、电子屏幕(手机、电脑)就是由无数个具有特定颜色和特定位置的小方块拼接而成。像素可以作为图片或电子屏幕的最小组成单位。

px、rem、em、vh、vw、%的区别

  1. px

    px就是pixel的缩写,意为像素。px就是一张图片最小的一个点,一张位图就是千千万万的这样的点构成的,比如常常听到的电脑像素是1024x768的,表示的是水平方向是1024个像素点,垂直方向是768个像素点。

  2. em

    参考物是父元素的font-size,具有继承的特点。如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值。

  3. rem

    css3新单位,相对于根元素html(网页)的font-size,不会像em那样,依赖于父元素的字体大小,而造成混乱。

  4. %

    一般宽泛的讲是相对于父元素,但是并不是十分准确。 1、对于普通定位元素就是我们理解的父元素 2、对于position: absolute;的元素是相对于已定位的父元素 3、对于position: fixed;的元素是相对于 ViewPort(可视窗口)

  5. vw

    css3新单位,viewport width的缩写,视窗宽度,1vw等于视窗宽度的1%。 举个例子:浏览器宽度1200px, 1 vw = 1200px/100 = 12 px。

  6. vh

    css3新单位,viewport height的缩写,视窗高度,1vh等于视窗高度的1%。 举个例子:浏览器高度900px, 1 vh = 900px/100 = 9 px。

  7. vm

css3新单位,相对于视口的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vm 举个例子:浏览器高度900px,宽度1200px,取最小的浏览器高度, 1 vm = 900px/100 = 9 px。

1.2屏幕分辨率

定义: 屏幕分辨率指一个屏幕具体由多少个像素点组成。

iphone 6 :1334x750像素

iphone xs max: 2688 X 1242,分辨率高不代表屏幕就清晰,屏幕清晰程度还与尺寸有关。

1.3图像分辨率

1.4PPI

PPI计算

1.5DPI

2设备独立像素

2.1设备像素比

3布局

常见问题

   .avatar {
      background-image: -webkit-image-set( "conardLi_1x.png" 1x, "conardLi_2x.png" 2x );
   }

   <img src="conardLi_1x.png"
     srcset=" conardLi_2x.png 2x, conardLi_3x.png 3x">

   const dpr = window.devicePixelRatio;

   const images =  document.querySelectorAll('img');

   images.forEach((img)=>{
     img.src.replace(".", `@${dpr}x.`);
  })

参考