Arkadaşlar Şimdi Nasıl Yatay Açılır Menü Yapıcaz Onu Anlatacağım.
<ul id="menu" >
<li><a href="#">Anasayfa</a></li>
<li><a href="#">Haberler</a>
<ul>
<li><a href="#">şirket Haberleri </a></li>
<li><a href="#">Yurt içi Haberleri </a></li>
<li><a href="#">Yurt dışı Haberleri</a></li>
</ul>
</li>
<li><a href="#">Ürünler</a>
<ul>
<li><a href="#">Tencere</a></li>
<li><a href="#">Tava</a></li>
<li><a href="#">Ütü</a></li>
<li><a href="#">Tost Makinesi </a></li>
<li><a href="#">El Süpürgesi </a></li>
</ul>
</li>
</ul>

İlk olarak satır başı boşluklarını ve imgeleri kaldıralım.
ul#menu, ul#menu ul {
list-style: none;
margin: 0;
padding: 0;
}
Daha sonra menümüzü yatay hale getirmek için float özelliğini kullanalım. Normalde bunun için display:inline kodunu da kullanabiliriz.Sonra ilk linkleri göreceli olarak konumlandırmalıyız. Bu konumlandırma aslında ikinci kademe açılacak menüye mutlak konumlandırma yapılması için kullanılır.
ul#menu li {
float: left;
position: relative;
width: 150px;
}
Sonra ikincil linkleri sayfaya ilk açıldığında görünmez(display:none) yapalım. Birincil linklere göre konumlandırmak için postion:absolute özelliği ve top:19px (satır yüksekliği 15px + 2px alttan(sonra ekleyeceğiz) + 2px üstten(sonra ekleyeceğiz)) özelliğini kullanalım.
ul#menu li ul {
display: none;
position: absolute;
top: 19px; /* yukseklik 15px + sonradan eklenecek paddingler 4px toplam 19px */
left: 0;
}
Yalnız burada IE sorun çıkaracaktır. IE ve Opera ikincil menüleri konumlandırmasında sorun çıkarır, bunu engellemek için:
ul#menu li > ul {
top: auto;
left: auto;
}

Biraz Görünüm Ekleyelim.Yani Görünümü biraz güzelleştirelim
ul#menu li a {
font: bold 11px arial, helvetica, sans-serif;
display: block;
border-width: 1px;
border-style: solid;
border-color: #ccc #888 #555 #bbb;
margin: 0;
padding: 2px 3px;
color: #000;
background: #efefef;
text-decoration: none;
}
ve rollover hali için
ul#menu li a:hover {
color: #a00;
background: #fff;
}
Sonra birincil linklerin üzerine gelince ikincil linklerin görünmesi için:
ul#menu li:hover ul {
display: block;
}
IE’de çalışması için aşağıdaki kodları yazmalıyız.
startList = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("menu");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes[i];
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";
}
node.onmouseout=function() {
this.className=this.className.replace(" over", "");
}
}
}
}
}
window.onload=startList;
Ayrıca aşağıdaki kodu da eklemeliyiz.Nedeni Bu Kod Olmadan Çalışmıyor.
ul#menu li:hover ul, ul#menu li.over ul{
display: block;
}
Size Bir Öneri Olarak olarak koddaki <ul id="menu" > ve javascriptteki navRoot = document.getElementById("menu"); aynı olmasına dikkat edelim.
SONUCUMUZ İŞTE BUDUR 
|