Kişisel bir web günlüğü

Reklam alımları başlamıştır. Reklam vermek isteyenler iletişim sayfasından iletişime geçebilirler.

Css ile sarkan menüler hazırlamak

sarkan menuSarkan menüleri, baş aşağı çevrilmiş sekmeli menülere (tab menu) benzetebiliriz. Bu menüler genellikle bir web sayfasının en üst bölümünde yer alırlar. Fareyi herhangi bir menü öğesinin üzerine getirdiğinizde, menünün renk değiştirdiğini ve diğerlerinden biraz daha aşağıya doğru kaydığını görürsünüz (yandaki resme bakınız). İşte bu yazımda da css ile sarkan menü yapımını anlatacağım ;)

HTML ile menü yapısının oluşturulması

Öncelikle sarkan menümüzü oluşturan menü öğelerini HTML ile belirtmemiz gerekiyor. Bunun için bir DIV etiketi içerisinde bir sırasız liste oluşturmamız lâzım. Önemli olan nokta DIV etiketinin ID özniteliğine "sarkan_menu" ismini vermiş olmak. Ayrıca herbir menü öğesinin tıklanabilir olması için A etiketi ile linke çevrilmiş olması gerekmektedir.

  1. <div id="sarkan_menu">
  2.     <ul>
  3.         <li><a href="#">Anasayfa</a></li>
  4.         <li><a href="#" class="aktif">Hizmetler</a></li>
  5.         <li><a href="#">Hakkında</a></li>
  6.         <li><a href="#">İletişim</a></li>
  7.     </ul>
  8. </div>

Bu kodların ekran görüntüsü alttaki gibi olacaktır:

CSS ile biçimlendirme işleminin yapılması

Sarkan menümüzü oluşturduktan sonra şimdi de CSS ile bu menüyü biçimlendirip son şeklini vermemiz gerekiyor. Bunun için önce menü öğelerini alt alta değil de yan yana sıralamamız gerekecek. Bundan sonraysa menü öğelerinin genişlik ve renk değerlerini atayacağız. Son olarak da fare, bir menü öğesi üzerindeyken o menü öğesinin aşağıya doğru sarkmasını sağlayacağız. Tüm bu işlemleri 4 bölüm halinde ele alacağız.


mouse-over.png

Biçimlendirme yaparken Abode Fireworks yazılımı ile hazırladığım üstteki görseli de kullanacağız. Adı üstünde "mouse-over.png" dosyası, fare ile bir menü öğesinin üstüne geldiğimizde işimize yarayacak. Bu görselin genişlik (width) değeri 85 pikseldir.

1. bölüm :

  1. #sarkan_menu ul {
  2.     margin: 0;
  3.     padding: 0;
  4.     height: 100%;
  5.     overflow: hidden;
  6.     list-style: none;
  7. }

Bölüm 1

Bu ilk bölümde UL etiketi ile oluşturduğumuz sırasız listeyi biçimlendiriyoruz. Margin ve Padding ile uzaklık değerlerini sıfırladık. Sonra Height ve Overflow ile taşma problemi oluşmasını önledik. List-style ile de menü öğelerinde madde imleri (bullet) görünmesini engelledik.

2. bölüm :

  1. #sarkan_menu ul li {
  2.     float: left;
  3.     margin-right: 1px;
  4.     font: bold 12px/14px Arial, Helvetica;
  5. }

Bölüm 2

İkinci bölümde LI etiketi ile oluşturduğumuz liste öğelerini biçimlendirdik. Float ile liste öğelerinin sola hizalanıp yan yana dizilmesini sağladık. Margin-right ile liste öğelerinin sağ tarafına 1 piksellik bir boşluk bıraktık. Font ile de liste öğeleri içerisindeki yazıların kalın, 12 piksel boyutunda ve Arial fontuyla görünmesi gerektiğini belirttik.

3. bölüm :

  1. #sarkan_menu ul li a {
  2.     display: block;
  3.     padding: 5px 0;
  4.     width: 85px;
  5.     border-top: 8px solid #3f3f3f;
  6.     color: #3f3f3f;
  7.     text-align: center;
  8.     text-decoration: none;
  9. }

Bölüm 3

Üçüncü bölümde liste öğeleri içerisinde yer alan ve A etiketi ile oluşturduğumuz menü linklerini biçimlendirdik. Display ile menü linklerine genişlik değerinin atanabilmesini sağladık. Padding ile üstten ve alttan uzaklık değerlerini belirledik. Width ile de menü linklerinin 85 piksel olmasını sağladık. Border-top ile menü linklerinin üstüne bir çizgi çekip, Color ile de yazı rengini belirledik. Text-align ile yazıların ortaya hizalanmasını, Text-decoration ile de bu yazıların altındaki çizgilerin kaybolmasını sağladık.

4. bölüm :

  1. #sarkan_menu ul li a:hover,
  2. #sarkan_menu ul li a.aktif {
  3.     padding-bottom: 8px;
  4.     border-top: 8px solid #101010;
  5.     background: #101010 url(mouse-over.png) bottom no-repeat;
  6.     color: #fff;
  7. }

Bölüm 4

Bu son bölümde ise fare ile menü linklerinin üzerine gelindiğinde oluşacak görüntüyü elde ediyoruz. Padding-bottom ile ilgili menü linkinin aşağıya doğru 8 piksel sarkmasını sağlıyoruz. Border-top ile 3. bölümde çizdiğimiz çizginin renk değerini değiştiyoruz. Background ile de ilgili menü linkinin arkaplan rengini değiştirip, hazırlamış olduğumuz "mouse-over.png" görselinin görünmesini sağlıyoruz.

Böylece hazırlamış olduğumuz bütün CSS kodlarının son hali şu duruma geldi:

  1. #sarkan_menu ul {
  2.     margin: 0;
  3.     padding: 0;
  4.     height: 100%;
  5.     overflow: hidden;
  6.     list-style: none;
  7. }
  8.  
  9. #sarkan_menu ul li {
  10.     float: left;
  11.     margin-right: 1px;
  12.     font: bold 12px/14px Arial, Helvetica;
  13. }
  14.  
  15. #sarkan_menu ul li a {
  16.     display: block;
  17.     padding: 5px 0;
  18.     width: 85px;
  19.     border-top: 8px solid #3f3f3f;
  20.     color: #3f3f3f;
  21.     text-align: center;
  22.     text-decoration: none;
  23. }
  24.  
  25. #sarkan_menu ul li a:hover,
  26. #sarkan_menu ul li a.aktif {
  27.     padding-bottom: 8px;
  28.     border-top: 8px solid #101010;
  29.     background: #101010 url(mouse-over.png) bottom no-repeat;
  30.     color: #fff;
  31. }

Sonuç...

Bence yeterince güzel, yapımı kolay ve kullanışlı bir menü ortaya çıktı ;) Ya sizce? Hazırladığımız bu menünün çalışır haline buradan ulaşabilirsiniz. Ayrıca bu menünün 5 farklı renk seçeneğini de hazırlayıp bir paket haline de getirdim. Bu pakedi eBurhan Araçları sayfasına girerek eburhan Sarkan Menüler ismiyle indirebilirsiniz.

4 Mart 2008, 11:18 İnternet & Web Bugün 0 kez, toplamda ise 10,371 kez okundu. , ,
35 yorum var
  1. Eline Sağlık

  2. Gayet güzel ve açık bir anlatım. Yalnız menü üstündeki border ile mouse-over imajı arasındaki küçük renk tonu farkını gidersen daha hoş olabilirdi sanırım.

  3. Erhan ne diyim ya eline koluna sağlık. Gerçekten güzel bir anlatım ve fevkalade bir menü olmuş. Ben de bu tarz birşey anlatmayı düşünüyordum sitemde. Bilhassa yeşil menüyü daha fazla beğendim. Yeşile olan hassasiyetimizden midir nedir :)

    Ellerin dert görmesin emi…

  4. Güzel olmuş eburhan çok teşekkürler.

  5. gerçekten güzel olmuş Erhan abi. ben de ne zamandır kendi sitemde bulunan menülere bir hareket katmak istiyordum…

  6. Güzel olmuş tebrikler

  7. Vay mükemmel olmuş eline sağlık .

  8. ellerine sağlık… kullanacağım..

  9. Yorumlarınız için teşekkürler arkadaşlar.

    @Emre Özçelik

    menü üstündeki border ile mouse-over imajı arasındaki küçük renk tonu farkını gidersen daha hoş olabilirdi sanırım.

    Border rengi ile imajın aynı renkte olması daha mı iyi olurdu? Renk seçimi konusunda çok bilgili olmadığım için sizin görüşleriniz daha önemli ;)

  10. gayet hoş olmuş hocam. teşekkürler.

  11. İbrahim ZORLU 5 Mart 2008 22:19

    Güzel bir anlatım ve bilgilendirici bir yazı olmuş. yine teşekkürler…

  12. silmailon 8 Mart 2008 00:28

    Çok güzel olmuş, teşekkürler.

  13. Ellerine sağlık kardeşim çok güzel bir anlatım olmuş ;)

    Bu arada onun “a:active” olması gerekmiyor muydu :)

  14. Pardon görmemişim, sen zaten linklere aktif isimli class vermişsin. Neyse benim hatam :)

  15. valla erhan büyük bir zevkle takip ediyorum vakit buldukça bloğunu. güzel bilgiler veriyorsun bunun için teşekkür ederim kendi adıma.

  16. çok güzel bir paylaşım olmuş her zamanki gibi :) eline sağlık sağlıkcakla kalın

  17. Teşekkürler. Harika.

  18. Aşağıdaki siteyle bir alakan var mı? Makaleni kendileri yazmış gibi göstermişler.

    {link engellenmiştir}

  19. @Önder
    O siteyle elbette alâkam yok. Başkasının yazdığı yazıları ve hazırlanmış olduğu uygulamaları kendisi yapmış gibi gösterenlerle işim olmaz zaten.

    Gerekli uyarıyı yaptım kendilerine. Uyarıyı dikkate alıp almamaları kendi vicdanlarına kalmış. Tabi onlarda vicdan diye birşey varsa…

  20. merhabalar bu menüleri nasıl ortalayabiliriz acaba ?

  21. Ellerine sağlık kardeş o kadar güzel anlatım ve örnekleme yapmışsın ki bu işten hiç anlamayan birinin bile bir çırpıda bu menüleri yapası gelir. Düzenli takip ettiğim bir kaç blogdan birisin. Ama belirtmeden geçemeyeceğim bugünlerde yazıları biraz daha az sıklıkta yazmaya başladın. Yeni bilgilere ihtiyacımız var.

  22. gerçekten çok güzel bir anlatım olmuş, çok açık ve net

  23. bu menü alanlarına alt menu nasıl açıcaz yazarsanız sevinirim

  24. Bu menü nasıl ortalanır ?

  25. Abi güzel olmuşta bunun üstüne gelindiğinde alt menü olarak açılanı yok mu?

  26. @Burak
    menüyü ortalamak için, menüyü bir DIV etiketi içerisine alıp bu menüye margin:0 auto; değerini atamayı deneyebilirsin.

    @BaşManyak
    Bu menüler, bahsettiğin şekilde alt menü olarak açılanlara uygun bir yapıda değil. Alt menü olarak açılanlar için Yatay Açılır Menüler Yapmak yazısına bakabilirsin.

  27. CSS basit ve çok kullanışlı verim alabilmek için iyi bilmek gerek hakkaten. Güzel çalışma arkadaş.

  28. Parça parça anlatman çok iyi olmuş. teşekkürler.

  29. burhan valla hakkını helal et.parayla öğrenilmez bu bilgiler.şimdiye kadar ul, li ile menü yapımını bi türlü kafam almıyordu.hep erteliyordum bi ara bakarım diye bu yüzden.parça parça neyi niye yaptığını da anlatman çok süper olmuş.şu an anlamış bulunuyorum olayı :)çok teşekkürler..

İçinizde kalmasın, siz de yorum yazın

Copyright © 2009 eburhan.com | Structure Theme | XHTML 1.0 | Yukarı