Adanalı
  Açılır Yatay Menü
 
 
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


 

 
   
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol