根据UI设计完成自适应页面(包括字体大小)
在自适应这块,首先想到的就是rem这个相对于HTML根元素的单位。但是现在的问题是如何设置基准的fontSize可以避免麻烦切复杂的换算。理所当然的想到基基准的fontsize(即HTML的fontsize)为100px 的话,计算起来就会相对的简单许多。思路没问题,那么又如何根据一张特定的UI设计图写出可以自适应各种屏幕的页面呢。
我们假如使用的设计图是宽度为1920px,那么我们的基准fontsize应该怎么根据屏幕的大小定呢。这个基准fonzise肯定不是一个定值,因为屏幕大小不一致啊。在此,我们就需要根据屏幕的大小来动态设置基准的fontsize了。
先看这样一段代码:
var remWindowWidth=19.2
document.getElementsByTagName('html')[0].style.fontSize=document.documentElement.clientWidth/remWindowWidth+'px';
window.onresize = function(){
document.getElementsByTagName('html')[0].style.fontSize=document.documentElement.clientWidth/remWindowWidth+'px';
}
有没有看懂?这不就是动态设置基准的fontsize么?但是为什么要除以19.2呢?因为我们参考的UI设计图是1920px的呀,要是UI设计图是1360px,那么就会是屏幕的宽度除以13.6.即remWindowWidth = UI设计图的宽度/100,这样的话基准的fontzise在与设计图相同分辨率的情况下就是100px了。至于在别的情况下是不是100px,我们就不用管那么多了,因为在不同分辨率下的基准是不一样的,我们只需要根据设计图走就好了。别的分辨率情况下会自动转化的。
还有,这个动态设置基准的方法一定要写在文档的最上面哦,要不然都没有基准,怎么显示rem的计算值呀