text-align:center在CSS中不能垂直工作,我该如何解决这个问题呢?

时间:2014-01-08 06:24:35

标签: html css css3

我正在使用只保存文本的div。它使用绝对定位将自身置于使用相对定位的图像div的顶部。如果我使用

,我可以在CSS中水平居中

div { text-align:center; width:100%; }

但是当我尝试使用

垂直居中时

div { text-align:center; height:100%; }

它不垂直居中。我猜这是因为text-align:center只是水平指定..我怎么能绕过这个?我已经看到了一些解决方案,如果外部div是固定大小,但外部div不是固定大小。它是流动的,所以我需要它也能流畅地工作。我尝试过使用top:50%,但我希望它完全集中......我很缺乏经验,所以对我很轻松

3 个答案:

答案 0 :(得分:0)

正如您所猜测的,您是对的,text-align: center;用于仅水平对齐文本/元素而不是垂直对齐...所以如果您正在谈论垂直对齐单行文本而不是您需要使用{ {1}},它将等于容器line-height

Demo

height

如果您希望垂直对齐整个元素,那么您可以使用我不建议使用的div { height: 100px; width: 100px; border: 1px solid #f00; line-height: 100px; text-align: center; /* Forgot this in the demo */ } ,而是使用嵌套在position: absolute;父级内的display: table-cell;

Demo 2

display: table;

答案 1 :(得分:0)

试试这个......

div {  position:absolute; top:50%; }

并通过

http://phrogz.net/CSS/vertical-align/index.html

答案 2 :(得分:-1)

试试这个。将代码设为

div { text-align:center; line-height:100%; }