目錄:
1、水平居中
2、垂直居中
塊級標簽:設置 margin : 0 auto
行內標簽:設置 text-align : center
行內-塊級標簽:設置 text-align : center
塊級標簽水平居中
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#box{
width: 350px;
height: 200px;
background-color: red;
margin: 20px;
}
.test1{
background-color: greenyellow;
width: 150px;
height: 40px;
}
</style>
</head>
<body>
<div id="box">
<div class="test1">我是塊級元素</div>
</div>
</body>
</html>

現在讓綠色的塊級標簽水平居中,同時讓綠色塊級標簽的文字內容水平居中。
設置 text-align 實現了塊級標簽內的文字水平居中:

計算大div寬度跟小div寬度,然后設置 margin-left 實現綠色的塊級標簽水平居中:

實現了。但是,如果使用這種方式,一旦改變了大 div 的 width 或者小 div 的 width,就要重新計算 margin-left。
使用自適應的方法更好。

也可以把 text-align 寫到 test1 樣式里。
之所以寫到 box 樣式里也可以是因為 text-align 是可以被繼承的。在子盒子里找不到就回到父盒子里面找 text-align。

行內-標簽水平居中
margin : 0 auto 只在塊級標簽上好使。在行內標簽上不好使。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#box{
width: 350px;
height: 200px;
background-color: red;
margin: 20px;
}
span{
background-color: skyblue
}
</style>
</head>
<body>
<div id="box">
<span>我是行內標簽</span>
</div>
</body>
</html>

讓它水平居中:

行內塊級標簽水平居中

讓它水平居中:

塊級標簽:
行內標簽:在父盒子樣式中設置 line-height 等於 父盒子 height
行內-塊級標簽:在父盒子樣式中設置 line-height 等於 父盒子 height
行內標簽垂直居中
需要先了解 line-height 。
實現垂直居中前:

實現垂直居中:

實現了垂直居中。
下面來了解一下 line-height,舉幾個例子來了解一下。
分別設置 line-height 為以下值,行內標簽的位置分別在:
line-height : 200px

line-height : 100px

line-height : 300px

行內-塊級標簽垂直居中
實現垂直居中前:

實現垂直居中:

塊級標簽居中
實現垂直居中前:

想要實現垂直居中,如果只設置 line-height 會出現這樣的效果:

Q :為什么塊級標簽沒有垂直居中,塊級標簽內的文字在父盒子中垂直居中了?
A : 因為 line-height 也是可以被繼承的,子盒子中沒有 line-height, 但是父盒子中有line-height,子盒子就繼承了 line-height。
Q :如果想要文字在子盒子中垂直居中怎么辦?
A : 在子盒子里面重寫 line-height

實現盒子居中布局有2種方式:方式1:定位;方式2:伸縮布局
方式1:定位
要遵循 “ 子絕父相 ” 的原則。子標簽絕對定位,父標簽相對定位。

這時子盒子左上角與父盒子中心點重合,需要讓子盒子中心點到父盒子中心點。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
#box{
width: 350px;
height: 200px;
background-color: red;
margin: 20px;
line-height: 200px;
/*父相*/
position: relative;
}
.test1{
background-color: greenyellow;
width: 150px;
height: 40px;
text-align: center;
line-height: 40px;
/*子絕*/
position: absolute;
left: 50%;
top: 50%;
margin-left: -75px;
margin-top: -20px;
}
</style>
</head>
<body>
<div id="box">
<div class="test1">我是塊級元素</div>
</div>
</body>
</html>
實現了垂直居中。
