div中文字垂直居中的实现方法

发布时间:2019-10-08编辑:脚本学堂
本文介绍下,实现div中文字的垂直居中的方法,有需要的朋友参考下。

如何实现页面中某些div层里的文字垂直居中,包括多行文字以及单行文字;

本文介绍几种适用的div文字垂直居中的方法。

 使用css中的vertical-align是没有效果的。
 W3C官方对vertical-align做了如下的解释:
 “ This property affects the vertical positioning inside a line box of the boxes generated by an inline-level element.”
   
实际上,一个Box中由很多行很多元素组成,vertical-align只作用于在同一行内的元素,它的垂直并不是相对于整个Box而言的。
前面定义了一个60px的高度,但是这个Box中存在很多行,那段文本并不能对齐到中央。
因此希望那段文本对齐中间,需要给它定义一个line-height的属性,让line-height为60px,作用于一行的vertical-align就可以工作了。   

如果是单行文字想垂直居中,只要保证div高和行高保持一致,就可以了。
1,CSS代码:
 

复制代码 代码示例:
#div-a{
height:60px;
line-height:60px;
}

2,XHTML代码:
 

复制代码 代码示例:
<div id="div-a">
......
</div>

要实现div中文字水平居中,加上“text-align:center;”即可;
1,CSS代码:
 

复制代码 代码示例:
#div-a{
text-align:center;
height:60px;
line-height:60px;
}

2,XHTML代码:
 

复制代码 代码示例:
<div id="div-a">
脚本学堂,欢迎大家的光临。
</div>
 

说明:如果在父级元素定义TEXT-ALIGN:center;这个的意思就是在父级元素内的内容居中;对于IE这样设定就已经可以了。但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT:auto; MARGIN-LEFT:auto;”。

但是,如果是多行文字,上面的垂直居中的方法就不行了,一个变通的实现方法;使用table,在table外面再套上相应的div,
例如:
 

复制代码 代码示例:
<table>
<tr><td style="vertical-align:middle;height:300px;background-color:red">
</td></tr>
</table>

多行文字居中的另一个方法:
多行内容居中,且容器高度可变,给出一致的 padding-bottom 和 padding-top即可:
 

复制代码 代码示例:
.middle-demo-2
{
padding-top: 24px;
padding-bottom: 24px;
}

优点:
1. 同时支持块级和内联极元素
2. 支持非文本内容
3. 支持所有浏览器

缺点:
容器不能固定高度

如何使图片在DIV中垂直居中,可以用背景的方法。如下:
 

复制代码 代码示例:
body
{
BACKGROUND:url(http://www.jb200.com/images/logo.gif) #FFF no-repeat center;
}

关键就是最后的center,这个参数定义图片的位置。
还可以写成“top  left”(左上角)或"bottom right"等,也可以直接写数值"50 30"。

就介绍这些吧,希望有助于大家理解与掌握div居中,div中文字居中的实现方法。
脚本学堂,祝大家学习进步。

>>> 查看更多 css 居中 相关教程 <<<