css如何實(shí)現(xiàn)垂直居中

css
沐橙
174
2021-04-25 08:40:19

css實(shí)現(xiàn)垂直居中的方法:1、使用“l(fā)ine-height”屬性使文字垂直居中,只需要在css中添加“l(fā)ine-height:300px;”樣式來(lái)實(shí)現(xiàn),其中300px表示寬度和行高相同。2、使用絕對(duì)定位“position: relative;”和負(fù)外邊距“margin: -50px 0 0 0;”對(duì)塊級(jí)元素進(jìn)行垂直居中;3、使用絕對(duì)定位屬性和“transform”的“translate”屬性將元素的中心和父容器的中心重合實(shí)現(xiàn)垂直居中;4、使用flex布局(彈性布局)實(shí)現(xiàn)垂直居中即可。

css如何實(shí)現(xiàn)垂直居中

具體內(nèi)容如下:

1、line-height 使文字垂直居中

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>css 垂直居中</title>

<style>

.box{

    width: 300px;

    height: 300px;

    background: #21B4BB;

    color: #FFF;

    line-height:300px;

}

</style>

</head>

<body>

<div class="box">css 垂直居中了--文本文字</div>

</body>

</html>

效果圖:

css如何實(shí)現(xiàn)垂直居中

這樣就能讓div中的文字水平垂直居中了


2、使用絕對(duì)定位和負(fù)外邊距對(duì)塊級(jí)元素進(jìn)行垂直居中 (已知元素的高度)


如果我們知道元素的高度,可以這樣來(lái)實(shí)現(xiàn)垂直居中:


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>css 垂直居中</title>

<style>

.box{

width: 300px;

    height: 300px;

    background: #ddd;

    position: relative;

}

.child{

width: 150px;

    height: 100px;

    background: orange;

    position: absolute;

    top: 50%;

    margin: -50px 0 0 0;

    line-height: 100px;

}

</style>

</head>

<body>

<div class="box">

    <div class="child">css 垂直居中</div>

</div>

</body>

</html>

效果圖:

css如何實(shí)現(xiàn)垂直居中

這個(gè)方法兼容性不錯(cuò),但是有一個(gè)小缺點(diǎn):必須提前知道被居中塊級(jí)元素的尺寸,否則無(wú)法準(zhǔn)確實(shí)現(xiàn)垂直居中。

3、使用絕對(duì)定位和transform進(jìn)行垂直居中(未知元素高度

如果我們不知道元素的高度,那么就需要先將元素定位到容器的中心位置,然后使用 transform 的 translate 屬性,將元素的中心和父容器的中心重合,從而實(shí)現(xiàn)垂直居中:


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>css 垂直居中</title>

<style>

.box{

width: 300px;

    height: 300px;

    background: #ddd;

    position: relative;

}

.child{

background: #93BC49;

    position: absolute;

    top: 50%;

    transform: translate(0, -50%);

}

</style>

</head>

<body>

<div class="box">

    <div class="child">css 垂直居中,css 垂直居中,css 垂直居中,css 垂直居中,css 垂直居中</div>

</div>

</body>

</html>

效果圖:

css如何實(shí)現(xiàn)垂直居中

這種方法有一個(gè)非常明顯的好處就是不必提前知道被居中元素的尺寸了,因?yàn)閠ransform中translate偏移的百分比就是相對(duì)于元素自身的尺寸而言的。


4. 使用flex布局


1)、使文字垂直居中


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>css 垂直居中</title>

<style>

.box{

    width: 300px;

    height: 200px;

    background: #21B4BB;

    color: #FFF;

    /*設(shè)置為伸縮容器*/

    display: -webkit-box;

    display: -moz-box;

    display: -ms-flexbox;

    display: -webkit-flex;

    display: flex;

    /*垂直居中*/

    -webkit-box-align: center;/*舊版本*/

    -moz-box-align: center;/*舊版本*/

    -ms-flex-align: center;/*混合版本*/

    -webkit-align-items: center;/*新版本*/

    align-items: center;/*新版本*/

}

</style>

</head>

<body>

<div class="box">css 垂直居中--文本文字(彈性布局)</div>

</body>

</html>

效果圖:

css如何實(shí)現(xiàn)垂直居中

2)、使塊級(jí)元素(div)垂直居中


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>css 垂直居中</title>

<style>

.box{

width: 300px;

    height: 300px;

    background: #ddd;

    display: flex;

    flex-direction: column;

    justify-content: center;

}

.child{

width: 300px;

    height: 100px;

    background: #08BC67;

    line-height: 100px;

}

</style>

</head>

<body>

<div class="box">

    <div class="child">css 垂直居中了--彈性布局</div>

</div>

</body>

</html>

效果圖:

css如何實(shí)現(xiàn)垂直居中



0