比例调整动态加载图像的大小并使它们垂直和水平居中

时间:2012-03-04 11:54:42

标签: jquery css image-resizing centering

我有一些动态加载的图像,在代码中设置了宽度和高度。显然,它不会按比例缩放它们。这是我用来动态加载图片的代码

$(function(){
    $.getJSON("inc/API.php", {command:"top3"}, function(result) {
        for(var i = 0; i<result.length; i++) {
            $("<div id='top3imgContainer'><a href='images/" + result[i].imageFileName + "' rel='shadowbox[top3]' title='" 
                + result[i].imageHeader + "'><img width='220' height='220' src='images/" + result[i].imageFileName + "' id='top3img' /></a></div>").appendTo("#divTop3");
        } Shadowbox.init({
                continuous:true,
                displayCounter:false,
                overlayColor:"#a09e92",
                overlayOpacity:0.8
            });
     });
});

HTML

<div id="divContent">
    <div id="divTop3">
    </div>
</div>

这是 CSS

#divContent {
width:860px;
border: 1px solid;
border-color: #dbd9ca;
border-radius: 10px;
-moz-border-radius: 10px;
margin:5px;
margin-top:20px;
margin-bottom:20px;
padding:5px;
clear:both;
margin-bottom:20px;
}

#divTop3 {
width:850;
text-align:center;
position:relative;
}

#top3imgContainer {
width:245px;
height:270px;
background-image:url(../images_ui/frame.png);
background-repeat:no-repeat;
display:inline-block;
margin: 0 15px 0 15px;
}

img#top3img {
border-radius: 10px;
-moz-border-radius: 10px;
margin-left:13px;
margin-right:20px;
margin-top:17px;
}

在应用CSS后,它的外观如下: http://i44.tinypic.com/168x7i9.jpg

不完全成比例而不是真正居中。 所以问题是 - 我如何按比例缩放它们?之后 - 我如何将每个图像置于其div中?

谢谢!

1 个答案:

答案 0 :(得分:0)

我这样做了:http://jsfiddle.net/ydZJk/

主要变化如下:

#top3imgContainer {
    width:       100px;
    height:      120px;
    line-height: 120px;
}

img {
    vertical-align: middle;
    max-width:  100px; /* check in all browsers! */
    max-height: 120px; /* Old IEs won't like it */
}