我有一个固定大小的方形 div,并希望在其中放置任意大小的图像,以便使用 CSS 水平和垂直居中。水平很容易:
.container { text-align: center }
对于垂直,常见的解决方案是:
.container {
height: 50px;
line-height: 50px;
}
img {
vertical-align: middle;
}
但这并不完美,根据字体大小,图像会下降 2-4px 左右。
据我了解,这是因为用于垂直对齐的“中间”并不是真正的中间,而是靠近中间的字体上的特定位置。一个(有点老套)的解决方法是:
container {
font-size: 0;
}
这适用于 Chrome 和 IE7,但不适用于 IE8。我们希望使所有字体行在中间的同一点,但它似乎是偶然发生的,这取决于浏览器,可能还取决于所使用的字体。
我能想到的唯一解决方案是修改行高,使其略短,以使图像出现在正确的位置,但它看起来非常脆弱。有更好的解决方案吗?
在此处查看所有三种解决方案的演示:http: //jsfiddle.net/usvrj/3/
那些没有 IE8 的人可能会发现这个屏幕截图很有用: