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。使得文字大小在横竖屏下保持一致。
  • 相关阅读:
    Ubuntu 上更新 Flash 插件
    Ubuntu 17.10 安装 “爱壁纸” 时,缺失了 python-support 依赖
    Windows 7 64 位操作系统安装 Ubuntu 17.10
    Linux CentOS 6.9(图形界面)安装中文输入法
    Linux 编译 apr-util 时报错
    Linux 添加普通用户到 sudoers 文件
    PHP 结合实例认识 Socket
    PHP 快速建立一个对象
    使用Git GUI,上传项目到github,并实现预览功能
    用JS判断号码
  • 原文地址:https://www.cnblogs.com/gxp69/p/9943012.html
Copyright © 2011-2022 走看看