和sui、light7有一些渊源,项目使用的是light7,不过其他两者的文档也都看了,感觉不到大的差别。
//// Rem// --------------------------------------------------// Vertical screen//375屏幕为 20px,以此为基础计算出每一种宽度的字体大小//375以下不变,375以上等比放大@baseWidth: 375px;@baseFont: 20px;html { ?font-size: @baseFont; ?//默认当做320px宽度的屏幕来处理}body { ?font-size: 16px;}@bps: 400px, 414px, 480px; .loop(@i: 1) when (@i <= length(@bps)) { ?//注意less数组是从1开始的 ?@bp: extract(@bps, @i); ?@font: @bp/@baseWidth*@baseFont; ???@media only screen and (min-width: @bp){ ???html { ?????font-size: @font !important; ???} ?} ?.loop((@i + 1));};.loop;
1.默认的是竖屏情况下的展示。隐约的表明我们要自己禁止横屏或是自己做横屏适应。我的做法是用户横屏时直接出弹框提示。
2.以375px宽设备的逻辑像素为基准---20px=1rem,计算公式为 x/20=width/375;其中width为设备的逻辑像素,反计算出新的rem基准值。赋值给html。sui,light7,和jquery--weui只给常见的375,414等添加了判断。安卓设备逻辑像素大多是360px,不在判断范围内,直接设置成16px了,没有套用计算公式。
3.像是padding,margin,font-size等尽量换算成rem,自适应屏幕。
读jquery-weui的rem.less
原文地址:http://www.cnblogs.com/Merrys/p/8098636.html