[CSS]如何使div窗口垂直居中

 

父级元素高度为 0 .

父级元素的高度由子元素撑开.

body默认高度为0 所以为子元素设置百分比高度单位不会生效

下面转载一种新布局单位:

css3自适应布局单位vw,vh详解

视口单位(Viewport units)

什么是视口? 

在桌面端,视口指的是在桌面端,指的是浏览器的可视区域;而在移动端,它涉及3个视口:Layout Viewport(布局视口),Visual Viewport(视觉视口),Ideal Viewport(理想视口)。

视口单位中的“视口”,桌面端指的是浏览器的可视区域;移动端指的就是Viewport中的Layout Viewport, “视区”所指为浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。。

 根据CSS3规范,视口单位主要包括以下4个:

      1.vw:1vw等于视口宽度的1%。

      2.vh:1vh等于视口高度的1%。

      3.vmin:选取vw和vh中最小的那个。

      4.vmax:选取vw和vh中最大的那个。

 vh and vw:相对于视口的高度和宽度,而不是父元素的(CSS百分比是相对于包含它的最近的父元素的高度和宽度)。1vh 等于1/100的视口高度,1vw 等于1/100的视口宽度。

比如:浏览器高度950px,宽度为1920px, 1 vh = 950px/100 = 9.5 px,1vw = 1920px/100 =19.2 px。

vmax相对于视口的宽度或高度中较大的那个。其中最大的那个被均分为100单位的vmax。

vmin相对于视口的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vmin。

原文: https://www.cnblogs.com/jiajialove/p/10833305.html

解决方法:

使用flex布局为父元素设置单位高度100vh.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>test</title>
		<link rel="stylesheet" href="css/login2.css" />
		<style type="text/css">
			body{
				margin: 0;
			}
			#mainboxFLEX{
				height: 100vh;
				width: 100%;
				display: flex;
				justify-content: center;
				align-items: center;
				
			
			}
			#mainboxFLEX #mainbox{
				width: 40%;
				height: 500px;
				background-color: #FF0000;
			}
		</style>
	</head>
	<body>
		<div id="mainboxFLEX">
			<div id="mainbox">
				
			</div>
			
		</div>
	</body>
</html>

效果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

soar+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值