Tutorial: Buat menu navigasi yuk

Dulu, saat era sebelum CSS mulai booming, menu navigasi dibuat dengan menggunakan layout dengan tabel. Entah itu horizontal atau vertikal. Bahkan bukan saja untuk menu, tapi untuk penggunaan layout web. Maka dari itu, kenapa Macromedia Dreamweaver versi 3 dan 4 sangat laku di kalangan mahasiswa komputer (waktu jaman masih kuliah). Karena begitu mudahnya mengatur layout tabel di sana.

Sekarang, sematik mulai bicara. Penggunaan menu navigasi dibuat dengan menggunakan list-item tag. Jujur saja, awalnya cukup bingung melihat kode list-item yang biasa menampilkan daftar list bisa berubah menjadi menu navigasi. Yuk, kita lihat bagaimana CSS bekerja dengan list-item ini.

Tag list-item

<ul class=”menu”>
<li><a href=”home.html”>home</a></li>
<li><a href=”about.html”>about</a></li>
<li><a href=”contact.html”>contact</a></li>
</ul>

Hasil tanpa menggunakan CSS:

Mungkin diantara kita sudah tahu, semua elemen HTML akan dianggap sebuah elemen kotak oleh CSS. Berikut kira-kira penggambaran kotak dari kode list-item di atas.

Penggambaran Kotak List-item di CSS

Membuat menu navigasi

Menu navigasi yang akan kita buat adalah yang versi horizontal. Jika teori dasar membuat menu sudah dikuasai, rasanya tidak terlalu masalah untuk membuat menu vertikal. Langkah pertama yang akan kita lakukan adalah menghapus margin dan padding yang secara default dimiliki tag ul.

ul.menu {
margin:0px;
padding:0px;

}

Kode CSS di atas berpengaruh terhadap elemen kotak list-item. Kira-kira elemen kotak akan berubah menjadi seperti gambar di bawah ini.

Hapus Margin dan Padding

Hapus lingkaran di setiap item

Kita tidak memerlukan lingkaran hitam di setiap item. Untuk itu kita akan membuangnya lewat kode CSS. Berikut kodenya.

ul.menu li {
list-style:none;
}

Teori kata kunci float

Kata kunci float mempunyai 3 nilai, left, right, dan none. Nilai none berada pada posisi default. Kira-kira teori float digambarkan pada ilustrasi di bawah ini.

Teori Dasar Float

Yang perlu diperhatikan, antara nilai float left dan right sama saja. Hanya berbeda arah saja.

Nomor 1
Jika terdapat 3 kotak bernilai float:left, maka ketiga kotak tersebut akan berada sejajar dengan kotak sebelumnya.

Nomor 2
Jika 3 kotak yang berada di nomor 1 mempunyai pembatas yang juga berupa kotak. Eh, tambah satu lagi deh kotaknya. Ada 3 kotak dengan lebar 100 piksel tiap kotaknya, sedangkan kotak pembatas hanya mempunyai lebar 350 piksel. Itu berarti kurang 50 piksel lagi. Untuk itu kotak terakhir turun ke baris berikutnya.

Got it? Harus!

Kita kembali ke menu navigasi. Karena kita akan membuat menu horisontal, maka teori dasar dengan kata kunci float bisa kita gunakan. Kita lihat kode CSS-nya.

ul.menu li {
list-style:none;
float:left;
}

Dari kode CSS di atas, maka elemen kotak sekarang berubah. Lihat perubahannya. Besarnya kotak ternyata tergantung dari lebar isi kotak.

Lebar kotak masih sama dengan isi

Sekarang kita tentukan lebar kotak.

ul.menu li {
list-style:none;
float:left;
width:100px;
}

Lebar kotak sudah ditentukan

Jangan lupa, posisi text harus di tengah

ul.menu li {
list-style:none;
float:left;
width:100px;
text-align:center;
}

Text berada di tengah kotak

Sekarang kita akan tentukan tingginya. Untuk menggunakan tinggi, akan lebih baik menggunakan kata kunci line-height daripada padding.

ul.menu li {
list-style:none;
float:left;
width:100px;
text-align:center;
line-height:25px;
}

tapi akan lebih baik lagi jika kita menggunakan tag font. Lihat kodenya baik-baik.

ul.menu li {
list-style:none;
float:left;
width:100px;
text-align:center;
font:11px/25px verdana,arial,sans-serif;
}

Tapi sayang, cara ini kurang berhasil di IE. Untuk itu, kita perlu menambahkan 2 baris kode yang membuat kode CSS kita berjalan dengan baik.

ul.menu li {
list-style:none;
float:left;
width:100px;
text-align:center;
font:11px/25px verdana,arial,sans-serif;
height:auto !important;
height:25px;

}

Loh, kok bisa? silahkan lihat lagi tutorial yang pernah aku tulis sebelumnya. Dan inilah hasilnya setelah kita tambahkan tinggi.

Tentukan tinggi kotak

Link Menu

Jika kita lihat lagi tag list-item, kita lihat ada sebuah link yang ditandai dengan tag a. Maka kita juga perlu untuk membuatkan CSS-nya. Tapi sebelumnya, mari kita lihat bagaimana bentuk kotak tag a sejauh ini. Di gambar di bawah ini, kotak tag a ditandai dengan kotak berwarna abu-abu.

Posisi kotak tag a (link)

Yang menjadi pertanyaan, kenapa tag a tidak secara penuh mengisi tag list? Ya, salah satunya, karena ELEMEN KOTAK LEBARNYA BERGANTUNG PADA ISI (kecuali untuk tag div) CMIIW. Untuk itulah kita perlu menambahkan kode CSS yang membuat elemen kotak link memenuhi ruang yang ada. Oh iya, sekaligus menghilangkan garis bawah yang dipunyai setiap link.

ul.menu li a {
display:block; /* buat kotak link memenuhi ruang yang ada */
text-decoration:none; /* hapus garis bawah */
background:#EFEFEF;
color:#000000;
}

Nah, kode CSS akan berubah menjadi seperti gambar di bawah ini.

Tag link sudah memenuhi tempat

Nah, sekarang sebenarnya kita sudah selesai. Tapi rasanya kurang lengkap jika kita tidak merubah warna background saat mouse berada di atas salah satu kotak. Maka dari itu kita tambahkan kode berikut ini.

ul.menu li a:hover {
background:#000000;
color:#FFFFFF;
}

Selesai!

Jadi, secara lengkap bisa kita tuliskan berikut ini:

<ul class="menu">
<li><a href="home.html">home</a></li>
<li><a href="about.html">about</a></li>
<li><a href="contact.html">contact</a></li>
</ul>

Dan inilah kode CSS-nya:

ul.menu {
margin:0px;
padding:0px;
}
ul.menu li {
list-style:none;
float:left;
width:100px;
text-align:center;
font:11px/25px verdana,arial,sans-serif;
height:auto !important;
height:25px;
}
ul.menu li a {
display:block;
text-decoration:none;
background:#EFEFEF;
color:#000000;
}
ul.menu li a:hover {
background:#000000;
color:#FFFFFF;
}

Lihat hasil akhirnya.

Ayo dong, kasih usul apalagi tutorial berikutnya. Kalau review design orang (seperti yang diusulkan mas Firman), sepertinya aku ini udah paling jago aja, padahal mah kagak. Drupal (seperti yang diusulkan Fany)? wekekeke… kagak bisa. Belum mulai belajar karena belum ada projek pakai drupal… :D

No related posts.

Kategori: blog, tutorial

 

67

Komentar

Gravatar
 

bahtiar @03.10.2006

mmmm …. langkah2 yang sangat meng-ispirasi … :)

 
 
Gravatar
 

windede @03.10.2006

very easy… asyik belajar di sini. tinggal bikin kurikulumnya dan siapin ijazah di akhir tahun :p

 
 
Gravatar
 

aldi @03.10.2006

simple and easy as usual ;)

 
 
Gravatar
 

oón @03.10.2006

tjanggih!

 
 
Gravatar
 

agung @03.10.2006

nih bagus juga buat tambah ilmu kang, nah gimana kalau di buatin tutorial tentang java script kayak split date punyanya blogger kayak templete yang dibuat untuk fitria mohan, dan mungkin pasang gavtar di blogger

 
 
Gravatar
 

wingoke @04.10.2006

wahh belajar buat navigasi versi indonesia..asyikkk
biasanya aku baca2nya di http://css.maxdesign.com.au/index.htm..
jadi harus pegang kamus kalo belajar..

terusken boss…

 
 
Gravatar
 

iwank @04.10.2006

Hmm.. bikin apa lagi yah??
dah bikin shutbox yg gerak2 kaya kemarin aza bang
*norak*
ngomong2 tuh sutbox dikemanain
*lirik sutbox*

 
 
Gravatar
 

iwank @04.10.2006

Hmm.. ato bikin blog tp model rounded gitu
hehe ;)

 
 
Gravatar
 

iwank @04.10.2006

Hmm.. ato bikin blog tp model rounded gitu
hehe ;)

 
 
Gravatar
 

martin @04.10.2006

Bos, bikin tutorial template untuk mambo / joomla!

 
 
Gravatar
 

husein @04.10.2006

tutorial tentang kotak-keterangan-yang-ada-kalo-hover-ke-link.. seperti yang ada di blog ini.. namanya apaan sih? :P

 
 
Gravatar
 

vnuzday @04.10.2006

Tapi sayang, cara ini kurang berhasil di IE. Untuk itu, kita perlu menambahkan 2 baris kode yang membuat kode CSS kita berjalan dengan baik.

height:auto !important;
height:25px;
}

Ini termasuk yang namanya Css Hack khan?cmiiw
Kalau bisa tutorial selanjutnya jangan pake css hack dats.

untuk totorial selanjutnya buatin thumbnail gallery dong.:D

 
 
Gravatar
 

didats @04.10.2006

#5 waduh, masih belum bisa toh? hihihi… :D
#7, #8, #9 wah, nyepam! hihihi… sotbox diilangin karna gag kuat ama spam. kerjaan lagi banyak, blom ada waktu buat memperbaharui filternya.
#10 terlalu kompleks. malah sulit dipahami nanti.
#11 namanya nicetitle. coba cari di gugel deh. gampang kok implementasinya.
#12 itu bukan hack nuz. itu cara lain yang bisa kita gunakan. kalau hack adalah kode-kode aneh yg unusual.

 
 
Gravatar
 

Irwan @04.10.2006

Yeah, I got it… sep, sep! lagiiiiiiiiiiiiii…………..

 
 
Gravatar
 

medon @04.10.2006

waqs.. bang didats emang pol deh!

 
 
Gravatar
 

iang @04.10.2006

semantik itu apaan seh om?

 
 
Gravatar
 

Nurudin Jauhari @04.10.2006

Sudah Sukses di CROSS BROWSER Cak? maaf belum test jadi saya komen dulu baru TEST :D

 
 
Gravatar
 

mr.bink @05.10.2006

Boleh juga nih tutorialnya….trus kalo bikin gravatar dengan PHP gimana ya?tolong dibikinin tutorial nggihh :D

 
 
Gravatar
 

DmZ @05.10.2006

Dats,.. klo lo dah pernah bikin buku tutorial CSS blom seh? klo ada pasti gw beli deh..!

 
 
Gravatar
 

isni @05.10.2006

alo dats..pa kbr? hehehe…
setuju ma #19.. bikin buku turorialnya aja.. penjelasannya langsung kena loh.. just what i need…

 
 
Gravatar
 

geblek @05.10.2006

dah dibilang lanjutin tutor bikin templet kemaren saja, kentang goreng enak dats tapi kalo kentang kenak tanggung doh gak ada enaknya

 
 
Gravatar
 

Ben @05.10.2006

tutorial selanjutnya? menu navigasi yg pake bekgrun udah pernah dibahas blon?

 
 
Gravatar
 

jalansutera @05.10.2006

gue udah kasih usul, eh dicuekin… sedihhhhh

 
 
Gravatar
 

alamak! @06.10.2006

paten kali, bah..!
disinilah namanya belajar secara otodidats..
bolehkan..?

 
 
Gravatar
 

aribowo @06.10.2006

naaahh ini ni yang aku cari selama ini, gimana caranya buat menu secara horizontal pake css.
aku simpen trus aku pake ya mas scriptnya boleh yach?

 
 
Gravatar
 

Thomas @06.10.2006

Keren tutorialnya. Sangat bermanfaat! Yeahhh…

 
 
Gravatar
 

isdah @06.10.2006

DIEEEEE IE USERS!!!

 
 
Gravatar
 

Fany @07.10.2006

Ayoo bikin buku… ;)

 
 
Gravatar
 

gunadi @07.10.2006

bang didats tolong buat tutorial tentang mod_rewrite dong?
kayaknya seru dan sangat berguna tu..saya dah coba ga bisa2 di win xp,.thnxs

 
 
Gravatar
 

tonida @07.10.2006

wah..bagus banget tutorial ini…klo bisa ditambah lagi tutorialnya

 
 
Gravatar
 

Daniel @07.10.2006

bikinin tutorial untuk wordpress template dong, mulai dari header, content, sidebar, footer, pokoknya semua deh… :-D ditunggu ya…

 
 
Gravatar
 

Ivo @07.10.2006

Wah bagus tutorialnya Bang Didats,, Salam kenal y! Oops,, persaaan waktu itu dah kenalan deh.. hehe.

 
 
Gravatar
 

Fitri Mohan @08.10.2006

sedaaaap. ayo teruskan pak didats.

baidewe, iya, wordpress template kayaknya perlu tuh. butuh pencerahan nih dats. :D :D

 
 
Gravatar
 

cikal61 @09.10.2006

makasih tutorialnya……. dulu saya pernah pake, tapi karna nggak tau artinya (cuma copy-paste dari layout orang lain) jadi pas ganti lay out nggak tau lagi pasangnya hehehehehee

 
 
Gravatar
 

Yogi @11.10.2006

Dats, bikin tutorial cara bikin template buat the up coming Joomla 1.5 aja hehehe :D.

Eh, kalo ga bikin tutorial bikin efek pake moo.fx atau script yang sejenisnya aja.

 
 
Gravatar
 

paulin wijaya @11.10.2006

mas, aku pengen bikin blog header tapi gak tau gimana. apa tutorial berikutnya itu saja? btw, salam kenal. great blog!

salam – paulin

 
 
Gravatar
 

ree @11.10.2006

hallo mas, didats
salam kenal … saya mau minta izin “ngintip” css sama js nya blog ini ya, wah kebetulan banget lagi ‘naked day’ lagi … :P lagi menimba ilmu nih …
thanks * ree

 
 
Gravatar
 

eci @12.10.2006

helpful bener ni. Next issue, gimana bikin hover image kayak gini, dats
http://www.designmeltdown.com/chapters/Black/

 
 
Gravatar
 

supriyadisw @14.10.2006

Waa makasih banget mas buat tutorialnya. Kemaren sempet bikin yang kaya gini dengan metode coba-coba. Bisa lihat di blog saya di menu kanan atas. Hampir mirip. Walaupun rada bisa tapi kayanya perlu referensi dari ahlinya nih. Makasih ya mas. Salam kenal…

 
 
Gravatar
 

ekSi @17.10.2006

Tutorial Wordpress gimana? ;) Hehehee

 
 
Gravatar
 

Fitri Mohan @18.10.2006

didats, where are you? emailku hingga gini hari masih belum dibales. :((

lagi liburankah? atau udah ke lain “kerjaan”?

 
 
Gravatar
 

thuns @05.11.2006

weeeh dadi tambah ngilmu ki mas!
matur tengkyu

 
 
Gravatar
 

buchin @22.11.2006

wah asik banget, bisa belajar banyak nih.

 
 
Gravatar
 

bimo_septyo_p @26.11.2006

wah, bang situsnya nyentrik neeh!

 
 
Gravatar
 

Rizky @24.01.2007

udah di tes di IE boss?

sori nih ya ngga ada maksut nyerobot lho…tapi display:block di IE ngga bakal bikin link jadi menuhin ruang yang ada (area yg bisa di klik cuma sebates teksnya).

ini efek “hasLayout”nya IE. jadi paling ngga lu harus tambahin width ato height spesifik.

caranya u tinggal kasi height:1% di selector ul.menu li a, dan masalah beres.

 
 
Gravatar
 

iroel @02.02.2007

mantap dah! situs yang menambah wawasan.. :D saya seneng situs yg seperti ini. btw, salam kenal.. maju terus bro! kalo bisa bahas Mambo / Joomla, saya lagi belajar mambo nih.. hehehehe..

 
 
Gravatar
 

ragnar @04.02.2007

g bru aja liat blog lu bang, bner.. lu arus bkin bku, bkan apa2 kbnyakan buku neranginya ngalor ngidul dan mlah bkin mles .. kbrin ya klo dah trbit..

 
 
Gravatar
 

yaufani @17.02.2007

hmm sip sip sip, penjelasan yg runut dan bagus, enak dipelajari jadinya. maksih mksih ya

 
 
Gravatar
 

yaufani @25.02.2007

eh ada yg ketinggalan, digambar kan menunya ada bordernya. kok di cssnya ngga ada border ya?

akhirnya saya tambahin dewek deh.
makasih mas didats

 
 
Gravatar
 

jack @08.03.2007

mantabs mantabs
good
thanks

 
 
Gravatar
 

Nukilan @02.04.2007

Nice tips bro!

 
 
Gravatar
 

kholix @22.04.2007

mas caranya buat intro web itu gimana

 
 
Gravatar
 

dedi @06.08.2007

keren abizzzz

 
 
Gravatar
 

rizky @22.10.2007

weew, manteb dech Tutorial-nya mo
request boleh ^_^ ? caranya bikin menu drop-down di css :D ??

 
 
Gravatar
 

Gede @26.10.2007

Asik ni tutorialnya. Tambahin dong dengan pseudocode nya untuk elemen a nya. Trus saya ada masalah neh sedikit untuk pseudocode nya a:active kok gak mau ya. Maunya saya membuat warna yang berbeda jika saya berada di halaman yang bersangkutan. Idenya donk. Thanks sebelumnya. Ragards, Gede.

 
 
Gravatar
 

Prayoga @11.11.2007

Cool! Ini baru tutorial yang berguna. Jauh lebih berguna dan jauh lebih jelas 10x lipat! Saya baru tau ada tutorial bagus kayak gini. Thanks Bung.

 
 
Gravatar
 

abuel @16.12.2007

mas klo efek nafigasi menu lainnya gmana?

 
 
Gravatar
 

xxxxxxxx @18.12.2007

xxxxxxxxxxxxxxxxxx

 
 
Gravatar
 

Badot Inside @16.04.2008

waduh makasih oom, ini yang saya cari, penjelasannya dari dasar..salam kenal oom

 
 
Gravatar
 

Ihwan @08.06.2008

Lagi2 bahasanya mengalir bagai air

 
 
Gravatar
 

Pay @10.06.2008

Aku dah sering baca tip nya mas didat, ok banget, gimaa caranya memasang gambar kotak yg dibuat di Adobe ImageReady ya mas ? biar ada efek nya dikit, trus aku ada masalah ma templet pakai donload-an eh iklan text Ads ma Text AdLink nya ikut nempel di body cara menghilangkannya gimana ya mas ? Tipsnya kurang spesifik mas kl buat yg awam ga ngerti, script itu diletakkan dimana ? Trus pengen tau tips mengatur link posting ke masing2 menu

 
 
Gravatar
 

doez @10.07.2008

thank’s

 
 
Gravatar
 

Alfian @23.10.2008

Mas, Saya pembaca baru, gimana kalau dikasi contoh bikin template blogspot dari nol, jadi bener2 bikin sendiri.

Style2 khusus apa saja yang dipunyai template blogspot (misal buat judul posting, penulis, tanggal posting, itu kan udah didefinisikan oleh blogspot – kalau gak salah lho ya, saya baru belajar juga sih).

Ditunggu ya ^_^

 
 
Gravatar
 

hulqi @25.10.2008

klo buat vertical menu yg ada navigasinya gmn?

 
 
Gravatar
 

Rud @10.11.2008

Umm, pak guru…
i need help!!

buat bikin form dan cara input komentar untuk tiap artikel kedalam db, tolong pak guru.

btw, udah ngisi blom, balapan tah sama saya hihi…

 
 
Gravatar
 

linGGa @15.12.2008

css-nya versi berapa Pak Didats dengan kode – kode seperti itu aja udah bisa menciptakan kotak? Padahal aku masih make “padding” lho untuk buat kotak. Kayaknya aku ketinggalan deh :-,) –> ini senyum dg lesung pipi

 
 
Gravatar
 

fauzi @17.02.2009

mas kalo bikin menu navigasi yang turun naik tu gimana?pake plugin apa ya biar jadi…

 
 

Maaf, form komentar saya tutup. Jika ada pertanyaan atau pendapat, langsung saja ke halaman kontak.