我有一组缩略图显示在div
. div 的宽度可以根据屏幕大小而有所不同。图像都是固定大小的150px * 150px
,内边距为5px
. 我希望这些缩略图图像以网格布局排列,并且我希望这些图像相对于外部 div 居中对齐。我可以尝试text-align: center
外部 div。
但是这样最后一行中的图像将出现在我希望它们从左侧排列的中心。所以我想在放置图像后计算可用的可用空间并将 apadding-left (=freespace/2)
应用于外部 div 以便内容显示为中心对齐。
这是我使用的代码。
CSS
#outer {
border: 1px solid;
resize: horizontal;
overflow: auto;
width: 700px;
padding: 0;
}
.inner {
width: 150px;
height: 150px;
background: #ccc;
padding: 5px;
display: inline-block;
}
jQuery
$(document).ready(function() {
$("#position").click(function() {
var maxCount = Math.floor($("#outer").outerWidth() / $(".inner").outerWidth());
console.log("maxcount::" + maxCount);
var freeSpace = $("#outer").outerWidth() - ($(".inner").outerWidth() * maxCount);
console.log("freeSpace::" + freeSpace);
$("#outer").css("padding-left", freeSpace / 2);
});
$("#text").toggle(function() {
$("#outer").css("text-align","center");
},function(){
$("#outer").css("text-align","left");
});
});
HTML
<button id="position">
Adjust position
</button>
<button id="text">
Toggle text align
</button>
<div id="outer">
<div class="inner"></div>
<div class="inner"></div>
<div class="inner"></div>
<div class="inner"></div>
<div class="inner"></div>
<div class="inner"></div>
<div class="inner"></div>
</div>
这里有一个演示 - http://jsfiddle.net/userdude/fzjrm/1/
但这并没有像我预期的那样工作,因为内容没有完全居中对齐。可能是逻辑需要一些调整,我无法弄清楚。