原生PC端適應(yīng)所有屏幕

設(shè)計(jì)稿的寬度是1920px(需要適應(yīng)所有屏幕):


image.png
image.png
  1. 任意尺寸的設(shè)計(jì)稿(自適應(yīng))

假設(shè)設(shè)計(jì)稿的寬度為XXXpx;

(function () {
    var b = document.documentElement,
        a = function () {
            var a = b.getBoundingClientRect().width;
            b.style.fontSize = (a / XXX) * 100+ "px";
        }, c = null;
    window.addEventListener("resize", function () {
        clearTimeout(c);
        c = setTimeout(a, 300);
    });
    a();
})();

這里的b.style.fontSize = (a /XXX) *100+ "px";

假設(shè)a=800,XXX=1000,也就是設(shè)計(jì)稿的寬度為1000px,(移動(dòng)端的)屏幕寬800px;

要對(duì)應(yīng)比例還要適配移動(dòng)端,那么,設(shè)計(jì)稿上的1px在移動(dòng)端上就是0.8px;這個(gè)0.8是(a /XXX)計(jì)算得來(lái)的。

而總不能每次測(cè)量的長(zhǎng)度都乘以0.8吧?這豈不是要累死?這時(shí),就用到了rem。

給html一個(gè)font-size:0.8px;這時(shí)移動(dòng)端的1rem就等于設(shè)計(jì)稿的1px;

而Chrome瀏覽器,最小字體不得小于12px;

把字體放大100倍即可。就是:(a /XXX)*100

設(shè)置html font-size: (a /XXX)*100 px;就可以來(lái)什么屏適應(yīng)什么屏,pc瀏覽器打開(kāi)這種網(wǎng)頁(yè)的話網(wǎng)頁(yè)尺寸會(huì)隨著瀏覽器窗口寬度的改變而改變

完整代碼:

<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width,initial-scale=1.0,maixmum-scale=1.0,minimum-scale=1.0,user-scalable=no">
    </head>
    <style type="text/css">
        *{
            margin: auto;
        }
        html,body{
            font-size: 0.8px;
        }
        .pc{
            
            width: 15.2rem;
            /* height: 0.2rem; */
            font-size: 0.3rem;
            background-color: salmon;
            margin: 0 auto;
        }
    </style>
    <body>
        <!-- 大屏 + pc 頁(yè)面 -->
        <div class="pc" id="main">
            Font
            <!-- <div class="column">
                <div class="bk"></div>
                <div class="bk"></div>
                <div class="bk"></div>
            </div>
            <div class="column">
                <div class="big-bk"></div>
                <div class="big-bk"></div>
            </div>
            <div class="column">
                <div class="bk"></div>
                <div class="bk"></div>
                <div class="bk"></div>
            </div> -->
        </div>
      
    </body>

   
</html>
<script type="text/javascript">
    (function () {
        var b = document.documentElement,
            a = function () {
                var a = b.getBoundingClientRect().width;
                b.style.fontSize = (a / 1920) * 100+ "px";
            }, c = null;
        window.addEventListener("resize", function () {
            clearTimeout(c);
            c = setTimeout(a, 300);
        });
        a();
    })();
</script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容