Dua tautan yang ditulis berurutan tampil berdampingan dalam satu baris, sedangkan dua paragraf yang ditulis berurutan selalu menempati baris masing-masing. Perbedaan ini lahir dari nilai display bawaan setiap elemen, yang menentukan apakah kotaknya berdiri sendiri atau mengalir bersama teks. Pada Chapter ini kita mengenal empat nilai yang paling sering dipakai, lalu mempraktikkannya dengan mengubah daftar vertikal menjadi menu navigasi horizontal.
Nilai Display Bawaan Elemen #
Browser membagi elemen menjadi dua kelompok besar berdasarkan nilai display bawaannya:
| Kelompok | Elemen contoh | Perilaku bawaan |
|---|---|---|
| Block | div, p, h1–h6, ul, article | Selalu pindah baris; lebarnya memenuhi induk |
| Inline | a, span, strong, em, img | Mengalir mengikuti teks; lebarnya seukuran isi |
Elemen li berada di antara keduanya dengan nilai bawaan list-item: berperilaku seperti block sekaligus menampilkan penanda bullet atau nomor. Untuk tahap saat ini, anggap li sebagai anggota kelompok block dengan penanda tambahan.
display: block #
Nilai block membuat elemen berperilaku seperti paragraf: selalu memulai baris baru, lebarnya memenuhi induk, dan properti width, height, serta margin vertikal berlaku penuh. Elemen div adalah contoh paling murni karena tidak membawa makna khusus, sehingga sering dipakai sebagai wadah layout.
display: inline #
Nilai inline membuat elemen berperilaku seperti potongan teks: elemen mengalir di dalam baris dan hanya selebar isinya. Tautan a dan span adalah contohnya — keduanya menyatu dengan kalimat tanpa memutus baris. Konsekuensinya penting diingat:
widthdanheighttidak berpengaruh pada elemen inline yang bukan gambar.margin-topdanmargin-bottomtidak menggeser elemen di sekitarnya, sedangkan margin dan padding horizontal tetap bekerja normal.
display: inline-block #
Nilai inline-block menggabungkan dua dunia: elemen mengalir berdampingan seperti inline, tetapi tetap menerima width, height, dan margin vertikal seperti block. Nilai ini sering dipakai untuk item yang berjajar — menu navigasi, label, atau deretan tombol — ketika setiap item butuh ukuran dan jarak yang terkontrol.
display: none #
Nilai none mengeluarkan elemen dari proses perenderan: elemen tidak tampil dan ruangnya ikut hilang, seolah tidak pernah ada di halaman. Nilai ini berbeda dari visibility: hidden, yang tetap menyembunyikan elemen tetapi ruangnya tetap terpakai sehingga layout tidak bergeser. Pada section berikutnya kita akan melihat JavaScript memanfaatkan display: none untuk menampilkan dan menyembunyikan konten.
Contoh: Menu Navigasi Horizontal #
Tanpa CSS, deretan li di dalam ul tersusun vertikal karena setiap li berperilaku seperti block. Contoh berikut mengubah susunannya menjadi menu horizontal seperti pada umumnya situs web. Perhatikan juga pola selector .menu li: selector class diikuti elemen memilih li yang berada di dalam elemen ber-class menu, sebuah perluasan langsung dari selector dasar yang telah kita pelajari. File katalog.html dan kontak.html hanyalah rujukan; sediakan filenya sendiri bila ingin tautannya berfungsi. Simpan kedua file dalam satu folder, lalu buka file HTML:
<!doctype html>
<html lang="id">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Menu Navigasi</title>
<link rel="stylesheet" href="gaya-menu.css">
</head>
<body>
<ul class="menu">
<li><a href="index.html">Beranda</a></li>
<li><a href="katalog.html">Katalog</a></li>
<li><a href="kontak.html">Kontak</a></li>
</ul>
</body>
</html>body {
font-family: sans-serif;
}
.menu {
list-style: none;
margin: 0;
padding: 16px;
background-color: #1e293b;
}
.menu li {
display: inline-block;
margin-right: 24px;
}
.menu a {
color: #ffffff;
text-decoration: none;
}Output yang Dihasilkan:
Jendela browser menampilkan:
- Satu bilah gelap selebar jendela di bagian atas halaman
- Tiga tautan putih — Beranda, Katalog, Kontak — berjajar horizontal
- Jarak 24px di antara setiap tautan, tanpa bullet di depannyaMari kita telaah aturan yang mengubah daftar menjadi menu:
.menudenganlist-style: none: propertilist-stylemengatur penanda daftar; nilainonemenghapus bullet bawaanul..menudenganmargin: 0danpadding: 16px: jarak bawaan daftar dinetralkan, lalu bilah menu diberi bantalan sendiri..menu lidengandisplay: inline-block: inti perubahan — tigaliyang tadinya berdiri sendiri kini berjajar dalam satu baris..menu lidenganmargin-right: 24px: jarak antaritem; margin horizontal bekerja pada inline-block, berbeda dari inline murni..menu adengancolor: #ffffffdantext-decoration: none: tautan diputihkan agar terbaca di bilah gelap, dan garis bawah bawaannya dihapus.
Dengan display, kita dapat mengatur kotak agar berdiri sendiri, mengalir dalam teks, atau berjajar sebagai menu — cukup untuk layout halaman sederhana. Ketika tata letak makin rumit, misalnya meratakan item dengan jarak yang menyesuaikan otomatis, CSS menyediakan modul khusus bernama flexbox yang menanti setelah fondasi ini kokoh.
Referensi resmi untuk pendalaman:
Berkas Sumber
Berkas pendukung halaman ini dapat diunduh dan dijalankan langsung sesuai penjelasan di atas.
gaya-menu.css
Unduh berkasbody {
font-family: sans-serif;
}
.menu {
list-style: none;
margin: 0;
padding: 16px;
background-color: #1e293b;
}
.menu li {
display: inline-block;
margin-right: 24px;
}
.menu a {
color: #ffffff;
text-decoration: none;
}
menu-navigasi.html
Unduh berkas<!doctype html>
<html lang="id">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Menu Navigasi</title>
<link rel="stylesheet" href="gaya-menu.css">
</head>
<body>
<ul class="menu">
<li><a href="index.html">Beranda</a></li>
<li><a href="katalog.html">Katalog</a></li>
<li><a href="kontak.html">Kontak</a></li>
</ul>
</body>
</html>