に表示するサムネイル画像のセットがありdiv
ます。div の幅は、画面サイズによって異なります。画像はすべて の固定サイズで150px * 150px
、パディングは5px
です。これらのサムネイル画像をグリッド レイアウトで配置し、これらの画像を外側の div に対して中央揃えにする必要があります。text-align: center
外側のdivを試すことができました。
しかし、この方法では、最後の行の画像が中央に表示され、左から並べたいと思います。padding-left (=freespace/2)
そこで、画像を配置した後に利用可能な空き容量を計算し、外側の div にa を適用して、コンテンツが中央揃えで表示されるようにすることを考えました。
これは私が使用したコードです。
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/
しかし、コンテンツが完全に中央揃えではないため、これは期待どおりに機能しません。ロジックを微調整する必要があるかもしれませんが、私はそれを理解できません。