Suatu menu dropdown biasanya disediakan ketika website terdiri dari banyak menu halaman. Keuntungan dari penggunaan menu dropdown ini adalah desain halaman menjadi lebih menarik serta meningkatkan kemudahan pengguna untuk menjelajahi web site. Kebanyakan, menu dropdown disusun dengan menggunakan Javascript, namun kita dapat mencapai hasil yang hampir sama secara lebih mudah dengan menggunakan CSS. Dalam artikel ini akan dijelaskan secara detail cara membuat menu drop down dengan menggunakan CSS.
Membuat Struktur HTML
Susunan menu atau navigasi di dalam suatu web site dapat digambarkan sebagai sistem folder di dalam sistem operasi. Sehingga tag HTML yang paling sesuai untuk membentuk sistem menu adalahlist. Dan karena suatu menu didalam web site bukanlah suatu list yang ditentukan urutannya, maka dari tag HTML list yang paling sesuai adalah unordered list (<ul>).
Misalkan kita mempunyai struktur menu sebagai berikut :
Dari struktur menu tersebut dapat kita susun dalam struktur html berikut ini
01
<div id="menu">
02
<ul>
03
<li><a href="/" title="Home">Home</a></li>
04
<li><a href="/" title="About">About</a>
05
<ul>
06
<li><a href="/" title="The Company">The Company</a>
07
<ul>
08
<li><a href="/" title="History">History</a></li>
09
<li><a href="/" title="Mission">Mission</a></li>
10
</ul>
11
</li>
12
<li><a href="/" title="Working Process">Working Process</a></li>
13
<li><a href="/" title="Work Planners">Work Planners</a></li>
14
<li><a href="/" title="Testimonials">Testimonials</a></li>
15
</ul>
16
</li>
17
<li><a href="/" title="Services">Services</a>
18
<ul>
19
<li><a href="/" title="Web Design and Development">Web Design and Development</a></li>
20
<li><a href="/" title="Logo Design">Logo Design</a></li>
21
<li><a href="/" title="Print Design">Print Design</a></li>
22
</ul>
23
</li>
24
<li><a href="/" title="Portfolio">Portfolio</a>
25
<ul>
26
<li><a href="/" title="Website Design">Website Design</a></li>
27
<li><a href="/" title="Corporate Identity">Corporate Identity</a></li>
28
</ul>
29
</li>
30
<li><a href="/" title="Contact">Contact</a></li>
31
</ul>
32
</div>
Membuat Desain Menu
Disini kita tidak akan menjelaskan bagaimana
cara membuat desain menu, yang dalam hal ini dibuat dengan Photoshop. Namun
yang jelas desain menu yang akan kita buat pada tutorial ini terlihat sebagai
berikut :
Nah semua persiapan telah dilakukan, saatnya
kita masuk pada inti dari tutorial ini yaitu menyusun kode CSS untuk membentuk
menu
Menyusun kode CSS
Untuk mempermudah dalam menjelaskan kode CSS yang menyusun
menu dropdown ini, kita akan membaginya menjadi 2 tahap yaitu menyusun styles menu utama dan menyusun styles sub menu. Namun sebelum kita
memasuki tahap-tahap ini, disini untuk mempermudah penyusunan kode CSS kita
lakukan pembersihan terhadap default styles dari browser.
Clearing Browser Default Styles
Secara umum pembersihan default styles dari
browser dilakukan untuk mempermudah penyusunan kode CSS. Pada tutorial ini kode
yang digunakan untuk pembersihan hanya terbatas untuk memenuhi kebutuhan dari
penyusunan menu dropdown. Apabila anda tertarik dengan hal ini, maka satu yang
disediakan oleh Yahoo (YUI) adalah
contoh yang cukup bagus. Berikut kode CSS yang digunakan dalam rangka
pembersihan default styles dari browser :
01 |
body,
ul, li { |
|
02 |
margin: 0; |
03 |
padding:0; |
|
04 |
} |
05 |
ul
{ |
|
06 |
list-style: none; |
07 |
} |
|
08 |
/*
Set font */ |
09 |
body
{ |
|
10 |
font-family: "Trebuchet MS", Verdana, Arial, sans-serif; |
11 |
} |
Pada bagian pertama dari kode CSS diatas,
kita menghilangkan attribute padding dan margin pada element body, ul dan li.
Kemudian dilanjutkan dengan menghilangkan style dari list pada element ul.
Terakhir kita mengatur jenis font pada element body, yang kemudian akan
diturunkan pada semua element yang menjadi keturunannya.
Selain itu, kita juga akan menyediakan suatu
CSS class yang dinamakan clearfix. Class ini
berfungsi untuk menyelesaikan masalah float, yang kita gunakan
untuk menyusun susun horisontal. Hal ini akan menjadi jelas ketika kita
menyusun kode CSS. Berikut kode CSS untuk class clearfix ini :
01 |
.clearfix:after
{ |
|
02 |
content: "."; |
03 |
display: block; |
|
04 |
height: 0; |
05 |
visibility: hidden; |
|
06 |
clear: both; |
07 |
} |
|
08 |
.clearfix
{ |
09 |
display: inline-table; |
|
10 |
} |
11 |
/*
Hide for IE-Mac \*/ |
|
12 |
*
html .clearfix { |
13 |
height: 1%; |
|
14 |
} |
15 |
.clearfix
{ |
|
16 |
display: block; |
17 |
} |
|
18 |
/*
End hide for IE-Mac */ |
Class clearfix ini adalah salah satu metode
yang cukup efektif untuk menyelesaikan masalah float.
Disini kita tidak akan menjelaskan bagaimana class ini bekerja, namun jika anda
tertarik untuk mempelajari lebih detail dapat dilihat pada Position Is
Everything – Easy clearing.
Mengatur Style Menu Utama
Yang pertama kali kita lakukan untuk
mengatur style menu utama adalah memberikan background serta menentukan font
dan padding pada kontainer dari menu, berikut ini :
1 |
#menu
{ |
|
2 |
background: transparent url(bg-menu.gif) repeat-x; |
3 |
font-size: 12px; |
|
4 |
} |
5 |
#menu>ul
{ |
|
6 |
padding-left: 10px; |
7 |
} |
Saya memutuskan untuk menentukan font-size pada bagian
kontainer
(ul)
karena
pertimbangan bahwa menu ini akan menggunakan ukuran font yang sama serta
kenyataan bahwa menu akan menggunakan ukuran static (px) sehingga kita tidak
perlu mengkhawatirkan adanya pengaruh ukuran font terhadap ukuran menu. Pada
bagian kedua, kita menggunakan selector child yang akan menyamakan element ul
yang
secara langsung menjadi turunan/anak dari element #menu
.
Kemudian proses dilanjutkan dengan menyusun
menu utama agar terlihat horisontal, berikut kode css-nya :
1 |
#menu>ul>li
{ |
|
2 |
display: inline; |
3 |
float: left; |
|
4 |
line-height: 40px; |
5 |
} |
Salah satu attribute CSS yang dapat digunakan untuk
menyusun elemen HTML secara horisontal adalah
float
. Attribute float
akan
memaksakan suatu elemen untuk mengisi ruang kosong disebelah kanan maupun kiri
(tergantung nilai yang diberikan pada attribute ini) dari elemen tersebut.
Dengan sifatnya tersebut, membuat element disekitar "flaoted element"
ikut terpengaruh sehingga akan sulit dikontrol. Ada beberapa metode yang dapat digunakan
untuk menyelesaikan masalah float
ini,
namun satu yang paling efektif dalah dengan menggunakan class clearfix
yang telah kita buat sebelumnya. Untuk dapat
menggunakannya, kita tambahkan didalam elemen kontainer, sebagai berikut:
1 |
<ul class="clearfix"> |
Yang perlu dilakukan selanjutnya adalah merubah attribute position dari setiap elemen
li
menjadirelative
, sebagai berikut :
1 |
#menu>ul
li { |
|
2 |
position: relative; |
3 |
} |
Hal ini sangat diperlukan terutama ketika
akan memposisikan sub menu.
Selanjutnya kita tambahkan sedikit ruang
diantara menu utama agar dapat menambah jangkuan klik terhadap link.
1 |
#menu>ul>li
a { |
|
2 |
padding: 5px 25px; |
3 |
} |
Terakhir kita atur style dari anchor/link.
1 |
#menu
a { |
|
2 |
color: #ffffff; |
3 |
text-decoration: none; |
|
4 |
} |
5 |
#menu>ul>li>a:hover
{ |
|
6 |
color: #99ccff; |
7 |
} |
Sampai disini kita telah menyelesaikan penyusunan untuk
menu utama.
.
Tidak ada komentar:
Posting Komentar