CSS ile sayfalarımızı ve elementlerimizi ortalamak
CSS’de kullandığımız içerik alanlarını (blok-level ve inline-level) elementleri nasıl oratalayacağımızı göreceğiz. Inline-level elementleri text-align:center özelliğini kullanarak ortalayabiliriz. Blok-level elementleri ortalamak için ise bir iki metod vardır. Sırası ile inceleyelim.
1- Genişleyebilir blok-level elementleri ortalamak
.ortala
{
margin-left: 10%;
margin-right: 10%;
}
<p class="ortala">Lorem Ipsum is simply dummy text of the printing and typesettingindustry. </p>
Genişliği sabit olmayan, genişleyebilir blok-level elementlerin ortalanması için bu metod kullanılır. Tüm web tarayıcılı bu metodu destekler.
2- Sabit genişlik atanan blok-level elementlerini ortalamak
2.a. margin auto ile genişliği belirlenmiş elementleri ortalamak
Mantık olarak, içerik blokunun sağ ve sol margin değerlerine auto ataması yapıyoruz.
W3C’de bu konu hakkında şu ifade mevcuttur: "Eğer margin-left ve margin-right değerleri auto verilirse bu blokun ortalanması anlamına gelir."
.ortala2
{
margin-left: auto;
margin-right: auto;
width: 50em;
}
NN4 (Mac and Win), Win/IE4, Win/IE5, Win/IE5.5, Win/IE6 (Garip mod : quirks-mode) web tarayıcılıar bu kodu desteklememektedir.
Bu sorunu aşabilemke için iki satır kod yazmamız yeterli olacaktır.(NN4 hariç)
Bu metodu desteklemeyen web tarayıcıları için body etiketine text-align:center ataması yaptığımızda sorun çözülmüş demektir.
body
{
text-align: center;
}
.ortala2
{
margin-left: auto;
margin-right: auto;
width: 50em;
}
Yanlız bir sorunumuz daha var. text-align:center ataması body içindeki tüm elementlerin ortalanmasına neden olacaktır. Bunu engellemek için bir katman oluşturup bu katman da hizalama değerini başlangıç değerine(yani sola yaslamalıyız) çevirmeliyiz.
body
{
text-align: center;
}
.ortala2
{
margin-left: auto;
margin-right: auto;
width: 50em;
text-align: left;
}
Bu kodlama tüm web tarayıcılarında çalışacaktır.(NN4 hariç)
2.b. Konumlandırma(positioning) kullanılan elementlerin negatif margin ile ortalanması
Göreceli konumlandırılmış elementleri ortalamak için bu metod kullanılabilir. Bu metod da bir önceki gibi fazladan bir katman kullanmaya gerek yoktur. Genişlik tanımı yapılan göreceli konumlandırılmış elementin margin-left değeri element genişliğinin yarısı(1/2) kadar verilerek sağlanır.
.ortala3 {
width: 720px;
position: relative;
left: 50%;
margin-left: -360px;
}
Burada sizlere bir iki metodla element ortalamayı gösterdik. Siz kullandığınız yer ve ihtiyaçlarınıza göre bunlardan birini kullanabilirsiniz.
align:center;
float:center;
çalışmıyor=)
Aslında böyle ufak bi işlemle halledebilseydik çok güzel olurdu…
ne olmadı ?
Olmadı ya bi türlü beceremedim :S
verdiğin kod üzerine bir yorum yapmam zor tüm kodu görürsem daha çok yardımcı olabilirim
daha once yazmistim
http://www.fatihhayrioglu.com/?p=229#comment-3834
bunun uzerine verdiginiz link burasi. anlattiginiz asagidaki uygulamayi sayfamda denedim ancak ortalama cok garip bir sekle geldi. soldaki bosluk ile sagdaki bosluk arasindan epey fark var. sayfayi kuculttugumde ise solda bir miktar bosluk kaliyor ama sag taraftaki bosluk tamamen siliniyor.
# margin-left: 10%;
# margin-right: 10%;
yardimci olabilirseni sevinirim.
saygilar
daha once yazmistim
http://www.fatihhayrioglu.com/?p=229#comment-3834
bunun uzerine verdiginiz link burasi. asagidaki uygulamayi sayfamda denedim ancak ortalama cok garip bir sekle geldi. soldaki bosluk ile sagdaki bosluk arasindan epey fark var. sayfayi kuculttugumde ise solda bir miktar bosluk kaliyor ama sag taraftaki bosluk tamamen siliniyor.
# margin-left: 10%;
# margin-right: 10%;
Evet bende yazdığım kodlarda bu metodu kullanıyorum.
Evet ya. Bugün İnternet Explorer 5.0 ve 5.5 sürümlerinde denedim. margin:0 auto çalışmıyor.
Senin de dediğin gibi en iyi yöntem ilk önce body {text-align:center} ile herşeyi ortalamak daha sonra bir container ile yazıları ve resimleri sola çekmek.
Yukarıda belirtildiği gibi sorun NN4 (Mac and Win), Win/IE4, Win/IE5, Win/IE5.5, Win/IE6(quirks-mode) web tarayıcılarında oluyor.
Bu versiyon ve şartlarda denediniz mi?
Ben body {margin: 0 auto} kullanıyorum ve sayfanın tamamı ortalanmış oluyor. Firefox, IE ve Opera’da sorun çıkarmadan çalışıyor.