zoukankan      html  css  js  c++  java
  • rem单位

    一、使用方法:

    1、头部添加<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />

    2、设置根元素html的font-size作为标准,我在这里用的100px

    3、引入自动判断屏幕的js

    4、使用的时候记得换算具体的rem

    测试代码如下:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
            <style type="text/css">
                html{
                    font-size: 100px;
                }
                #test{
                    font-size: 5rem;
                }
            </style>
        </head>
        <body>
            <div id="test">
                请拉动屏幕查看字体是否放大
            </div>
            <script type="text/javascript">
                ;(function (doc, win) {
                    var docEl = doc.documentElement,
                      resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
                      recalc = function () {
                        var clientWidth = docEl.clientWidth;
                        if (!clientWidth) return;
                        docEl.style.fontSize = 100 * (clientWidth / 375) + 'px';
                      };
                
                    if (!doc.addEventListener) return;
                    win.addEventListener(resizeEvt, recalc, false);
                    doc.addEventListener('DOMContentLoaded', recalc, false);
                })(document, window);
            </script>
        </body>
    </html>

     二、常见问题

    ①为什么要使用CSS逻辑像素数?

    对于苹果6手机屏幕来说,750px的页面宽度是一个安全的最大宽度,保证了移动端页面两边不会留白。注意这里的px是css逻辑像素,与设备的物理像素是有区别的。如iPhone 6使用的是Retina视网膜屏幕,使用2px x 2px的 device pixel 代表 1px x 1px 的 css pixel,所以设备像素数为750 x 1334px,而它的CSS逻辑像素数为375 x 667px。
    如果要切移动端页面,你可以先把效果图宽度等比例缩放到375px,很好用。

    ②为什么要设置html的font-size?

    rem就是根元素(即:html)的字体大小。html中的所有标签样式凡是涉及到尺寸的(如: height,width,padding,margin,font-size。甚至,left,top等)你都可以放心大胆的用rem作单位。
    如果你把html的font-size设为100px,前面说过,rem就是html的字体大小,那么1rem = 100px。

    那么一个宽60px,高40px元素样式设置如下:(需要注意设计稿上60px经过css逻辑像素数处理后是30px,即缩小2倍)

    width=60px/2/100px=0.3rem

    height=40px/2/100px=0.2rem

    ③为什么不一开始把html的font-size设为1px?

    浏览器一般都有最小字体限制,比如谷歌浏览器,最小中文字体就是12px,所以实际上没有办法让1rem=1px。

    个性签名:别低头,王冠会掉,别后退,梦想会碎~~~~~
  • 相关阅读:
    WEBAPP开发技巧(手机网站开发注意事项)
    2014阿里前端线上笔试题
    [NOIp2008] 双栈排序 (二分图染色 + 贪心)
    [NOIp2012] 国王游戏(排序 + 贪心 + 高精度)
    关于错排公式以及扩展的一些小结论
    [NOI2009]诗人小G(dp + 决策单调性优化)
    Codeforces Round #429 (Div. 1) C. On the Bench(dp + 组合数)
    Educational Codeforces Round 33 (Rated for Div. 2) F. Subtree Minimum Query(主席树合并)
    Codeforces Round #511 (Div. 1) C. Region Separation(dp + 数论)
    Codeforces Round #471 (Div. 2) F. Heaps(dp)
  • 原文地址:https://www.cnblogs.com/lily1010/p/5401550.html
Copyright © 2011-2022 走看看