在固定大小的 div 中垂直对齐中心图像
我有一个 145px X 145px 的 div。我在这次潜水中有一张图片。 img 可以是任意大小(最长边为 130 像素)。我希望图像在 div 中垂直居中。我尝试过的所有方法都适用于大多数浏览器,但不适用于 IE7。我需要一些可以在 IE7 中运行的东西。
I have a div which is 145px X 145px. I have an img inside this dive. The img could be of any size (longest side being 130px). I would like the image to be centered vertically in the div. Everything that I have tried works in most browsers, but not IE7. I need something that will work in IE7.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这是一个跨浏览器的解决方案:
here's a cross-browser solution:
您可以将图像替换为 div 上的背景,如下所示:
You can replace the image by a background on the div like this :
不确定 IE7 是否适用,但对于 IE9 和其他以下现代浏览器是否有效。
使用它
这会将图像置于正中心。
Not sure about IE7 but for IE9 and rest of the modern browsers following works.
To use it
This places images at dead centre.
不确定到目前为止您已经尝试过什么,但如果图像显示为内联元素,vertical-align CSS 属性应该可以工作。
有关垂直对齐的一些信息: http://www.w3schools.com/css/pr_pos_vertical- align.asp
如果您必须考虑所有图像高度,这几乎是不使用 JavaScript 的唯一方法。
如果图像不是内联元素,并且您只需容纳高度一致的图像,您可以执行以下操作:
否则,我认为容纳不同高度的图像的唯一方法是对 CSS 执行类似的操作,但设置使用 JS 将负边距设置为图像高度的一半。
Not sure what you have tried so far but the vertical-align CSS property should work if the images are displayed as inline elements.
Some info on vertical-align: http://www.w3schools.com/css/pr_pos_vertical-align.asp
If you have to account for all image heights, that is pretty much the only way without using JavaScript.
If the images are not inline elements and you only had to accommodate images of a consistent height, you could do something like this:
Otherwise the only way I can think to accomodate images of varying height would be to do something similar with your CSS but set the negative margin to half of the image's height with JS.
使用
line-height
属性解决了我的问题。参考: div 中的垂直对齐图像
HTML:
<强>CSS:
Using the
line-height
property solved the problem for me.Reference: vertical-align image in div
HTML:
CSS:
我创建了一些 jQuery 代码来完成此操作,而不必使用令人讨厌的表格:
并且您还需要一点 css:
I created a little jQuery code to do this without having to use nasty tables:
And you also need a little bit of css: