Doc.Deniz adlı üyeden alıntı:
mesajı görüntüle
CSS hakkında bir sorunum var.
21
●1.397
- 21-07-2010, 14:54:45Çözüm :
sorunu çözmek için bütün li taglarının boylarını toplattım sonra bir üstündeki ul tagının boyunu aldım ve toplam li boyutlarından çıkarttım kalan sonucu ikiye böldüm ve bütün li taglarına margin-left: olarak değeri verdim böylece ul'un boyu ne kadar uzarsa genede tam anlamıyla li'ler ul'un boyutunun her tarafına yayılacaktır.
js kodları :
$(document).ready(function(){ var sayi = $('.hihi').size(); var toplam = 0 ; for(i=0;i<sayi;i++){ var deger = $('.hihi').eq(i).width(); toplam = toplam + deger } var kalanDeger = Math.round(((990- toplam)/i)/2); alert(kalanDeger); $('.hihi').css({ 'margin-left' : kalanDeger }); });
html kodları :
<div class="kalip"> <ul> <li class="hihi"><a>aycan</a></li> <li class="hihi"><a>aycanaycanaycan</a></li> <li class="hihi"><a>aycan</a></li> <li class="hihi"><a>aycanaycanaycanaycanaycan</a></li> <li class="hihi"><a>aycan</a></li> <li class="hihi"><a>aycanaycanaycan</a></li> <li class="hihi"><a>aycan</a></li> </ul> </div>css kodları :
<style> .kalip{width: 990px; height: 250px; margin:0px auto; } .kalip ul{width: 900px; background: gray; height: 30px;} .kalip ul li { float:left; } .kalip ul li a{border:0px solid gray; background: #333; color:#e2e2e2; text-decoration: none; display:block; font-size: 18px;} .kalip ul li a:hover{border:1px solid red;} </style>demo sayfası
sayfayı açınca saten olayı anlayacaksın. li taglarını ortalamak ile ilgili yakında güzel bir makale yazacağım. - 21-07-2010, 18:46:18Bu şekilde hesaplayarak yapamam, çünkü kaç adet menü öğesi olacağını ben bilmiyorum, veritabanından çekilecek. Demişsin
bu çok basit..
Arkadaşın yaptığı örnek üzerinden gitmek gerekirse
<li class="hihi"> buradaki hihileri kaldır boşta duruyor...
.kalip ul{width: 900px; background: gray; height: 30px;} ---> bunu
.kalip ul{width: 900px; background: gray; height: 30px; margin: auto; text-align:center; } ---> Bununla değiştir
bu olmadı dersen kısa yoluda şu buda alternatif 2
<div class="kalip"> --> bunu
<div class="kalip" align="center"> olarak değiştir..
Alternatif 2 ye gerek kalmayabilir çünkü üstteki cssde kalip ul 900px uzunluğunda uzunluğu belirtilmiş yani bu demekki içindeki text ( yazıları ) ortalamak istediğimizde bu text-align: center kodu bu uzunluğun ortasını biliyor demektir..
en olmadı onları cananını sıkarsa bunu yap
html sayfasında
kodun başladığı yere <center> kod buraya </center> bu artık en basit yöntemi.. benim ilk öğrendiğim şey buydu
) oldukça elverişli 
bi teşekkür yeter! - 21-07-2010, 23:19:11#menu {margin-left:auto; margin-right:auto}
denedinmi?
olmaz ise margin-left: herhangi bir değer girip manual olarak yapman gerekicek tabi buda bazı tarayıcı sorunlarına neden olabilir.
Edit: kusura bakma şimdi fark ettim denemissin ama menunun genişliği ana containera eşit olduğu için menunun herhangi bir ortalama olanağı yok.
O yüzden menunun genişlik değerini düşürüp sadece yukarıda verdiğim kodları kullanırsan büyük ihtimal ortalanacaktır.
Tekrar edit: Denedim ve gayet güzel çalışıyor şu şekilde tasarlarsan sorun çözülecektir.
<style> ul {list-style-type:none; width:655px;border:1px solid red; margin-right:auto; margin-left:auto; display:table} li {float:left; margin:15px} #container {border:1px solid green;} </style> <div id="container"> <ul> <li>sdfasfsa</li><li>sdfasfsa</li><li>sdfasfsa</li><li>sdfasfsa</li><li>sdfasfsa</li><li>sdfasfsa</li><li>sdfasfsa</li> </ul> </div> - 22-07-2010, 00:00:14Çözdüğüne sevindim, siten hakkında birkaç öneri almak istersen padding kullan derim ben yazılar çerçeveye yapışık bir şekilde durduğunda görüntü açısından kötü bir sonuç olacaktır. Örneğin footer alanına padding ekliyebilir menuyede aynı şekilde ekliyebilirsin. Blokların bg rengini daha açık kullanabilirsin çünkü çok cırtlak durmuş. Renk seçerken renklerin biribirlerine yakınlığını ölçmen gerekiyor çok farklı renkler olduğunda kötü bir görünüm oluşturabilir.
Çalışmalarında başarılar.
) oldukça elverişli