Setelah kita belajar berbagai macam tag HTML (heading, paragraf, gambar, link, form, tabel), sekarang saatnya memahami konsep fundamental dalam HTML: perbedaan elemen block dan inline. Dua tag yang paling mewakili konsep ini adalah <div> dan <span>.
Apa Itu Elemen Block dan Inline?
Setiap elemen HTML memiliki perilaku default dalam hal tata letak (layout). Ada dua kategori utama:
| Karakteristik | Block Element | Inline Element |
|---|---|---|
| Lebar default | Lebar penuh (100% dari parent) | Selebar kontennya |
| Baris baru | Ya (memulai baris baru) | Tidak (berdampingan) |
| Bisa diatur width/height | Ya | Tidak (kecuali diubah dengan CSS) |
| Contoh tag | <div>, <h1>, <p>, <ul>, <table> |
<span>, <a>, <img>, <strong>, <em> |
Block element seperti mobil di jalan raya — setiap mobil mengambil satu jalur penuh dan tidak ada yang bisa berdampingan di jalur yang sama.
Inline element seperti penumpang di dalam mobil — mereka bisa duduk berdampingan dalam satu baris.
Tag <div> (Block Element)
<div> adalah singkatan dari division (divisi/bagian). Ini adalah block element paling umum yang digunakan sebagai kontainer untuk mengelompokkan elemen lain.
Contoh div:
<div style="background: lightblue; padding: 10px;">
<h2>Ini di dalam div</h2>
<p>Paragraf ini juga di dalam div yang sama.</p>
</div>
<div style="background: lightgreen; padding: 10px;">
<p>Div ini akan tampil di baris baru.</p>
</div>
Hasilnya:
Ini di dalam div
Paragraf ini juga di dalam div yang sama.
Div ini akan tampil di baris baru.
Ciri-ciri div:
- Selalu memulai baris baru
- Lebarnya penuh (100%)
- Bisa diatur margin, padding, width, height dengan CSS
- Cocok untuk membuat layout (header, sidebar, footer, konten)
Tag <span> (Inline Element)
<span> adalah inline element yang digunakan untuk membungkus teks atau elemen kecil di dalam satu baris tanpa mengganggu aliran teks.
Contoh span:
<p>
Ini adalah teks biasa, dan
<span style="color: red; font-weight: bold;">ini teks di dalam span dengan warna merah dan tebal</span>,
lalu kembali ke teks biasa lagi.
</p>
Hasilnya:
Ini adalah teks biasa, dan ini teks di dalam span dengan warna merah dan tebal, lalu kembali ke teks biasa lagi.
Ciri-ciri span:
- Tidak memulai baris baru (berdampingan)
- Lebarnya hanya selebar kontennya
- Tidak bisa diatur width/height secara langsung (harus ubah ke
display: inline-blockdengan CSS) - Cocok untuk mewarnai/mengatur sebagian teks di dalam paragraf
Perbandingan Visual div vs span
Elemen Block (div)
Elemen Inline (span)
Span bisa berdampingan dalam satu baris, div selalu baris baru
Studi Kasus: Layout Sederhana dengan div
Berikut contoh layout website sederhana menggunakan div sebagai block element:
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Layout dengan Div</title>
<style>
.header {
background: #3b82f6;
color: white;
padding: 20px;
text-align: center;
}
.nav {
background: #1e40af;
color: white;
padding: 10px;
text-align: center;
}
.nav a {
color: white;
margin: 0 15px;
text-decoration: none;
}
.container {
display: flex;
gap: 20px;
padding: 20px;
}
.sidebar {
background: #f0f4f8;
padding: 15px;
width: 30%;
border-radius: 10px;
}
.content {
background: white;
padding: 15px;
width: 70%;
border-radius: 10px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.footer {
background: #1e293b;
color: white;
text-align: center;
padding: 15px;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="header">
<h1>Website Sederhanaku</h1>
<p>Contoh layout dengan div</p>
</div>
<div class="nav">
<a href="#">Home</a>
<a href="#">Tentang</a>
<a href="#">Kontak</a>
</div>
<div class="container">
<div class="sidebar">
<h3>Sidebar</h3>
<p>Ini adalah sidebar. Bisa berisi menu, iklan, atau info tambahan.</p>
</div>
<div class="content">
<h2>Konten Utama</h2>
<p>Ini adalah area konten utama website. Semua artikel utama ditampilkan di sini.</p>
<p>Dengan menggunakan div, kita bisa mengatur layout dengan mudah menggunakan CSS.</p>
</div>
</div>
<div class="footer">
<p>© 2024 Website Sederhanaku. Semua hak dilindungi.</p>
</div>
</body>
</html>
Hasil layout:
Studi Kasus: Format Teks dengan span
Berikut contoh penggunaan span untuk memformat sebagian teks di dalam paragraf:
<!DOCTYPE html>
<html>
<head>
<style>
.highlight {
background-color: yellow;
font-weight: bold;
}
.price {
color: #ef4444;
font-weight: bold;
font-size: 18px;
}
.discount {
color: #22c55e;
text-decoration: line-through;
font-size: 14px;
}
.important {
color: #3b82f6;
font-style: italic;
}
</style>
</head>
<body>
<h2>Contoh Penggunaan Span</h2>
<p>
Belajar HTML itu <span class="highlight">sangat menyenangkan</span>
dan tidak sesulit yang dibayangkan!
</p>
<p>
Harga normal: <span class="discount">Rp 200.000</span>
Harga diskon: <span class="price">Rp 150.000</span>
</p>
<p>
<span class="important">Catatan penting:</span>
Diskon hanya berlaku untuk pembelian pertama.
</p>
</body>
</html>
Hasilnya:
Contoh Penggunaan Span
Belajar HTML itu sangat menyenangkan dan tidak sesulit yang dibayangkan!
Harga normal: Rp 200.000 Harga diskon: Rp 150.000
Catatan penting: Diskon hanya berlaku untuk pembelian pertama.
Daftar Elemen Block dan Inline yang Umum
Elemen Block
<div>- kontainer umum<h1>-<h6>- heading<p>- paragraf<ul>,<ol>,<li>- daftar<table>- tabel<form>- formulir<header>,<footer>,<section>,<article>,<nav>,<aside><hr>- garis horizontal<blockquote>- kutipan blok
Elemen Inline
<span>- kontainer inline<a>- link<img>- gambar<strong>,<b>- tebal<em>,<i>- miring<u>- garis bawah<br>- baris baru<input>- input form<label>- label form<button>- tombol
Mengubah Perilaku dengan CSS (display)
Dengan CSS, kita bisa mengubah perilaku default block/inline menggunakan properti display.
| Nilai display | Perilaku | Contoh |
|---|---|---|
block |
Elemen menjadi block (baris baru, lebar penuh) | membuat span menjadi seperti div |
inline |
Elemen menjadi inline (berdampingan) | membuat div menjadi seperti span |
inline-block |
Campuran: inline (berdampingan) tapi bisa diatur width/height | membuat tombol atau card kecil |
none |
Elemen hilang (tidak terlihat, tidak memakan tempat) | menyembunyikan elemen |
Contoh mengubah span menjadi block:
<style>
.custom-span {
display: block;
background: lightblue;
margin: 5px 0;
padding: 10px;
}
</style>
<span class="custom-span">Span ini berperilaku seperti block!</span>
<span class="custom-span">Saya juga block, jadi di baris baru.</span>
Contoh mengubah div menjadi inline-block:
<style>
.card {
display: inline-block;
width: 150px;
background: #f0f4f8;
padding: 10px;
margin: 5px;
border-radius: 8px;
text-align: center;
}
</style>
<div class="card">Card 1</div>
<div class="card">Card 2</div>
<div class="card">Card 3</div>
Div dengan display: inline-block bisa berdampingan!
Tabel Perbandingan Lengkap: div vs span
| Aspek | div | span |
|---|---|---|
| Jenis | Block element | Inline element |
| Memulai baris baru | Ya | Tidak |
| Lebar default | 100% (lebar penuh) | Selebar konten |
| Bisa diatur width/height | Ya (langsung) | Tidak (perlu display: inline-block) |
| Fungsi utama | Membuat layout, mengelompokkan blok besar | Memformat teks/sebagian kecil konten |
| Kapan pakai? | Header, sidebar, footer, kontainer utama | Mewarnai kata, memberi icon, tooltip |
Kesalahan Umum Pemula
- Menempatkan elemen block di dalam inline element → Tidak valid! Inline element (seperti span) tidak boleh berisi block element (seperti div).
- Mengatur width/height pada span tanpa mengubah display → Tidak akan berfungsi. Span perlu diubah jadi
display: inline-blockataudisplay: block. - Menggunakan div untuk memformat teks kecil → Terlalu berlebihan. Gunakan span untuk teks kecil.
- Lupa bahwa elemen block selalu baris baru → Sering bingung kenapa div berikutnya pindah baris.
- Menggunakan
<div>di dalam<p>→ Tidak valid! Paragraf tidak boleh berisi div.
- Tidak valid:
<span><div>...</div></span>(block di dalam inline) - Valid:
<div><span>...</span></div>(inline di dalam block) - Tidak valid:
<p><div>...</div></p>(div tidak boleh di dalam p)
Latihan Singkat
- Buat file HTML baru dengan judul "Praktik div dan span"
- Buat tiga buah div dengan warna background berbeda, masing-masing berisi heading dan paragraf
- Buat satu paragraf yang berisi teks biasa, lalu gunakan span untuk:
- Mewarnai satu kata dengan warna merah
- Membuat satu kata menjadi tebal
- Membuat satu kata menjadi miring dan biru
- Buat div dengan
display: inline-blockuntuk membuat 3 kartu kecil berdampingan - Simpan dan buka di browser, amati perbedaan perilaku div dan span
Intisari Hari Ini
- Block element (div) → baris baru, lebar penuh, bisa diatur width/height
- Inline element (span) → berdampingan, selebar konten, tidak bisa diatur width/height langsung
- div untuk layout besar (header, konten, footer, sidebar)
- span untuk format teks kecil di dalam paragraf
- Bisa ubah perilaku dengan
display: block,display: inline,display: inline-block - Jangan letakkan block element di dalam inline element (tidak valid)
- Div untuk header (berisi nama dan tagline)
- Div untuk navigasi sederhana (Home, Tentang, Kontak)
- Div container yang berisi sidebar (foto profil + info singkat) dan konten utama (bio, pendidikan, pengalaman)
- Div untuk footer (copyright dan link sosial media)
- Span minimal 5 kali di dalam paragraf untuk: highlight kata penting, memberi warna pada teks, membuat teks tebal/miring, dll
- Gunakan
display: inline-blockuntuk membuat skill badges (misal: HTML, CSS, JavaScript) yang tampil berdampingan - Tambahkan kotak penjelasan di bagian bawah yang menjelaskan mana saja elemen block dan inline di halamanmu
Artikel Sebelumnya: HTML Dasar #15 - Atribut Penting: placeholder, required, readonly, disabled
Artikel Selanjutnya: HTML Dasar #17 - Tag Layout Dasar: header, nav, main, article, section, aside, footer
