-
水平居中
(1)inline-block + text-align
<!doctype html>
<html lang="en">
<head>
<title>Document</title>
<style>
.parent{
width: 400px;
height: 100px;
background: #bbb;
text-align: center;
}
.child{
display: inline-block;
width: 100px;
height: 100px;
background: #333;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>
(2) table + margin
<!doctype html>
<html lang="en">
<head>
<title>Document</title>
<style>
.parent{
width: 400px;
height: 100px;
background: #bbb;
}
.child{
display: table;
margin: 0 auto;
width: 100px;
height: 100px;
background: #333;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>
(3) absolute + transform
<!doctype html>
<html lang="en">
<head>
<title>Document</title>
<style>
.parent{
position: relative;
width: 400px;
height: 100px;
background: #bbb;
}
.child{
position: absolute;
left: 50%;
transform: translateX(-50%);
width: 100px;
height: 100px;
background: #333;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>
(4) flex + justify-content
<!doctype html>
<html lang="en">
<head>
<title>Document</title>
<style>
.parent{
display: flex;
justify-content: center;
width: 400px;
height: 100px;
background: #bbb;
}
.child{
width: 100px;
height: 100px;
background: #333;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>
2. 垂直居中
(1) table-cell + vertical-align
<!doctype html>
<html lang="en">
<head>
<title>Document</title>
<style>
.parent{
display: table-cell;
vertical-align: middle;
width: 100px;
height: 400px;
background: #bbb;
}
.child{
width: 100px;
height: 100px;
background: #333;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>
(2) absolute + transform
<!doctype html>
<html lang="en">
<head>
<title>Document</title>
<style>
.parent{
position: relative;
width: 100px;
height: 400px;
background: #bbb;
}
.child{
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 100px;
height: 100px;
background: #333;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>
(4) flex + align-items
<!doctype html>
<html lang="en">
<head>
<title>Document</title>
<style>
.parent{
display: flex;
align-items: center;
width: 100px;
height: 400px;
background: #bbb;
}
.child{
width: 100px;
height: 100px;
background: #333;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>
3. 水平垂直居中
(1)inline-block + text-align + table-cell + vertical-algin
<!doctype html>
<html lang="en">
<head>
<title>Document</title>
<style>
.parent{
display: table-cell;
vertical-align: middle;
text-align: center;
width: 400px;
height: 400px;
background: #bbb;
}
.child{
display: inline-block;
width: 100px;
height: 100px;
background: #333;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>
(2) absolute + transform
<!doctype html>
<html lang="en">
<head>
<title>Document</title>
<style>
.parent{
position: relative;
width: 400px;
height: 400px;
background: #bbb;
}
.child{
position: absolute;
left: 50%;
top: 50%;
transform: translate3d(-50%, -50%, 0);
width: 100px;
height: 100px;
background: #333;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>
(3) flex + justify-content + align-items
<!doctype html>
<html lang="en">
<head>
<title>Document</title>
<style>
.parent{
display: flex;
justify-content: center;
align-items: center;
width: 400px;
height: 400px;
background: #bbb;
}
.child{
width: 100px;
height: 100px;
background: #333;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>