Olarak , bu örnekte görüntü ortalanır. Neden? Tarayıcım Windows 7'de Google Chrome v10, IE değil.
<img src="/img/logo.png" style="margin:0px auto;"/>
Olarak , bu örnekte görüntü ortalanır. Neden? Tarayıcım Windows 7'de Google Chrome v10, IE değil.
<img src="/img/logo.png" style="margin:0px auto;"/>
Yanıtlar:
ekleyin display:block;
ve işe yarayacak. Görüntüler varsayılan olarak satır içindedir
Açıklığa kavuşturmak gerekirse, bir block
elemanın varsayılan genişliği auto
, elbette içeren elemanın mevcut tüm genişliğini doldurur.
Kenar boşluğunu olarak ayarlayarak, auto
tarayıcı kalan alanın margin-left
yarısını ve diğer yarısını için atar margin-right
.
margin:auto
bir öğeyi ortalamak için neyin gerekli olduğunu açıklarsanız harika bir cevap olurdu . ( display:block
veya display:table
, position:static
veya position:relative
, vb.)
0px auto
sadece auto
ona geçsem bile yine de çalışmıyor.
display: flex; align-items: center; justify-content: center
ve şimdi içeriğiniz yatay ve dikey olarak ortalanır. Veya bunu align-self: center; justify-self: center
içeriğin kendisine taşıyın . css-tricks.com/snippets/css/a-guide-to-flexbox
Bazı durumlarda ve miras (IE, Gecko, Webkit önceki sürümlerinde olduğu gibi) ile elemanları position:relative;
engeller margin:0 auto;
olsa bile, çalışmasını top
, right
, bottom
ve left
ayarlanmaz.
Öğenin position:static;
(varsayılan) olarak ayarlanması, bu koşullar altında onu düzeltebilir. Genel olarak, belirli bir genişliğe sahip blok seviyesi öğeleri, margin:0 auto;
ya relative
da static
konumlandırma kullanılarak dikkate alınacaktır .
margin: 0 auto
göreli olarak konumlandırılmış elemanlar üzerinde şamandıra ve belirli bir genişliğe sahip olmayan blok elemanlar oldukları sürece gayet iyi çalışır ...
float
ve display
bu davranışı değiştirilebilir.
Otomatik genişlik div öğesini kullanarak ortalayabilirsiniz display:table;
div{
margin: 0px auto;
float: none;
display: table;
}
Ne zaman genişlik ve ekleme yapmazsak margin:auto
, sanırım işe yaramayacak. Benim tecrübemden. Genişlik, tam olarak nerede eşit kenar boşlukları sağlaması gerektiği fikrini verir.
Orada bir alternatif olduğunu margin-left:auto; margin-right: auto;
veya margin:0 auto;
kullananlar için position:absolute;
bu nasıl:
Eğer% 50 (elemanın sol konumunu ayarlamak left:50%;
) ama bu doğru merkezli olmak elemanı için sırayla doğru ortalamak olmaz bunu bir vermek gerekmez genişliğinin yarısı kadar olan kenar boşluğu, elemanınızı mükemmel bir şekilde ortalayacak
işte bir örnek: http://jsfiddle.net/35ERq/3/
Bir gün bir div kullanarak ortalamak için çok zaman harcadığımı hatırlıyorum margin: 0 auto
.
Ben vardı display: inline-block
, onu kaldırdığımda, div doğru ortaladı.
Ross'un belirttiği gibi, satır içi öğeler üzerinde çalışmıyor.