我正在创建一个电子商务网站,但无法将所有缩略图垂直居中。问题是我所有的图像都是不同的大小,让每个图像在所有浏览器中垂直对齐变得很痛苦。我研究了不同的 CSS 选项、display-table
、line-height
和其他选项。他们在现代浏览器中工作,但在 IE 中表现不佳(当然)。我的想法是大型大型网站正在调整图像的大小(我可以毫无问题地做到这一点),然后将图像覆盖在背景上他们需要的确切大小。有谁知道这是否是这样做的?如果是这样,您能指导我阅读一些有关如何在 PHP 中执行此操作的文档吗?
或者,如果有人认为我可以在没有叠加图像的所有额外工作的情况下做到这一点,请告诉我。万一你想看看我在这里做什么:
HTML
<a href="#">
<div id="product">
<div id="product-image">
<img src="" border="0" />
</div>
<div id="product-name"></div>
<div id="product-price"></div>
</div>
</a>
选项 1:JQUERY(这似乎是我最大的希望,但无法让它正常工作)
var h = $('#product-image').height();
$.map($('#product-image img'), function(e)
{
var top =( h- $(e).height())/2;
$(e).css("margin-top",top);
});
选项 2:CSS
#product
{
float:left;
margin:5px;
width:200px;
height:200px;
border:1px solid #999;
}
#product-image
{
margin:2px auto;
width:194px;
height:145px;
text-align:center;
}
#product-image img
{
max-height: 100%;
max-width: 100%;
vertical-align:middle;
}
编辑
我找到了工作代码,感谢 Explosion Pills。对于任何试图完成这项工作的人,我建议使用这个 jQuery 方法和 Fiddle 链接http://jsfiddle.net/9VfUS/1/:
工作查询
var h = $('div#product-image').height();
$('div#product-image img').each(function ()
{
var top = (h - $(this).height()) / 2;
$(this).css("margin-top",top);
});