如果您不知道图像大小,但您已将图片上传到容器大小旁边(可能是更大或更小的图像),那么这篇文章可能会很有用。对我有用的是下一个代码:
<a class="linkPic" href="#">
<img src="images/img1.jpg" alt=""/>
</a>
<a class="linkPic" href="#">
<img src="images/img2.jpg" alt=""/>
</a>
<a class="linkPic" href="#">
<img src="images/img3.jpg" alt=""/>
</a>
在 .css 文件中,您有以下规则:
a.linkPic{
position:relative;
display: block;
width: 200px; height:180px; overflow:hidden;
}
a.linkPic img{
position:absolute;
}
您会注意到 a.linkPic 中有一个图像标签,因此首先您必须将其设置为“position:relative”以包含“img”绝对元素。使图片居中而没有问题的诀窍是一点 jQuery 代码。按照评论来了解发生了什么(一些行取自本页的 Vladimir Maryasov 帖子):
$("a.linkPic img").each(function() {
// Get container size
var wrapW = $("a.linkPic").width();
var wrapH = $("a.linkPic").height();
// Get image sizes
var imgW = $(this).width();
var imgH = $(this).height();
// Compare if image is bigger than container
// If image is bigger, we have to adjust positions
// and if dont, we have to center it inside the container
if (imgW > wrapW && imgH > wrapH)
{
// Centrar por medio de cálculos
var moveX = (imgW - wrapW)/2;
var moveY = (imgH - wrapH)/2;
// attach negative and pixel for CSS rule
var hWide = '-' + moveX + 'px';
var hTall = '-' + moveY + 'px';
$(this).addClass("imgCenterInDiv").css({
"margin-left" : hWide,
"margin-top" : hTall
});
} else {
$(this).addClass("imgCenterInDiv").css({
"left" : 0,
"right" : 0,
"top" : 0,
"bottom" : 0,
"margin" : "auto",
});
}//if
});
在此之后,a.linkPic 容器中的所有图片都将完全居中放置。我希望这篇文章对某人有用!