Minggu, 09 Desember 2012

Home » » Web Design : Membuat Menu Drop Down Menggunakan CSS

Web Design : Membuat Menu Drop Down Menggunakan CSS



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 clearfixyang 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