zoukankan      html  css  js  c++  java
  • 移动端自适应

    1、js动态设置html的字体大小

    var clientWidth = 0;
    if(document.documentElement.clientWidth >= 600){
        clientWidth = 600;
    }else{
        clientWidth = document.documentElement.clientWidth;
    }
    document.documentElement.style.fontSize = 50 * clientWidth/375 + 'px';
    
    window.onresize = function(){
        if(document.documentElement.clientWidth >= 600){
            clientWidth = 600;
        }else{
            clientWidth = document.documentElement.clientWidth;
        }
        document.documentElement.style.fontSize = 50 * clientWidth/375 + 'px';
    }

    设计稿宽度750px,设备宽度350px,此时HTML 的font-size:50px,及1rem=50px; 假设一元素在设计稿上宽度为750px,750/100=7.5rem(7.5*50=375px)。

    计算方法:设计稿的尺寸 / 100  =  XXX rem;

    2、设置html的font-size: 13.33vw

    首先要先说明:移动端的设计稿一般是width:750px,height:auto(这里指的是不确定),100vw = 100%,这个也没有问题吧;那么,设计稿拿过来,我们可以得出:750px = 100vw,这个也没有问题吧,那么1px等于多少vw呢? 是不是 1px = 100 / 750 vw = 0.1333vw;那么100px = 多少vw呢,这个应该知道了吧。100px = 13.33vw;

    思路过程:

    mobile.width = 750px  => 750px = 100% =100vw => 750px = 100vw => 1px = 0.1333vw => 100px = 13.33vw => 1rem =100px;

    即:我们把html:{font-size: 13.33vw} // 也就是以100px位基准;1rem = 100px;

    计算方法:设计稿的尺寸 / 100 /2  =  XXX rem;

    3、设置html的font-size并缩放页面

    var html = document.getElementsByTagName('html')[0];
    
        var width = html.getBoundingClientRect().width;
    
        html.style.fontSize = width / 16 + 'px';
    
        var PixelRaio = 1 / window.devicePixelRatio;
    
        document.write('<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=' + PixelRaio + ',minimum-scale=' + PixelRaio + ',maximum-scale=' + PixelRaio + '"/>')

     计算方法:设计稿的尺寸 / 46.875  =  XXX rem;

    4、布局单位使用vw和vh

    vw:是相对于视窗宽度的单位,100vw为浏览器视窗的总宽度,也即相对于html的100%。

    vh:是相对于视窗高度的单位,100vh为浏览器视窗的总高度,也即相对于html的height:100%。

    vmin:当前 vw 和 vh 中较小的一个值

    vmax:当前 vw 和 vh 中较大的一个值

     注意:此处的宽高指的是可视区域,即window.innerWidth/window.innerHeight大小,不包含任务栏、标题栏以及底部工具栏的浏览器区域大小。

    vmin、vmax 用处:

    做移动页面开发时,如果使用 vw、wh 设置字体大小(比如 5vw),在竖屏和横屏状态下显示的字体大小是不一样的。
    由于 vmin 和 vmax 是当前较小的 vw 和 vh 和当前较大的 vw 和 vh。这里就可以用到 vmin 和 vmax。使得文字大小在横竖屏下保持一致。
  • 相关阅读:
    PAT Advanced 1067 Sort with Swap(0, i) (25分)
    PAT Advanced 1048 Find Coins (25分)
    PAT Advanced 1060 Are They Equal (25分)
    PAT Advanced 1088 Rational Arithmetic (20分)
    PAT Advanced 1032 Sharing (25分)
    Linux的at命令
    Sublime Text3使用指南
    IntelliJ IDEA创建第一个Groovy工程
    Sublime Text3 安装ftp插件
    Sublime Text3配置Groovy运行环境
  • 原文地址:https://www.cnblogs.com/gxp69/p/9943012.html
Copyright © 2011-2022 走看看