html - 垂直对齐 : middle an <img> inside a div doesn't centers image

标签 html css

我有一个名为 product-large 的 div,里面有一个 img 作为 child 。结构如下所示:

<div class="product-large">
         <img id="product-image" src="http://cf.shopious.com/images/store_logos/thumbnail/2159d3537713da6dd80c80b33c87bbc1ce2c2aac.jpg" alt="">
</div>

问题是产品图片没有居中,而是贴在顶部。我已经在 img css 中使用了 vertical-align: middle 。这是为什么?

您可以看到完整的工作站点here (检查大图上的元素)

最佳答案

居中的替代方法

1) 获取img的固定高度和宽度并使position:relative为图像并包含div
2) 将图像定位在 50% top & 50% left (现在左上角在中心)
3) 在图像宽度的负一半处应用 margin-left,在 img 高度的负一半处应用 margin-top

在名为 container 的 div 中有一个 200 像素的猫图像的示例:

.container {position:relative; width:600px; height:600px; background:red;}

.cat {position:relative; height:200px; width:200px; top:50%; left:50%; margin-top:-100px; margin-left:-100px;}

JS FIDDLE LINK - http://jsfiddle.net/qhWLK/

编辑:如果图像大小不同,使用 jQuery 获取图像大小并在页面加载或文档准备就绪时应用居中 CSS,此方法仍然有效

关于html - 垂直对齐 : middle an <img> inside a div doesn't centers image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17160366/

相关文章:

html - 位置和大小

javascript - 如何传递 innerHTML 参数?

html - CSS div 大小问题

twitter-bootstrap - 使用 Bootstrap 图标作为 div 的背景

jquery - 背景图像循环 - 具有平滑淡入淡出或过渡的 z 索引

css - 为什么 vue scss 中的 unknown word 会被编译?

javascript - jQuery 滑动 Div

javascript - 检测伪类 :invalid from javascript

css 填充兼容性 firefox 9 chromium 15

javascript - 如何正确设置 Accordion 的高度以使文本适合