回答:
追加するdisplay:block;
と動作します。画像はデフォルトでインラインです
明確にするために、block
要素のデフォルトの幅はですauto
。これはもちろん、要素を含む要素の使用可能な幅全体を埋めます。
マージンを設定することによりauto
、ブラウザの割り当て半分に残りのスペース、margin-left
およびその他の半分にmargin-right
。
margin:auto
フローの中心にアイテムを配置するために何が必要かについて詳しく説明した場合、すばらしい答えが得られます。(display:block
またはdisplay:table
、position:static
またはposition:relative
、など)
0px auto
しただけauto
ではうまくいきません。
いくつかの状況下で継承(例えばIE、ヤモリ、Webkitの以前のバージョンのように)を有する要素がposition:relative;
防止されるmargin:0 auto;
場合であっても、作業からtop
、right
、bottom
、及びがleft
設定されていません。
要素をposition:static;
(デフォルト)に設定すると、このような状況で要素が修正される場合があります。通常、指定された幅のブロックレベル要素は、またはのmargin:0 auto;
どちらrelative
かを使用して尊重しますstatic
。
margin: 0 auto
フロートがなく、幅が指定されたブロック要素である限り、相対的に配置された要素で問題なく動作します...
float
し、display
その動作を変更することができます。
あなたは自動幅divを中央に置くことができます display:table;
div{
margin: 0px auto;
float: none;
display: table;
}
私の場合、問題は幅自体なしで最小幅と最大幅を設定したことでした。
position:static
、固定有しwidth:
セットすることdisplay:block
要素
widthとaddを追加しない場合は常に、機能しないmargin:auto
と思います。私の経験からです。幅は、等しいマージンを提供する必要がある場所を正確に示します。
これを使用する方法の代わりに、margin-left:auto; margin-right: auto;
またはこれmargin:0 auto;
を使用するposition:absolute;
方法があります:
要素の左側の位置を50%(left:50%;
)に設定しますが、要素を正しく中央に配置しないため、要素を正しく中央に配置するには、幅のマイナス半分のマージン。要素を完全に中央に配置します
ここに例があります:http : //jsfiddle.net/35ERq/3/