In diesem Beispiel ist das Bild nicht zentriert. Warum? Mein Browser ist Google Chrome v10 unter Windows 7, nicht IE.
<img src="/img/logo.png" style="margin:0px auto;"/>
In diesem Beispiel ist das Bild nicht zentriert. Warum? Mein Browser ist Google Chrome v10 unter Windows 7, nicht IE.
<img src="/img/logo.png" style="margin:0px auto;"/>
Antworten:
hinzufügen display:block;
und es wird funktionieren. Bilder sind standardmäßig inline
Zur Verdeutlichung ist die Standardbreite für ein block
Element auto
, die natürlich die gesamte verfügbare Breite des enthaltenen Elements ausfüllt.
Durch Setzen des Randes auf auto
weist der Browser die Hälfte des verbleibenden Speicherplatzes margin-left
und die andere Hälfte zu margin-right
.
margin:auto
ein Element im Fluss zu zentrieren. ( display:block
oder display:table
, position:static
oder position:relative
, etc.)
0px auto
zu "Nur" wechsle , auto
funktioniert es immer noch nicht.
Unter bestimmten Umständen (wie frühere Versionen von IE, Gecko, Webkit) und Vererbung, mit Elementen position:relative;
verhindert margin:0 auto;
von der Arbeit, auch wenn top
, right
, bottom
, und left
sind nicht festgelegt.
Wenn Sie das Element auf position:static;
(Standardeinstellung) setzen, kann es unter diesen Umständen behoben werden. Im Allgemeinen berücksichtigen Elemente auf Blockebene mit einer bestimmten Breite margin:0 auto;
entweder die Positionierung relative
oder die static
Positionierung.
margin: 0 auto
funktioniert gut auf relativ positionierten Elementen, solange es sich um Blockelemente ohne Float und mit einer bestimmten Breite handelt ...
float
und display
ändern können.
Sie können auto width div mit zentrieren display:table;
div{
margin: 0px auto;
float: none;
display: table;
}
In meinem Fall war das Problem, dass ich die minimale und maximale Breite ohne Breite selbst eingestellt hatte.
position:static
, eine feste width:
Menge haben und ein display:block
Element sein
Wann immer wir nicht Breite hinzufügen und hinzufügen margin:auto
, wird es wahrscheinlich nicht funktionieren. Es ist aus meiner Erfahrung. Die Breite gibt die Idee, wo genau sie benötigt wird, um gleiche Ränder bereitzustellen.
Es gibt eine Alternative zu margin-left:auto; margin-right: auto;
oder margin:0 auto;
für diejenigen, die position:absolute;
dies verwenden:
Sie setzen die linke Position des Elements auf 50% ( left:50%;
), aber das zentriert es nicht richtig, damit das Element richtig zentriert wird, müssen Sie ihm ein geben Rand von minus der Hälfte seiner Breite, der Ihr Element perfekt zentriert
Hier ist ein Beispiel: http://jsfiddle.net/35ERq/3/