Yazar |
Mesaj |
-
googletr
Acemi Üye
|
10.08.2007, 09:31 (UTC) Mesaj konusu: Css Ile Menü Yapmak - Dikey Açılır Menüler |
|
|
Bu tip menüleri javascript ile yapabiliriz. HTML ve CSS ile de daha esnek, kolay düzenlenebilir ve bir çok web tarayıcısı tarafında desteklenen(IE6 ve öncesi dahil) açılır menü yapılabilir. Aslında javascript’e ihtiyaç olmamasına karşın IE7′den önceki sürümler için javascript kodu gerekmektedir.
Açılır menü yapmak için daha önceki menü örneklerinde olduğu gibi sıralanmamış listeleri(<ul>) kullanacağız. Buradaki fark alt kategorilerin yani üzerine gelince açılacak menünün bir alt sırlanmış liste olarak eklenmesidir.
Kod: 1. <ul id="menu" >
2. <li><a href="#">Anasayfa</a></li>
3. <li><a href="#">Haberler</a>
4. <ul>
5. <li><a href="#">şžirket Haberleri </a></li>
6. <li><a href="#">Yurt içi Haberleri </a></li>
7. <li><a href="#">Yurt dışı Haberleri</a></li>
8. </ul>
9. </li>
10. <li><a href="#">Ürünler</a>
11. <ul> <li><a href="#">Tencere</a></li>
12. <li><a href="#">Tava</a></li>
13. <li><a href="#">Ütü</a></li>
[img] 14. <li><a href="#">Tost Makinesi </a></li>
15. <li><a href="#">El Süpürgesi </a></li>
16. </ul>
17. </li>
18. </ul>
lk olarak satır başı boşluklarını ve imgeleri kaldıralım.
Kod: 1. ul {
2. margin: 0;
3. padding: 0;
4. list-style: none;
5. width: 150px;
6. }
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.
Kod: 1. ul li {
2. position: relative;
3. } Bir sonraki adımda da ikincil açılan menüleri konumlandırmak olacaktır. Her birinci linke karşılık gelen ikincil açılır menüler ilkinin sağına konumlandırılmalıdır. Bunun için soldan 149px değeri verilir. 1 piksel sola kaydırılır ki fare ilk linki üzerinde ikinci linkin üzerine glemeden kaybolmasın. Ayrıca ikincil linklerin ilk sayfa açıldığında görünmemesi için display:none özelliği atanır.
Kod: 1. li ul {
2. position: absolute;
3. left: 149px;
4. top: 0;
5. display: none;
6. }
Açılır menü yapısını oluşturmuş olduk şimdi linkleri güzelleştirip menü haline getirmek için önceki menüleri yaparken uyguladığımız kodları uygulayalım. Linklerin kendine has alanlarını tanımlamak için display:block özeliğini kullanalım. Linklerin altındaki çizgiyi kaldırmak için text-decoration:none özelliğini kullanalım. Linkler arasına mesafe vermek için padding verelim. Birde bir zemin rengi tanımı ver kenarlık tanımı yapalım. Üstteki linkin alt kenarlığı ile alttaki linkin üst kenarlığı üst üste bineceğinde alt kenarlık değerini sıfırlayalım.
Kod: 1. ul li a {
2. display: block;
3. text-decoration: none;
4. background-color: #E2E2E2;
5. padding: 5px;
6. border:1px solid #000;
7. border-bottom:0;
8. }
Bu kodu yazdığımızda IE linkler arasına boşluk koyacaktır(IE7 de hala bu sorun devam ediyor) bu durumu düzeltmek için:
Kod: 1. /* IE. gizle \*/
2. * html ul li { float: left; height: 1%; }
3. * html ul li a { height: 1%; }
4. /* IE den gizleme sonu */
En alttaki çizgimiz eksik kalmaması için ilk link ul’sinin alt kenarlık tanım yaparız.
Kod: 1. ul {
2. margin: 0;
3. padding: 0;
4. list-style: none;
5. width: 150px;
6. border-bottom: 1px solid #00;
7. }
Birincil menü görünümü tamamlandı ancak ikincil menüler görünmüyor. İkincil menüleri göstermek için:
Kod: li:hover ul { display: block; }
Bu kadar basit bir kod menümüzü tamamlar. Ancak bir sorun var ki o da IE7′den öncesi bu kodu desteklemez.
Internet Explorer 7. versiyonuna kadar :hover pseudo sınıfını sadece linklerde (<a>) uygulanmasını destekler diğer elementlerde bu özelliğin kullanımını desteklemez.
Peki menümüz böyle mi kalacak hayır. IE6 ve altı için bir javascript kodu yazacağız.
Kod: 1. startList = function() {
2. if (document.all&&document.getElementById) {
3. navRoot = document.getElementById("menu");
4. for (i=0; i<navRoot.childNodes.length; i++) {
5. node = navRoot.childNodes[i];
6. if (node.nodeName=="LI") {
7. node.onmouseover=function() {
8. this.className+=" over";
9. }
10. node.onmouseout=function() {
11. this.className=this.className.replace(" over", "");
12. }
13. }
14. }
15. }
16. }
17. window.onload=startList;
Bu çözümü bize kazandıran arkadaşlara teşekkürü bir borç biliriz ve linkini de yazarız.
Ayrıca aşağıdaki kodu da eklemeliyiz.
Kod: 1. li:hover ul, li.over ul{ display: block; }
Ayrıca kod daki
Kod: <ul id="menu" > ve javascriptteki navRoot = document.getElementById("menu") ; aynı olmasına dikkat edelim.
örnek ndir |
|
↑
|
|
|
-
hakanakakan
Acemi Üye
|
11.08.2007, 08:20 (UTC) Mesaj konusu: slm |
|
|
Arkadaşlarım css hakkında bilgilendirmen için tşk ederim. Ben bu gösterdiğin menunun anlatımını 10 farklı sitede gördüm, harfine harfine noktasına noktasına. css hakkında bu kadar bilgi varsa neden sana ait olan özel bir menü veya tasarım sayfası oluşturmuyosun örnek olarak. Hem bizde bu konudan yararlanmış oluruz.
cünkü herkes biryerlerden "css" hakkında bilgileri ve örnekleri topluyor, sonra ben "css" hakkında herşeyibiliyorum diyerek sagda solda yayinliyor ama iş yapmaya gelince bir tasarım sayfası bile oluşturamıyorlar. Umarım sen bize boyle yapmazsın. |
|
↑
|
|
|
-
video-lar
Bedava-Sitem Bağımlısı
|
11.08.2007, 08:59 (UTC) Mesaj konusu: Re: slm |
|
|
PAYLAŞIM İÇİN TŞKLER |
|
↑
|
|
|
-
htmlhatti
Acemi Üye
|
28.06.2008, 16:18 (UTC) Mesaj konusu: |
|
|
SAOLUN GÜZEL PAYLASIM |
|
↑
|
|
|
-
adresibozukcocuk
Acemi Üye
|
28.06.2008, 16:38 (UTC) Mesaj konusu: |
|
|
paylaşım için teşekkürler
|
|
↑
|
|
|
-
photoshopar
Bedava-Sitem Bağımlısı
Konum: Tokat-Türkiye
|
29.06.2008, 01:30 (UTC) Mesaj konusu: |
|
|
Emeğiniz için tşkler |
|
↑
|
|
|
-
arkasiradakiiler
Bedava-Sitem Bağımlısı
|
13.02.2009, 15:44 (UTC) Mesaj konusu: |
|
|
paylaşımı yaptığınız için teşekkür ederizz______________ Html Kodları|BS-Sıkça Sorulan Sorular|Hazır Css Tasarımlar Herşey Burda
www.arkasiradakiiler.tr.gg
|
|
↑
|
|
|
-
seodizayn
Acemi Üye
|
13.02.2009, 16:04 (UTC) Mesaj konusu: |
|
|
Paylaşım İçin Teşekkürler.______________ |
|
↑
|
|
|
-
berkant53
Bedava-Sitem Bağımlısı
|
27.04.2009, 17:10 (UTC) Mesaj konusu: |
|
|
çok eki konulara ilgi göstermeyiniz |
|
↑
|
|
|
-
turkplanet
Bedava-Sitem Bağımlısı
|
27.04.2009, 18:26 (UTC) Mesaj konusu: |
|
|
Teşekkürler ______________ |
|
↑
|
|
|
-
furkan-27
Acemi Üye
Konum: Gaziantep
|
14.05.2010, 16:09 (UTC) Mesaj konusu: |
|
|
Teşekkürler ______________ |
|
↑
|
|
|
-
nptmusic
Bedava-Sitem Bağımlısı
|
18.05.2010, 17:09 (UTC) Mesaj konusu: |
|
|
teşekkürler kardeş |
|
↑
|
|
|
-
baysen99
Acemi Üye
|
16.07.2010, 21:20 (UTC) Mesaj konusu: |
|
|
bu kodları nereye yazacağız |
|
↑
|
|
|
|