移动端适配方案思路

128 阅读1分钟

(1) em 相对父级元素设置的 font-size 来设置大小 如果父元素没有设置 font-size ,则继续向上查

找,直至有设置 font-size 元素

(2) rem 直接参照 html 标签字体大小,并且所有使用 rem 单位的都是参照 html 标签 网易实例:

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title></title>
    <script type="text/javascript">
        (function(win,lib){
            var doc=win.document;
            var docEl=doc.documentElement;
            var metaEl=doc.querySelector('meta[name="viewport"]');
            if (metaEl) {
                console.log(metaEl.getAttribute("content"))
                var match=metaEl.getAttribute("content").match(/initial\-scale=([\d\.]+)/);
                console.log(match[1])
            } else {
                console.log('bbb')
            }
        })(window,window["lib"]  || (window["lib"]={}));
    </script>
</head>

<body>
    <div>
        <h1>移动端适配方案思路</h1>
    </div>
</body>

<html>

1、得到屏幕的宽

var w_win=document.documentElement/clientWidth || document.body.clientWidth;

2、得到html元素

var _html=document.getElementsByTagName('html');

3、设置根元素的字体大小

_html.style.fontSize=w_win/20+'px';

完整代码:

<html style="font-size: 16px;">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style type="text/css">
h1{
    font-size: 2rem;font-weight: normal;
}
.img_w{
    width: 5rem;display: block;
}
</style>
<script type="text/javascript">
    // 得到屏幕的宽
    var w_win=document.documentElement/clientWidth || document.body.clientWidth;
    // 得到html元素
    var _html=document.getElementsByTagName('html');
    // console.log(_html[0])
    // 设置根元素的字体大小
    _html.style.fontSize=w_win/20+'px';
</script>
</html>

<div>
<h1>适合方案思路</h1>
<img src="./img/js.jpg" class="img_w">
</div>