W tym przykładzie obraz nie jest wyśrodkowany. Czemu? Moja przeglądarka to Google Chrome 10 w systemie Windows 7, a nie IE.
<img src="/img/logo.png" style="margin:0px auto;"/>
W tym przykładzie obraz nie jest wyśrodkowany. Czemu? Moja przeglądarka to Google Chrome 10 w systemie Windows 7, a nie IE.
<img src="/img/logo.png" style="margin:0px auto;"/>
Odpowiedzi:
dodaj display:block;i zadziała. Obrazy są domyślnie wbudowane
Aby wyjaśnić, domyślna szerokość blockelementu to auto, co oczywiście wypełnia całą dostępną szerokość elementu zawierającego.
Ustawiając margines na auto, przeglądarka przypisuje połowę pozostałej przestrzeni do, margin-lefta drugą połowę do margin-right.
margin:autoaby wyśrodkować element w przepływie. ( display:blocklub display:table, position:staticlub position:relative, itp.)
0px autona zwykły auto, nadal nie działa.
W pewnych okolicznościach (jak we wcześniejszych wersjach IE, Gecko, Webkit) i dziedziczenia, elementy z position:relative;zapobiegnie margin:0 auto;z pracy, nawet jeśli top, right, bottom, i leftnie są ustawione.
Ustawienie elementu na position:static;(domyślne) może to naprawić w tych okolicznościach. Ogólnie rzecz biorąc, elementy blokowe o określonej szerokości będą respektowane margin:0 auto;przy użyciu pozycjonowania albo relativelub static.
margin: 0 autodziała dobrze na względnie pozycjonowanych elementach, o ile są to elementy blokowe bez pływaka i określonej szerokości ...
floati displaymogą zmienić to zachowanie.
Możesz wyśrodkować automatyczną szerokość div za pomocą display:table;
div{
margin: 0px auto;
float: none;
display: table;
}
W moim przypadku problem polegał na tym, że ustawiłem minimalną i maksymalną szerokość bez samej szerokości .
position:static, mieć ustalony width:zestaw i być display:blockelementem
Jeśli nie dodamy szerokości i nie dodamy margin:auto, myślę, że to nie zadziała. To z mojego doświadczenia. Szerokość daje wyobrażenie, gdzie dokładnie musi zapewnić równe marginesy.
istnieje alternatywa dla margin-left:auto; margin-right: auto;lub margin:0 auto;dla tych, które używają w position:absolute;ten sposób:
ustawiasz lewą pozycję elementu na 50% ( left:50%;), ale to nie wyśrodkuje go poprawnie, aby element był prawidłowo wyśrodkowany, musisz nadać mu margines minus połowa jego szerokości, który idealnie wyśrodkuje Twój element
oto przykład: http://jsfiddle.net/35ERq/3/