首先我们要知道通过css实现元素的水平居中较为简单:对文本,只需要对其父级元素设置text-align:center,对div等块级元素,只需要设置其left和right的margin值为auto;要实现元素的垂直居中,有人会想到css中的vertical-align属性,但是它只对拥有valign特性的元素才生效。所以接下来我们就来看看css实现单文本垂直居中和多文本垂直居中的实现方法。
我们先来看看css单行文本垂直居中
对于单行文本,我们只需要将文本行高(line-height)和所在区域高度(height)设置一致就可以了。
css单行文本垂直居中的实现代码:
HTML:
<divid="div1">
php中文网单行文本垂直居中
</div>
CSS:
#div1{
width:300px;
height:100px;
margin:50pxauto;
border:1pxsolidred;
line-height:100px;/*设置line-height与父级元素的height相等*/
text-align:center;/*设置文本水平居中*/
overflow:hidden;/*防止内容超出容器或者产生自动换行*/
}
css单行文本垂直居中效果如下:
2345截图20180919132917.png
然后再来看看多行文本垂直居中
说明:多行文本垂直居中分为两种情况,一个是父级元素高度不固定,随着内容变化;另一个是父级元素高度固定。
1、父级元素高度不固定
父级高度不固定的时,高度只能通过内部文本来撑开。所以,我们可以通过设置内填充(padding)的值来使文本看起来垂直居中,只需设置padding-top和padding-bottom的值相等:
css多行文本垂直居中代码:
HTML:
<divid="div1">
php中文网多行文本垂直居中,
php中文网多行文本垂直居中,
php中文网多行文本垂直居中,
php中文网多行文本垂直居中。
</div>
CSS:
#div1{
width:300px;
margin:50pxauto;
border:1pxsolidred;
text-align:center;/*设置文本水平居中*/
padding:50px20px;
}
css多行文本垂直居中效果如下:
2345截图20180919132853.png
2、父级元素高度固定
css中的vertical-align属性,它只对拥有valign特性的元素才生效,结合display:table;,可以使得div模拟table属性。因此我们可以设置父级div的display属性:display:table;;然后再添加一个div包含文本内容,设置其display:table-cell;和vertical-align:middle。
css多行文本垂直居中代码:
HTML:
<divid="outer">
<divid="middle">
php中文网固定高度多行文本垂直居中,
php中文网固定高度多行文本垂直居中,
php中文网固定高度多行文本垂直居中,
php中文网固定高度多行文本垂直居中。
</div>
</div>
CSS:
#outer{
width:400px;
height:200px;
margin:50pxauto;
border:1pxsolidred;
display:table;
}
#middle{
display:table-cell;
vertical-align:middle;
text-align:center;/*设置文本水平居中*/
width:100%;
}

本文转载自中文网

本文转载自中文网
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/css3-style/c55422.shtml