在自己写demo的过程中,想使用display:flex实现垂直居中,代码如下:
<style> #login{ width:100%; height: 100%; display: flex; justify-content: center; align-items: center; } .login-body{ width: 600px; height: 260px; border: 1px solid #000; } </style>
并不能实现我想要的效果,外层的父元素高度没有占满整个屏幕。。
解决:给#login一个min-height: 100vh,配合 display: flex; justify-content: center; align-items: center;实现垂直居中。
<style> #login{ width:100%; min-height: 100vh; display: flex; justify-content: center; align-items: center; } .login-body{ width: 600px; height: 260px; border: 1px solid #000; } </style>
视口单位(Viewport units)
什么是视口?
在桌面端,视口指的是在桌面端,指的是浏览器的可视区域;而在移动端,它涉及3个视口:Layout Viewport(布局视口),Visual Viewport(视觉视口),Ideal Viewport(理想视口)。
视口单位中的“视口”,桌面端指的是浏览器的可视区域;移动端指的就是Viewport中的Layout Viewport, “视区”所指为浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。。
根据CSS3规范,视口单位主要包括以下4个:
1.vw:1vw等于视口宽度的1%,视框宽度是100Vw。
2.vh:1vh等于视口高度的1%,视框高度是100Vh。
3.vmin:选取vw和vh中最小的那个。
4.vmax:选取vw和vh中最大的那个。