rem布局

作者: admin 日期: 2018-09-19 09:39:45 人气: - 评论: 0

最近接触了rem布局的使用,在开发一些运营页面的时候经常需要开发一些造型复杂的图文混排页面,在不同分辨率下的自适应很麻烦,最简单的适配方案就是根据屏幕宽度等比缩放页面,rem布局就是这种思路的一种实现方案。


原理: rem布局就是会根据页面的html的font-size 进行重新计算

比如html的font-size是40px

那1rem就是40px , 0.5rem就是20px

我们只要让页面中的全部元素都使用rem作为单位,再写一个js来控制html的font-size就能实现整个页面按比例缩放了


页面头部加入 script ,这个scrip会根据屏幕大小自动设置html 的font-size到合适的值

<script>!function(d){function e(){var c=a.getBoundingClientRect().width;1===b&&(480<c&&(c=480),a.style.width=c+"px",a.style.margin="0 auto");a.style.fontSize=c/10+"px"}var a=d.document.documentElement,b=d.devicePixelRatio,f,b=2<b?3:1<b?2:1;a.setAttribute("data-dpr",b);d.addEventListener("resize",function(){clearTimeout(f);f=setTimeout(e,200)},!1);e()}(window);</script>

由于使用rem布局之后在开发过程中难免要用到px和rem的换算,我使用了less来解决这个问题


@baseFontSize: 75;//基于视觉稿横屏尺寸/100得出的基准font-size
@rem: 1rem / @baseFontSize;
.box1{
padding-left:25 * @rem;
 padding-right:25 * @rem;
}

缺点:

在开发大型项目的时候难免使用到第三方的ui库,但是这些第三方ui库很可能没有使用rem布局方案,如果页面中的元素混合使用了rem和其他布局方案,在不同屏幕上很难保证效果正常。


相关内容

发表评论
更多 网友评论0 条评论)
暂无评论

Copyright © 2012-2014 我的代码板 Inc. 保留所有权利。

页面耗时0.0194秒, 内存占用1.82 MB, 访问数据库13次

闽ICP备15009223号-1