移动端WEB页面适配

移动端WEB页面适配

前言
公司开发一个项目,把安卓和IOS原生开发的同事加了进来,参与h5页面开发。测试时,发现各种适配问题。UI设计的同事问我:你们是不是没有按设计稿来的?检查一看,通篇是px,我做的em适配完全没有用到。因此整理一下移动端WEB页面适配问题记于此。

在这里也要吐槽一下,现在的公司为了省钱,一个人干了几个人的活,有的人还是跨语言开发。难怪很多人吐槽现在的互联网APP没有精品。

实现适配移动端WEB页面的几种方式

  • 通过js判断,动态加载css样式
    根据适配的机型不同,动态加载css文件

    (function(win,doc){
       var width = doc.documentElement.clientWidth;
       var link =  doc.createElement('link');
       if(wdth<=320){
         link.href = 'min.css'
       }else if(320<width&&width<375){
         link.href = 'b.css'
       }
       .....
    
    })(window,document)

    该方法可以做到匹配任何尺寸屏幕的手机和PC,但是需要每种尺寸的屏幕写一个css文件,使得开发工作量变大。

  • 通过meta标签放大或缩小
    根据meta标签,动态设置user-scalable,maximum-scale,minimum-scale的值

    <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">

    该方法计算复杂,不宜实现

  • 通过css3媒体查询,显示不同的样式
    css3支持媒体查询,可以根据 不同尺寸的屏幕显示不同的样式:

    @media screen and (max-width: 300px) {
           body {
               background-color:lightblue;
            }
        }

    该方法不用维护多套css文件,灵活,但是每一个样式类有多个尺寸,不易更改

  • 通篇使用em作为单位

    em是相对父节点的css长度单位,例如:如果给一个div设置字体大小fontSize为20px,其子节点设置字体大小fontSize为0.5em,则子节点字体的实际大小为0.5*20px = 10px,即:1em = 20px;
    rem是相对于根元素的css长度单位,例如:设置html的字体大小fontSize为20px,那么1rem = 20px

    使用em实现适配的三种方式:

    第一种:

        //css文件
            html{
               font-size:100%;
            }
            body{
                font-size:1em;
                pading:0;
                margin:0;
            }
    

    优点:纯css实现,简单,同一尺寸的手机显示完全一样;
    缺点:手机尺寸不同,显示的可能不同
    第二种:

    //js文件
    (function(doc, win) {
        doc.addEventListener('DOMContentLoaded', function() {
            var clientWidth = doc.documentElement.clientWidth || doc.body.clientWidth;
            doc.body.style.fontSize = (clientWidth / 375 * 16) + 'px'
        }, false)
    })(document, window)

    优点:任何尺寸的屏幕都可以显示一样的UI效果
    缺点:依赖js,而且要确保手机APP的WebView的宽度与手机屏宽一致

    第三种:

    //css文件
    body{
        font-size: 16px;
        margin: 0;
        padding: 0;
    }
    
    @media screen and (max-width: 320px) {
        body{
            font-size: 13.654px
        }
    }
    @media screen and(min-width: 321px) and (max-width: 375px) {
        body{
            font-size: 16px
        }
    }
    ....

    优点:css加媒体查询实现,可以实现与UI几乎一样的效果
    缺点:必须知道所匹配的手机屏宽

  • 使用rem作为单位
    rem实现适配的方式与em的后两种类似,只需将body标签换为html标签

  • 使用vm,vh作为单位
    vh:浏览器的可视窗口(Viewport)的高度分为100份,即:100vh;
    vw:浏览器的可视窗口(Viewport)的宽度分为100份,即:100vw;
    使用vh,vw作为单位,也就适配所有机型
    优点:不需要考虑手机屏幕大小问题
    缺点:不同的字体会出现高度不同,兼容性问题
本软件为网页通用采集爬虫,无需要配置模板,即可采集全球任何一个网站的全站精华文章。本软件全名为钻月文章采集器,属于网页蜘蛛爬虫类程序,用于从指定网站采集海量精华文章,将直接丢弃其中的垃圾网页信息,仅保存具备阅读价值和浏览价值的精华文章,自动执行HTM-TXT转换,并抽取标题、正文图片、正文等信息。本软件为绿色软件解压即可使用,本软件特点如下: (1)本软件采用北大天网MD5指纹排重算法,对于相似相同的网页信息,直接丢弃,不再重复采集。 (2)采集信息含义:[[HT]]表示网页标题,[[HA]]表示文章标题,[[HC]]表示本文章中出现频率TOP10的前10个权重关键字,[[UR]]表示网页中的正文图片链接,[[TXT]]之后为正文。 (3)蜘蛛性能:本软件开启300个线程来保证采集效率。通过采集100万精华文章来执行压力测试,以普通网民的联网计算机为参考标准,单台计算机可以在一天内遍历200万网页、采集20万精华文章,100万精华文章仅需5天就可采集完毕。 (4)正式版与免费版的区别在于:正式版允许将采集的精华文章数据自动保存为ACCESS数据库,免费版不能保存数据到数据库。购买正式版请联系QQ(970093569)。 2 操作步骤 (1)使用前,必须确保你的计算机可以连通网络,且防火墙不要拦截本软件。 (2)运行SETUP.EXE和setup2.exe,以安装操作系统system32支持库。 (3)运行spider.exe,输入网址入口,先点"人工添加"按钮,再点"启动"按钮,将开始执行采集。 3 使用注意 (1)抓取深度:填写0表示不限制抓取深度;填写3表示抓到第3层。 (2)通用蜘蛛模式与分类蜘蛛模式的区别:假定网址入口为“http://youxi.baidu.com/”,若选择通用蜘蛛模式,将遍历“baidu.com”里面的每一个网页;若选择分类蜘蛛模式,则只遍历“youxi.baidu.com”里面的每一个网页。 (3)按钮“从MDB导入”:网址入口从TASK.MDB中批量导入。 (4)本软件采集的原则是不越站,例如给的入口是“http://youxi.baidu.com/”,就只在百度站点内部抓取。 (5)本软件采集过程中,偶尔会弹出一个或数个“错误对话框”,请不予理会,倘若关闭“错误对话框”,采集软件就会挂掉。如果软件挂掉,之前已采集的信息,不会丢失。当再次启动软件执行采集,对于以前已采集的信息不会重新采集,可实现良好的增量采集。 (6)使用者如何选择采集题材:例如你若想采集 “股票类”文章,只需把那些“股票类”站点作为网址入口即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值