下面我举几个实例来介绍在我们利用css固定高度容器时,另一种比较特殊的图片垂直水平居中的实现方法,希望文章对各位同学带来帮助。
在某一个网站(freeappstools)上看到的这个“新奇”解法,说新奇,主要是国内各种总结的方法都没提到过,打引号,只是因为其中的原理很多人都知道:即依靠行高(line-height)的方法。
line-height对于img元素并不起作用:
代码如下
复制代码
<div style="height:250px;background:#ccc;line-height:250px;width:400px;text-align:center;">
<img alt="App Tools on File-Software.com" src="/intl/en/images/logo.gif" width="140">
</div>
line-height对于box内的文本起作用,图片跟随着文字的基线对准:
代码如下
复制代码
<div style="height:250px;background:#ccc;line-height:250px;width:400px;text-align:center">
A test paragraph<img alt="App Tools on File-Software.com" src="/intl/en/images/logo.gif" width="140">
</div>
再设置img的vertical-align:middle;就可以让图片垂直居中:
代码如下
复制代码
<div style="height:250px;background:#ccc;line-height:250px;width:400px;text-align:center">
A test paragraph<img alt="App Tools on File-Software.com" src="/intl/en/images/logo.gif" width="140" style="vertical-align:middle;">
</div>
所以就有人这样做了:(设置font-size:1px,设置字体颜色和背景颜色一致,设置左缩进-1px,图片就完美垂直水平居中了,注意img前面的".")
代码如下
复制代码
<div style="height:250px;background:#ccc;line-height:250px;font-size:1px;width:400px;text-align:center;text-indent:-1px;color:#ccc">
.<img alt="App Tools on File-Software.com" src="/intl/en/images/logo.gif" width="140" style="vertical-align:middle;">
</div>
上述方法已通过IE7+,FF,Chrome测试~~
或者,如果你不需要兼容IE低版本,你可以直接用:after伪类来处理这个".",
div:after{content:"."}