Iznyn Blog - Your Web Design Solution

Jika anda melihat pesan ini, berarti bahwa anda masih menggunakan browser yang cukup tua untuk dapat melihat secara maksimal semua content dari web site ini. Tolong untuk segera upgrade browser anda sehingga dapat secara maksimal menikmati content dari web site ini.

More Info

Download Lastest Version Of Mozilla Firefox

Membuat Menu Dropdown Menggunakan CSS - Part. 2

Mengatur style untuk Sub Menu

Setelah pada bagian pertama kita mengatur style untuk menu utama, maka kali ini kita akan mengatur style untuk sub menu.

Sesuai dengan desain yang telah kita buat sebelumnya, sub menu hanya akan nampak ketika mouse berada diatas daerah menu utama. Kita dapat melakukannya dengan menyembunyikan sub menu pada kondisi normal dan baru akan memunculkannya ketika mouse berada diatas menu utama. Namun untuk keperluan desain, maka pengaturan tersebut akan diberikan pada bagian paling akhir karena kita membutuhkan memunculkan bagian sub menu untuk mengatur tampilannya.

Pertama kita atur style untuk element kontainer dari setiap sub menu, termasuk background color, padding dan width, berikut ini :

#menu>ul>li ul {
  background-color: #99ccff; 
  width: 140px; 
  padding: 10px 10px 20px 10px;
}

Berikutnya adalah memposisikan sub menu relatif terhadap menu induknya.

#menu>ul>li ul {position: absolute; left:23px;}

Secara default apabila kita memposisikan suatu elemen secara absolute, maka elemen tersebut akan diposisikan relatif terhadap elemen terdekatnya yang telah keluar dari aliran normal dokumen. Untuk kasus diatas, kita harus membuat elemen kontainer dari menu utama agar keluar dari aliran normal dokumen, dalam hal ini menggunakan relative positioning. Untuk lebih jelas tentang masalah ini dapat dilihat pada artikel saya, Absolute Positioning dan Relative Positioning.

Kode CSS tersebut hanya berlaku untuk sub menu yang langsung berada dibawah menu utama, sedangkan untuk sub menu dari suatu sub menu tidak akan terpenuhi. Hal ini disebabkan oleh posisi dari sub menu tersebut yang berbeda, untuk sub menu dari menu utama akan diposisikan dibawah dari menu utama, sedangkan untuk sub menu dari sub menu akan diposisikan di samping sub menu induknya. Agar dapat menyelesaikan masalah ini dengan memposisikan ulang sub menu dari sub menu, sebagai berikut :

#menu>ul>li ul ul {
  left: 140px; 
  top: 0;
}

Selanjutnya kita akan mengatur style untuk link sub menu. Link akan diatur agar ketika mouse berada diatasnya, warna background berubah. Perlu dicatat juga bahwa link ini akan mempunyai luasan yang cukup lebar sedangkan dengan perilaku default dari elemen anchor, yaitu sebagai inline element, hal ini tidak mungkin dapat terpenuhi. Suatu inline element, seperti a, em, strong dan code tidak akan terpengaruh oleh attribute CSS yang berusaha untuk memperluas elemen tersebut secara vertikal, seperti padding-top, padding-bottom, margin-top dan margin-bottom. Kebalikan dari inline-level element adalah block-level element. Pada suatu block-level element, seperti p, ul dan pre kita dapat memperluas elemen tersebut baik secara vertikal maupun horisontal. Untuk lebih memahami tentang masalah dapat dilihat pada Wikipedia - HTML Element

Dengan menggunakan CSS kita dapat merubah sifat dasar suatu elemen HTML, baik dari Block ke Inline maupun sebaliknya dengan menggunakan attribute display. Kembali ke link yang akan kita susun, setelah merubah elemen anchor dari level inline ke block, kita dapat memperluas elemen link dengan menggunakan attribute padding, sebagai berikut :

#menu>ul>li ul a {
  display: block;
  padding: 12px 0 12px 4px;
  line-height: 16px;
  border-bottom: 1px solid #6699cc;
}
#menu>ul>li ul a:hover {
  background-color: #6699cc;
}

Disini kita juga memberikan attibute line-height untuk mengurangi efek dari attribute yang sama, yang kita deklerasikan sebelumnya. Selain itu kita juga memberikan border di bagian bawah dari setiap sub-menu untuk memisahkan setiap menu.

Pekerjaan hampir selesai, yang tersisa adalah mengatur perilaku dari sub-menu. Seperti telah dijelaskan sebelumnya bahwa sub-menu hanya akan nampak ketika mouse ada diatas menu induknya. Untuk menyelesaikannya, pertama kita sembunyikan terlebih dahulu ketika dalam kondisi normal.

#menu>ul>li ul {
  display: none;
}

Berikutnya kita tampilkan sub-menu ketika mouse ada diatas menu induknya.

#menu li:hover>ul {
  display: block;
}

Nah, semua perkejaan kini telah selesai. Untuk dapat melihat hasil akhir dari menu drop-down dapat dilihat disini.

Apabila ingin mendapatkan semua file yang diperlukan dalam tutorial ini dapat diunduh disini.

Walaupun menu drop-down telah selesai disusun, namun tutorial ini tidak berhenti disini. Pada bagian selanjutnya akan dijelaskan tentang masalah-masalah yang timbul dari menu drop-down ini dan bagaimana menyelesaikannya.

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

relatedPosts

COMMENTS

6Comments

  1. Intan said .... at November 6th, 2009 08:38 PM

    Mantap tutorialnya…
    Websitenya bagus Bro…

  2. logicvs said .... at December 2nd, 2009 02:30 PM

    I’m waiting for the next articles

  3. hendipra said .... at December 19th, 2009 06:32 PM

    kueren….

  4. dimas pn said .... at February 18th, 2010 11:49 AM

    bos nanya dong..
    drop down udah jadi nih..

    tapi ada satu masalah lagi.. saya ga bisa passing parameter antar php jadinya..

    misalnya saya echo “<a href=’home.php?nama=$nama’ rel=”nofollow”>home</a>”;

    trus echo”selamat datang $nama”;

    yang keluar tetep selamat datang $nama..

    tapi klo ditaroh diluar bru bisa.. gmana yaa??

    ada solusi kah??

  5. ratno said .... at February 18th, 2010 04:57 PM

    bagus..sederhana dan enak diliat..

  6. iznyn said .... at February 22nd, 2010 05:07 AM

    @dimas: Masalah anda terletak pada penempatan tanda petik, didalam php tanda petik tunggal (’) akan mencetak string apa adanya, jadi string $name tetap akan menghasilkan $name. Sedangkan untuk tanda petik double (”) akan mencetak sebuah pemanggilan variable (misalkan, $name), dengan nilai yang dibawa oleh variable tersebut.

    Jadi untuk kode yang anda gunakan dapat diganti dengan
    echo “<a href=\”home.php?nama=$nama\” rel=”nofollow”>home</a>”.
    Sebagai catatan karakter (\) didalam tanda kurung double (”) akan mencegah karakter yang mempunyai tujuan khusus menjadi string biasa.

Leave a Comment

  1. You can use these XHTML tags : <a href="" title="">, <abbr title="">, <acronym title="">, <blockquote cite="">, <b>, <cite>, <code>, <del datetime="">, <em>, <i>, <pre lang="" line="" escaped="">, <q cite="">, <Strike>, <strong>