@认知·互联网前端框架视觉艺术

移动端屏幕适配(基础)

2020-04-10  本文已影响0人  Rising_life

常见移动web布局适配方法

rem单位介绍

实例

未适配

新建一个项目,写入以下代码

<div class="test">
    <p class="hello">Hello World</p>
</div>

然后给html一个样式

.test{
    width:320px;
    height:160px;
    background-color: bisque;
    text-align: text;
}
.hello{
    color:orangered;
}

使用px作为单位,在移动端调试模式iphone5环境查看一下。会发现div的宽度是正好的,再查看一下字体,发现大小是16px。


iphone5环境

在移动端调试模式 iphone6/7/8 环境查看。刷新页面后会发现div的宽度较窄,再查看一下字体,发现大小还是16px。


iphone6/7/8环境
现在把CSS中的px单位换成rem单位来进行测试。因为html根元素的字体大小是16px,那么换成rem单位,直接除以16就好。
.test{
    width:20rem;
    height:10rem;
    background-color: bisque;
    text-align: text;
}
.hello{
    color:orangered;
    font-size:1rem;
}

页面并没有什么变化,我们只是掌握了换算关系,还不能实现适配,因为我们根元素的字体是固定的。

JS控制适配屏幕

明白了REM的原理后,可以使用这个特点来进行适应布局了,这也是现在比较主流的移动端web适配方案。
如果你有更好的方案,可以在文章下方进行留言。

<script>
      /* 获取移动端屏幕的宽度 */
      let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
      /* 获取html DOM元素 */
      let htmlDom = document.getElementsByTagName("html")[0];
      /* 设置根元素字体大小 */
      htmlDom.style.fontSize = htmlWidth / 20 + "px";
</script>

在移动端调试模式iphone5环境查看一下。会发现div的宽度是正好的,查看一下字体,发现大小是16px。


适配后iphone5环境

在移动端调试模式iphone6/7/8环境查看一下。会发现div的宽度也是正好的,再查看一下字体,发现大小是18.75px。


适配后iphone6/7/8环境
上一篇 下一篇

猜你喜欢

热点阅读