前端设置宽高时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>

注意

如果在vue项目中无法让div层占满全屏幕,可以试试在app.vue添加css

#app { height: 100%; width: 100%; }

或者将100%修改为100vh,即可占满全屏幕。

最后

十分感谢原博主,原博客地址如下:
前端设置宽高时height:100% 和 100vh 的区别


__EOF__

本文作者damarkday知识库
本文链接https://www.cnblogs.com/GoodMemoryBlog/p/14300292.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   DAmarkday  阅读(1125)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示