zoukankan      html  css  js  c++  java
  • 使用 rem 实现 适配各种屏幕布局

    年数已久!!!技术更新太快,谨慎观看,不过作为了解一下思路还是可以的

    在此呢,我只大略的谈一下在研究了px,em,rem,和手淘的做法之后,我所采用的做法及硬性规则;

    我就不再过多的将上面三种单位的区别及好处了,因为这类文章太多了,自己百度去吧,只谈实际做法!

    首先在CSS里要给html一个默认的font-size;毕竟你得知道,万一哪部分加载除了问题咋办,所以我设置font-size:10px;(好计算一点)

    然后就是JS,这部分JS是用来动态的设置html的font-size;

    (function (doc, win) {
    /*初始化 默认宽度、字体、最小最大比例*/
    var init_w = 640,
    init_fs = 10,
    max_scale = 1,
    min_scale = 0.5;
    var docEl = doc.documentElement,
    resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
    recalc = function () {
    var clientWidth = docEl.clientWidth;
    if (!clientWidth) return;
    var percentage = clientWidth / init_w;
    percentage = percentage > max_scale?max_scale: percentage <min_scale?min_scale: percentage ;

    docEl.style.fontSize = init_fs * percentage + 'px';
    };
    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);
    })(document, window);

    然后就是根据设计稿怎么制作页面了,先拿到640的设计稿(我们这边常用的),如果不是得话可以把图像大小改成640的;

    然后比如一个DIV,设计稿上的大小为200*100;那么在CSS里面写法就是,width=20rem;height=10rem;(然后如果要兼容IE低版本的话,还是乖乖的用上px吧)

    如果一些margin,padding也同理,当然可能有些特殊情况需要用到固定高度或者其它情况也可以用固定像素;

    另外一种不用JS的方法,就是利用css3中的媒体查询来根据不同的屏幕大小来写定html的font-size;

    html {
    font-size : 10px;
    }
    @media only screen and (min- 401px){
    html {
    font-size: 6px !important;
    }
    }
    @media only screen and (min- 428px){
    html {
    font-size: 6.5px !important;
    }
    }
    @media only screen and (min- 481px){
    html {
    font-size: 7.25px !important;
    }
    }
    @media only screen and (min- 569px){
    html {
    font-size: 8.625px !important;
    }
    }
    @media only screen and (min- 641px){
    html {
    font-size: 10px !important;
    }
    }

    不过说实话,我喜欢用JS来控制html的font-size;因为CSS的做法太死板了,还要自己先去算好(多累呀,对吧);

    后续可能会修改,完善,不足之处还请包涵。

    仅作为个人笔记以供后期翻阅。

  • 相关阅读:
    把一件简单的事情做好你就不简单了
    一个经验尚浅的码农五年软件开发的一点自我总结,对工作五年的反思~
    我就是一名房地产经纪人!不是中介,谁能明白我们呢?
    我与父辈的酒局
    郎意难坚,侬情自热(文/王路)
    红灯须硬闯,马路要横穿(文/王路)
    孩子,你慢慢来
    职场六年后的一点点感言
    有幸见到一朵花的绽放
    当你遇到她
  • 原文地址:https://www.cnblogs.com/AlexBlogs/p/5025372.html
Copyright © 2011-2022 走看看