响应式开发最佳实践(viewport+rem)

2018-08-29  本文已影响0人  One_Hund

一、CSS像素、物理像素、逻辑像素、设备像素比、PPI、Viewport

参考链接:https://github.com/jawil/blog/issues/21

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

二、响应式开发最佳实践(参考淘宝响应式)

参考链接: http://www.cnblogs.com/lyzg/p/4877277.html

响应式开发最佳实践原理分析:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<script>
    document.addEventListener("DOMContentLoaded",function(){
    // 淘宝响应式多写了下面这2句,修改viewport
    let scale = 1 / window.devicePixelRatio;
    document.querySelector('meta[name="viewport"]').setAttribute('content','initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no'); 
    // 淘宝+网易响应式都需要的修改font-size
    document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + 'px';
    },false)
</script>
<body>
    <div>
        <div style="
            background: pink;
            height: 2rem;
            width: 8rem;
        ">600px</div>
        <div style="
            background: lightblue;
            height: 2rem;
            width: 8rem;
        ">600px</div>
    </div>
</body>
</html>

由此可见:两者最终视觉上的宽高是一致的,但同样视觉宽高,淘宝做法显示更多的像素点,所以将会更加高清,效果更好,推荐使用。

<script>
    document.addEventListener("DOMContentLoaded",function(){
    // 淘宝做法多写了下面这2句,修改viewport
        let scale = 1 / window.devicePixelRatio;
        document.querySelector('meta[name="viewport"]').setAttribute('content','initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no'); 
    // 通用做法(淘宝+网易都需要),修改font-size
        document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + 'px';
    },false)
</script>

附、Domready使用“DOMContentLoaded”事件监听


参考链接:https://developer.mozilla.org/zh-CN/docs/Web/Events/DOMContentLoaded
参考链接:https://www.jianshu.com/p/88b9d3874749
上一篇 下一篇

猜你喜欢

热点阅读