垂直居中布局
小于 1 分钟
垂直居中布局
简单搭建一下页面,搞两个盒子相互嵌套即可。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>垂直居中布局</title>
<!-- <link rel="stylesheet" href="./style-2.css"> -->
<!-- <link rel="stylesheet" href="./style-1.css"> -->
</head>
<body>
<div class="father box">
<div class="child content">
这是一个文本
</div>
</div>
</body>
</html>
块级元素
块级元素不定宽高
利用
position+transform
transform: translate(-50%, -50%);
这里的的 50%,其实是基于子元素的宽高的 50%
.father { position: relative; } .child { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
利用
position+margin: auto
position
,将上下左右设置为0
,这样子元素就被拉到和父元素一样大,这时候设置margin: 0
,就可以实现居中.father { position: relative; } .child { position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; }
利用
flex
布局.father { display: flex; justify-content: center; align-items: center; }
利用
grid
实现.father { display: grid; align-items: center; justify-content: center; }
块级元素定宽高
上面介绍的所有不定宽高的解决方法,都可以使用。
特殊:利用 position+margin 负值
:
/* 定宽高的垂直居中 */
.box {
width: 200px;
height: 200px;
background-color: rgb(191, 215, 236);
}
.content {
width: 50px;
height: 50px;
background-color: rgb(106, 185, 159);
}
.father {
position: relative;
}
.child {
position: absolute;
top: 50%;
left: 50%;
margin-top: -25px;
margin-left: -25px;
}
内联元素
一般就将内联元素变为块级元素也行,或者设置 text-align: center
和 line-height: height
。