本文主要介绍前端的尺寸问题:
- em 和 rem
- vw 和 vh
em 和 rem
首先看如下代码和对应代码的运行结果:
示例1:第一个em使用例子。
html
<style>
p{
border: 1px solid;
height: 12em;
}
</style>
<body>
<p></p>
</body>
此时F12打开控制台可以看到如下:16 * 12 = 192。
修改html代码如下:
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>
此时的效果图如下所示:
此时div的结构图如下图:
对比此图和第一幅图可以发现都是12em但是两者的高度不是一样的!
此时在div中添加一个span标签,并添加如下的样式:
html
span{
background-color: red;
width: 8em;
display: inline-block;
}
此时的运行效果如下图:
可以发现span的宽度为8em = 8 * 10px = 80px
; 从上面的内容就可以得到如下的结论:
- em是一个相对长度单位,相对于当前对象内的字体尺寸。如第二个例子所示。
- em会继承父元素的字体大小(如第三个例子所示)。
- 如果当前元素没有设置其大小,则相对于浏览器的默认字体尺寸(16px)。如第一个例子所示。
rem 也是一个相对长度单位,不过是相对于root元素而言。这个root元素就是html标签元素!代码如下:
html
<style>
html{
font-size: 20px;
}
div{
height: 10rem;
width: 10rem;
border: 1px solid;
}
</style>
<body>
<div>
使用rem进行计算
</div>
</body>
此时看下图效果如下图:
vw 和 vh
vw(view width)和vh(view height)是前端开发中的一个动态单位,是一个相对于当前网页视口的单位。它会将一个网页的宽和高都分为100份,一个vh(网页高度的百分之一) or vw(网页宽度的百分之一) 就代表占据当前网页大小的1/100
。
html
<style>
div{
width: 50vw;
height: 50vh;
background-color: #c60023;
}
</style>
<body>
<div>
vw和vh
</div>
</body>
此时运行结果如下图: