この例 では、画像は中央に配置されません。どうして?ブラウザはIEではなく、Windows 7のGoogle Chrome v10です。
<img src="/img/logo.png" style="margin:0px auto;"/>
display:block;
を追加すると機能します。画像はデフォルトでインラインです
明確にするために、block
要素のデフォルトの幅はauto
です。これはもちろん、含まれる要素の利用可能な幅全体を埋めます。
マージンをauto
に設定することにより、ブラウザーは残りのスペースの半分をmargin-left
に割り当て、残りの半分をmargin-right
に割り当てます。
一部の状況(IE、Gecko、Webkitの以前のバージョンなど)および継承では、top
、right
、bottom
、およびleft
が設定されていなくても、position:relative;
を含む要素はmargin:0 auto;
を使用できません。
要素をposition:static;
(デフォルト)に設定すると、これらの状況で修正される場合があります。一般に、指定された幅のブロックレベル要素は、relative
またはstatic
のいずれかの配置を使用して、margin:0 auto;
を尊重します。
display:table;
を使用して自動幅divを中央に配置できます
div{
margin: 0px auto;
float: none;
display: table;
}
私の場合、問題は、幅自体なしで最小および最大幅を設定していたことでした。
幅を追加せずにmargin:auto
を追加するときはいつでも、うまくいかないと思います。私の経験からです。幅は、等しいマージンを提供する必要がある正確な場所を示します。
margin-left:auto; margin-right: auto;
を使用するものには、margin:0 auto;
またはposition:absolute;
に代わるものがあります。これは次の方法です。
要素の左位置を50%(left:50%;
)に設定しましたが、要素が正しく中央に配置されるように正しく中央に配置されません。幅、要素を完全に中央に配置します
以下に例を示します。 http://jsfiddle.net/35ERq/3/
これをボディのcssに配置します。background:#3D668F;次に追加:display:block;マージン:自動; imgのcssへ。
bootstrapボタンの場合:
display: table;
margin: 0 auto;