如何让设置浮动的元素水平垂直居中
Posted 一抹夏忧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让设置浮动的元素水平垂直居中相关的知识,希望对你有一定的参考价值。
1.多个子元素同时设置浮动后,欲想实现水平垂直居中,实现代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.clearFix::after{
display:block;
clear:both;
content:"";
visibility:hidden;
height:0;
}
.clearFix{
zoom: 1;
}
.container{
width: 100%;
height: 800px;
background-color: blue;
/* 水平垂直居中 */
position: relative;
}
.child1{
width:200px;
height:200px;
background-color: red;
}
.child2{
width:200px;
height: 200px;
background-color: goldenrod;
}
.lf{
float: left;
}
/* 水平垂直居中 */
.box{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
</style>
</head>
<body>
<div class="container clearFix">
<div class="box clearFix">
<div class="child1 lf">child1</div>
<div class="child2 lf">child2</div>
</div>
</div>
</body>
</html>
2.使用flex布局(有兼容性)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.clearFix::after{
display:block;
clear:both;
content:"";
visibility:hidden;
height:0
}
.clearFix{
zoom: 1;
}
.container{
width: 100%;
height: 800px;
background-color: blue;
display: flex;
/* 垂直居中 */
align-items: center;
/* 水平居中 */
justify-content:center;
}
.child1{
width:200px;
height:200px;
background-color: red;
}
.child2{
width:200px;
height: 200px;
background-color: goldenrod;
}
.lf{
float: left;
}
</style>
</head>
<body>
<div class="container clearFix">
<div class="child1 lf">child1</div>
<div class="child2 lf">child2</div>
</div>
</body>
</html>
3.垂直居中使用display: table-cell; vertical-align: middle; 水平居中:嵌套一层div,设置宽度为子元素宽度,在设置margin: 0 auto;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.clearFix::after{
display:block;
clear:both;
content:"";
visibility:hidden;
height:0;
}
.clearFix{
zoom: 1;
}
.container{
width: 600px;
height: 800px;
background-color: blue;
/* 水平垂直居中 */
display: table-cell;
vertical-align: middle;
}
.child1{
width:200px;
height:200px;
background-color: red;
}
.child2{
width:200px;
height: 200px;
background-color: goldenrod;
}
.lf{
float: left;
}
/* 水平垂直居中 */
.box{
width:400px;
margin: 0 auto;
}
</style>
</head>
<body>
<div class="container clearFix">
<div class="box clearFix">
<div class="child1 lf">child1</div>
<div class="child2 lf">child2</div>
</div>
</div>
</body>
</html>
以上是关于如何让设置浮动的元素水平垂直居中的主要内容,如果未能解决你的问题,请参考以下文章
Web前端面试指导(十四):如何居中一个元素(正常绝对定位浮动元素)?
Web前端面试指导(十四):如何居中一个元素(正常绝对定位浮动元素)?