【CSS_01】前端开发中使用到尺寸单位

378 阅读2分钟

本文主要介绍前端的尺寸问题:

  • em 和 rem
  • vw 和 vh

em 和 rem

首先看如下代码和对应代码的运行结果:

示例1:第一个em使用例子。

<style>
p{
    border: 1px solid;
    height: 12em;
}
</style>
<body>
<p></p>
</body>

此时F12打开控制台可以看到如下:16 * 12 = 192。

size_01_em尺寸.png

修改html代码如下:

<style>
    body{
        text-align: center;
        padding-left: 30%;
    }
    p{
        border: 1px solid;
        height: 12em;
        width: 100px;
    }
    div{
        font-size: 10px;
        height: 12em;
        border: 1px solid;
        margin-top: 10px;
        width: 100px;
    }
</style>
<body>
    <p> 我是 p</p>
    <div>
        我是div
    </div>
</body>

此时的效果图如下所示:

size_02_em对比.png 此时div的结构图如下图:

size_03_em_div.png

对比此图和第一幅图可以发现都是12em但是两者的高度不是一样的!

此时在div中添加一个span标签,并添加如下的样式:

    span{
        background-color: red;
        width: 8em;
        display: inline-block;
    }

此时的运行效果如下图:

size_04_em_inherit.png

可以发现span的宽度为8em = 8 * 10px = 80px; 从上面的内容就可以得到如下的结论:

  • em是一个相对长度单位,相对于当前对象内的字体尺寸。如第二个例子所示。
  • em会继承父元素的字体大小(如第三个例子所示)。
  • 如果当前元素没有设置其大小,则相对于浏览器的默认字体尺寸(16px)。如第一个例子所示。

rem 也是一个相对长度单位,不过是相对于root元素而言。这个root元素就是html标签元素!代码如下:

    <style>
        html{
            font-size: 20px;
        }
        div{
            height: 10rem;
            width: 10rem;
            border: 1px solid;
        }
    </style>
    <body>
        <div>
            使用rem进行计算
        </div>
    </body>

此时看下图效果如下图:

size_05_rem.png

vw 和 vh

vw(view width)和vh(view height)是前端开发中的一个动态单位,是一个相对于当前网页视口的单位。它会将一个网页的宽和高都分为100份,一个vh(网页高度的百分之一) or vw(网页宽度的百分之一) 就代表占据当前网页大小的1/100

    <style>
        div{
            width: 50vw;
            height: 50vh;
            background-color: #c60023;
        }
    </style><body>
        <div>
            vw和vh
        </div>
    </body>

此时运行结果如下图:

动画.gif