<div style="text-indent: 2em; font-size: larger;">

如何让一行短的文本在一个大的容器如层(div)或者高度值远比文本内容高度值要大的段落(p)中垂直居中呢?这个问题困扰了我好久,因为无论我怎么去设置层(div)或者段落(p)的vertical-align属性都无济于事,它们看起来仍然是像下面的效果,顽固地顶端对齐着。

想让我垂直居中?没门!

上面的源码是:<p style="height: 3em; border: solid 1px black; vertical-align: center;">想让我垂直居中?没门!</p>

今天才看到别人使用这样的策略来使文本垂直居中,真是妙极了。这个策略就是,同时设置容器的height与line-height属性,让它们相等。这样就有了下面的效果:

好吧,你赢了,我垂直居中了。

上面的源码是:<p style="height: 3em; border: solid 1px black; line-height: 3em;">好吧,你赢了,我垂直居中了。</p>