1.用inline-block和vertical-align來實現居中:這種方法適合於未知寬度高度的情況下。
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#container{
text-align: center;
height: 400px;
background: #4dc71f;
}
#container:before{
content: "";
height: 100%;
display: inline-block;
vertical-align: middle;
margin-right: -0.25em;
}
#center-div{
display: inline-block;
vertical-align: middle;
background: #2aabd2;
}
</style>
</head>
<body>
<div id="container">
<div id="center-div">
xxx
</div>
</div>
</body>
</html>
複製程式碼
2.用相對絕對定位和負邊距實現上下左右居中:高度和寬度已知
首先相對父元素top,left定位在50%的位置,這時候只是圖片左上角居中,而中心點還沒居中,加上margin: -100px 0 0 -100px;利用負邊距把圖片的中心點位於父元素的中心點,從而實現垂直水平居中
<html lang="en">
<head>
<meta charset="utf-8">
<title>test</title>
<style>
.div2{
height: 600px;
width: 600px;
position: relative;
border: 2px solid #000;
}
.img2{
height: 200px;
width: 200px;
position: relative;
top: 50%;
left: 50%;
margin: -100px 0 0 -100px;
}
</style>
</head>
<body>
<div class="div2">
<img class="img2" src="images/hongbao.png">
</div>
</body>
</html>
複製程式碼
3.利用絕對定位來實現居中:適合高度,寬度已知的情況。
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#container{
text-align: center;
height: 400px;
background: #4dc71f;
position: relative;
}
#center-div{
position: absolute;
margin: auto;
top: 0;
right: 0;
left:0;
bottom: 0;
width: 200px;
height: 200px;
background: #2b669a;
}
</style>
</head>
<body>
<div id="container">
<div id="center-div">
xxx
</div>
</div>
</body>
</html>
複製程式碼
4.使用table-cell,inline-block實現水平垂直居中:適合高度寬度未知的情況
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#container{
display: table-cell;
text-align: center;
vertical-align: middle;
height: 300px;
background: #ccc;
}
#center-div{
display: inline-block;
}
</style>
</head>
<body>
<div id="container">
<div id="center-div">
xxx
</div>
</div>
</body>
</html>
複製程式碼
5.使用css3中的transform來時實現水平垂直居中:適合高度寬度未知的情況
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#container{
position: relative;
height: 200px;
background: #333;
}
#center-div{
position: absolute;
top:50%;
left: 50%;
transform: translate(-50%,-50%);
}
</style>
</head>
<body>
<div id="container">
<div id="center-div">
xxx
</div>
</div>
</body>
</html>
複製程式碼
6.使用Flexbox來實現水平垂直居中;適合寬度高度未知情況,但是要注意相容性
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#p_2{
display: flex;
justify-content: center;
align-items: center;
width: 200px;
height: 200px;
background: #009f95;
}
</style>
</head>
<body>
<div id="p_2">
<div id="c_2">
xxxxxxx
</div>
</div>
</body>
</html>
複製程式碼
本文旨在個人學習並記錄,如有侵權,請聯絡告知,謝謝!