移动端屏幕适配(基础)

作者: Rising_life | 来源:发表于2020-04-10 11:11 被阅读0次

常见移动web布局适配方法

  • 固定高度,宽度百分比:这种方法只适合简单要求不高的webApp,几乎达不到大型项目的要求,属于过时的方法。
  • Media Query(媒体查询):现在比较主流的适配方案,比如我们常用的样式框架Bootstrap就是靠这个起家的,它能完成大部分项目需求,但是编写过于复杂。
  • flex布局:主流的布局方式,不仅适用于移动Web,网页上也表现良好,这也是现在工作中用的最多的布局方式,项目尽量采用flex+rem的方式进行布局和完成移动端的适配。

rem单位介绍

  • rem(font size of the root element)是相对长度单位。相对于根元素(即html元素)font-size计算值的倍数。
  • 适配原理:将px替换成rem,动态修改html的font-size适配。它可以很好的根据根元素的字体大小来进行变化,从而达到各种屏幕基本一致的效果体验。

实例

未适配

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

<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环境

相关文章

  • 移动端屏幕适配(基础)

    常见移动web布局适配方法 固定高度,宽度百分比:这种方法只适合简单要求不高的webApp,几乎达不到大型项目的要...

  • 微信小游戏屏幕适配

    作者: 何永峰;标签: 屏幕适配 屏幕适配 适配都是老生常谈,移动端要根据手机屏幕适配,PC端也有时候根据不同的...

  • LayaAir屏幕适配

    LayaAir屏幕适配 官方教程链接:LayaAir实战开发11-屏幕适配 屏幕适配 随着移动端设备(手机、平板、...

  • 移动端相关文章

    前端基础知识概述 -- 移动端开发的屏幕、图像、字体与布局的兼容适配 备用链接 原文

  • 移动端屏幕适配

    首先了解一下rem是什么?它的全称是 font size of the root element (根元素的字体大...

  • 移动端屏幕适配

  • 移动端屏幕适配

    1、什么是rem rem(font size of the root element)是指相对于根元素( )的字体...

  • vue3.0 高仿饿了么项目(项目初始化)

    对于移动端适配的理解 常用rem作为适配方案 对于flex的理解 样式当前有效 项目初始化 移动端屏幕禁止缩放 ...

  • 解决vue移动端适配问题

    1,先看看网上关于移动端适配讲解 再聊移动端页面适配,rem和vw适配方案! 基础点:rem相对根节点 字体的大小...

  • 解决vue移动端适配问题

    1,先看看网上关于移动端适配讲解 再聊移动端页面适配,rem和vw适配方案! 基础点:rem相对根节点字体的大小。...

网友评论

    本文标题:移动端屏幕适配(基础)

    本文链接:https://www.haomeiwen.com/subject/djglmhtx.html