1rem 等于 文档流的font-size
通过修改 html的font-size实现自适应
假设
屏幕宽度为 750 clientwidth
设计稿宽度 750 materialWidth
将设计稿与当前设备比例放大100倍关系赋值给html,
则 1 rem 就等于 (设计稿与当前设备比例 * 100)html值则
实际值(rem) =100* 比例 * 设计稿像素
所以为了较好的计算,建议采用开发选用的屏幕分辨率与设计稿一致以 1比1 计算。
例如:
750px的设计稿,开发屏幕750px,使得 1rem 等于 100px, 100%宽度就为 7.5rem;
320px的设计稿,开发屏幕320px,使得 1rem 等于 100px, 100%宽度就为 3.2rem;
以此类推。。。
所以取值为 设稿大小 除于 100,例如:
设计稿宽度为 200px,则rem取值为 2rem
以此类推。。。
注意浏览器支持文字最小像素,所以在 比例中 乘 100,避免rem布局错乱
const flxeJs = function (doc, win, materialWidth){
materialWidth = materialWidth || 750
const docEl = doc.documentElement
const resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
const recalc = function(materialWidth){
var clientwidth = docEl.clientWidth
if(!clientwidth)return;
docEl.style.fontSize = 100 * (clientwidth / materialWidth)+ 'px';
}.bind(null,materialWidth)
if(!doc.addEventListener)return;
win.addEventListener(resizeEvt,recalc, false);
doc.addEventListener('DOMContentLoaded' , recalc, false)
}
export default flxeJs
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。