回答:
display:inline-block;
フロートの代わりに使用
フロートを中央に配置することはできませんが、インラインブロックはテキストのように中央に配置されるため、「行」の外側の全体的なコンテナーに配置します。text-align: center;
次に、画像/キャプションコンテナーごとに設定しinline-block;
ます。 -必要に応じてテキストを左揃えにします
font-size:0
を設定して子で復元します。またはletter-spacing:-.31em
、親とletter-spacing:0
子で使用します。
vertical-align:middle
使用中に追加する必要がある場合がありますdisplay:inline-block
。
CSS Flexboxは最近よくサポートされています。flexboxに関する優れたチュートリアルについては、こちらをご覧ください。
これは、すべての新しいブラウザーで正常に機能します。
#container {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.block {
width: 150px;
height: 150px;
background-color: #cccccc;
margin: 10px;
}
<div id="container">
<div class="block">1</div>
<div class="block">2</div>
<div class="block">3</div>
<div class="block">4</div>
<div class="block">5</div>
</div>
ディスプレイを使用しない理由を尋ねる人もいるでしょう:インラインブロック?単純なことでは問題ありませんが、ブロック内に複雑なコードがある場合、レイアウトが正しく中央揃えされなくなる可能性があります。フレックスボックスは、フロート左よりも安定しています。
次のように試してください:
<div id="divContainer">
<div class="divImageHolder">
IMG HERE
</div>
<div class="divImageHolder">
IMG HERE
</div>
<div class="divImageHolder">
IMG HERE
</div>
<br class="clear" />
</div>
<style type="text/css">
#divContainer { margin: 0 auto; width: 800px; }
.divImageHolder { float:left; }
.clear { clear:both; }
</style>
おそらくこれがあなたが探しているものです-https://www.w3schools.com/css/css3_flexbox.asp
CSS:
#container {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.block {
width: 150px;
height: 150px;
margin: 10px;
}
HTML:
<div id="container">
<div class="block">1</div>
<div class="block">2</div>
<div class="block">3</div>
</div>