Arşiv sayfasından bütün yazılarıma ulaşabilirsiniz

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.

EkleBunu Sosyal Paylaşım Butonu

27 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. Güzel bir anlatım ve bilgilendirici bir yazı olmuş. yine teşekkürler…

  12. Ç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. […] eburhan yine yapmış yapacağını. Css ile Sarkan Menüler Hazırlamak başlığı ile yazdığı makalesinde güzel bir Css, Xhtml menü yapımı anlatıyor. […]

  18. […] yapacağınızı görmek ve örnek kodları incelemek için eburhan.com tarafından hazırlanan Css ile sarkan menüler hazırlamak adlı yazıyı […]

  19. […] “CSS ile sarkan menüler hazırlamak” Bağlantı […]

  20. […] Css ile sarkan menüler hazırlamak […]

  21. Teşekkürler. Harika.

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

    {link engellenmiştir}

  23. @Ö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…

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

  25. […] bir anlatımla sunulmuş bu yazıya buradan […]

  26. 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.

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

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