前端设置宽高时height: 100% 和 100vh 的区别
Posted art-poet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端设置宽高时height: 100% 和 100vh 的区别相关的知识,希望对你有一定的参考价值。
1.em
在做手机端的时候经常会用到的做字体的尺寸单位
说白了 em就相当于“倍”,比如设置当前的div的字体大小为1.5em,则当前的div的字体大小为:当前div继承的字体大小*1.5
但是当div进行嵌套的时候,em始终是按照当前div继承的字体大小来缩放,参照后面的例子。
2.rem
这里的r就是root的意思,意思是相对于根节点来进行缩放,当有嵌套关系的时候,嵌套关系的元素的字体大小始终按照根节点的字体大小进行缩放。
参照后面给的demo
3.vh
vh就是当前屏幕可见高度的1%,也就是说
height:100vh == height:100%;
但是有个好处是当元素没有内容时候,设置height:100%该元素不会被撑开,
但是设置height:100vh,该元素会被撑开屏幕高度一致。
4.vw
vw就是当前屏幕宽度的1%
补充一句,当设置width:100%,被设置元素的宽度是按照父元素的宽度来设置,
但是100vw是相对于屏幕可见宽度来设置的,所以会出现50vw 比50%大的情况
<!DOCTYPE html> <html lang="Zh-cn"> <head> <meta charset="UTF-8"> <title>恭贺新春</title> </head> <style type="text/css" media="screen"> html{ font-size: 14px; } .em, .em > .em-son, .em > .em-son > .em-grandson { font-size: 1.2em; } .rem, .rem > .rem-son, .rem > .rem-son > .rem-grandson { font-size: 1.2rem; } .rem-box { background: #d60b3b; width:10rem; height: 10rem; color: #fff; text-align: center; line-height:5rem; } .vhvw-box { background: #d60b3b; width:50vw; height: 50vh; color: #fff; text-align: center; line-height:25vh; } </style> <body> <h1>em 继承父元素的字体大小,来变大或变小,多层嵌套字体变化</h1> <div class="em"> <br>字体大小 1.2 * 14(父元素body) = 16px</br> <div class="em-son"> <br>字体大小 1.2 * 16(父元素em) = 20px</br> <div class="em-grandson"> <br>字体大小 1.2 * 20(父元素em-son) = 24px</br> </div> </div> </div> <br> <h1>rem 继承根节点元素的字体大小,来变大或变小,多层嵌套字体不变化</h1> <div class="rem"> <br>字体大小 1.2 * 14(根节点html) = 16px</br> <div class="rem-son"> <br>字体大小 1.2 * 14(根节点html) = 16px</br> <div class="rem-grandson"> <br>字体大小 1.2 * 14(根节点html) = 16px</br> </div> </div> </div> <br> <h1>rem 也可作为固定长度单位设置宽高等</h1> <div class="rem-box"> 宽:14 * 10 = 140px<br> 高:14 * 10 = 140px </div> <br> <h1>vh,vw 屏幕可见区域的高度,宽度的1%</h1> <div class="vhvw-box"> <br>宽:屏幕宽度的50%</br> <br>高:屏幕高度的50%</br> </div> </body> </html>
以上是关于前端设置宽高时height: 100% 和 100vh 的区别的主要内容,如果未能解决你的问题,请参考以下文章