html vh和百分比,css中height 100vh的应用场景,动态高度百分比布局,浏览器视区大小单位...

本文介绍了CSS中高度单位vh和百分比的应用,如动态高度百分比布局、浏览器视区大小单位。通过实例展示了如何利用100vh实现全屏高度,以及vw、vh在限制元素尺寸、弹框居中和视区覆盖等方面的作用。同时,对比了em和rem在字体缩放中的区别,以及它们与vw、vh的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

css中height 100vh的应用场景,动态高度百分比布局,浏览器视区大小单位

height:100vh

一些只能vw, vh才能完成的应用场景:

1. 场景之:元素的尺寸限制

vw vh 主要是实现了动态高度百分比布局,比如宽高比不固定的图片,vw很轻易的实现正方形图片缩略图

原始大图的尺寸限制问题——因为很有可能图片过大,尼玛一屏显示器区域不够放,我们需要对其进行缩放处理。

这类限制的实现,在当下,需要获得图片的原始大小,以及浏览器内部尺寸,算大小,算比例等,算是比较折腾的。

但是,vw, vh等单位本身就是浏览器视区大小相关单位,直接使用其做限制,岂不省了N多JS代码?

CSS代码:

.vw_vh_img {

max-width: 90vw;

max-height: 90%;

max-height: 90vh;

}

HTML代码:

1977ee931815242e6ddff22b75cd4f5f.png

2. CSS3新vw, vh单位与纯CSS定位的弹框屏幕居中效果实例页面

3. 视区覆盖以及边界定位

vh确实是相对于屏幕的,但默认body有一个margin,100%加上这个margin就超出了就会出现滚动条。清除body的margin即可。

body{margin:0;}

=====================

在做手机端的时候经常会用到的做字体的尺寸单位

说白了 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%大的情况

恭贺新春

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;

}

em 继承父元素的字体大小,来变大或变小,多层嵌套字体变化

字体大小 1.2 * 14(父元素body) = 16px

字体大小 1.2 * 16(父元素em) = 20px

字体大小 1.2 * 20(父元素em-son) = 24px

rem 继承根节点元素的字体大小,来变大或变小,多层嵌套字体不变化

字体大小 1.2 * 14(根节点html) = 16px

字体大小 1.2 * 14(根节点html) = 16px

字体大小 1.2 * 14(根节点html) = 16px

rem 也可作为固定长度单位设置宽高等

宽:14 * 10 = 140px

高:14 * 10 = 140px

vh,vw 屏幕可见区域的高度,宽度的1%

宽:屏幕宽度的50%

高:屏幕高度的50%

恭贺新春

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;

}

em 继承父元素的字体大小,来变大或变小,多层嵌套字体变化

字体大小 1.2 * 14(父元素body) = 16px

字体大小 1.2 * 16(父元素em) = 20px

字体大小 1.2 * 20(父元素em-son) = 24px

rem 继承根节点元素的字体大小,来变大或变小,多层嵌套字体不变化

字体大小 1.2 * 14(根节点html) = 16px

字体大小 1.2 * 14(根节点html) = 16px

字体大小 1.2 * 14(根节点html) = 16px

rem 也可作为固定长度单位设置宽高等

宽:14 * 10 = 140px

高:14 * 10 = 140px

vh,vw 屏幕可见区域的高度,宽度的1%

宽:屏幕宽度的50%

高:屏幕高度的50%

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值