huenchao / questions

每天想到的问题,都放在issue中。
6 stars 2 forks source link

c端开发常见问题 #40

Open huenchao opened 2 years ago

huenchao commented 2 years ago

1. viewport 高清问题、字体

背景: iphone 默认980px的展示,比如iphone6 是375的宽,750的物理像素,但是一个viewport下是代表980px,也就是把375的iphone分成了980分。 这个时候虽然dpr的值是2,但是手机浏览器会重新算,正确的dpr = 750 / 980

引入meta viewport:

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no,viewport-fit=cover" />

这里的width和initial-scale的值,就是改了viewport的值,比如ip6就是375了, 这个时候dpr就真是2了,dpr = 750 / 375

三个问题

最早手淘flexible是以ip6 750的物理像素为标准,把屏幕分成10分。设置html的字体大小为 x rem.其中x表示1/10的屏幕宽度。不涉及viewport相关的改动。所以假设你没有给页面配置viewport,那你在iphone6上默认viewport 980px,设计师给你一个按照750的设计稿,上面是20px, 你在代码里如果写20px,放到980里可能比例不对。按照flexible的计算方式: // set 1rem = viewWidth / 10 function setRemUnit () { var rem = docEl.clientWidth / 10 docEl.style.fontSize = rem + 'px' },

750 / 10 = 75. 20 / 75 rem