Elemen Block dan Inline di HTML: Bagaimana Elemen Memakai Ruang

Setiap elemen HTML itu kalau bukan block ya inline, dan satu fakta itu saja sudah menjelaskan kenapa sebagian elemen menumpuk ke bawah sementara yang lain berjajar di satu baris. Pelajari bedanya, elemen-elemen kuncinya, dan cara menyarangkannya dengan benar.

Diterbitkan 29 Juli 20268 menit bacaOleh ACY Partner Indonesia
Elemen block dan inline HTML — bagaimana elemen mengalir di halaman
300 × 250Slot Iklan TersediaPasang iklan Anda di sini

Ada satu pertanyaan yang hampir selalu bikin bingung orang yang baru mulai nulis HTML: kenapa dua paragraf <p> menumpuk satu di atas yang lain, tapi dua tautan <a> malah duduk di baris yang sama? Padahal kamu belum nulis CSS apa pun. Belum atur posisi apa pun. Tapi browser sudah keburu mengambil keputusan soal bagaimana tiap elemen harus mengalir.

Keputusan itu bermuara pada satu sifat bawaan yang dimiliki setiap elemen: dia itu kalau bukan block-level ya inline. Begitu konsep ini nyantol, banyak sekali perilaku HTML yang tadinya terasa acak jadi masuk akal. Kamu bakal tahu duluan apakah sebuah elemen bakal mulai di baris baru atau menyelip di samping tetangganya, dan kamu juga paham elemen mana yang sah ditaruh di dalam elemen mana.

Artikel ini menganggap kamu sudah tahu apa itu tag dan elemen — kalau kamu benar-benar baru, mulai dulu dari apa itu HTML, baru balik ke sini. Kalau sudah, mari kita bahas.

Dua cara sebuah elemen mengalir

Setiap elemen HTML yang terlihat termasuk ke salah satu dari dua kategori tampilan bawaan. Kategori ini ditetapkan oleh stylesheet bawaan browser, dan dialah yang mengatur perilaku alami elemen sebelum kamu menyentuh CSS sedikit pun.

Elemen block-level berperilaku seperti kotak selebar penuh. Dia mulai di baris baru, dan dia juga mendorong apa pun yang datang sesudahnya ke baris berikutnya. Secara bawaan dia melebar mengisi seluruh lebar wadahnya, tidak peduli sesedikit apa pun isi di dalamnya. Paragraf, heading, dan daftar semuanya termasuk elemen block.

Elemen inline justru kebalikannya. Dia hanya memakan lebar seperlunya isi yang ada, dan dia menyatu dengan aliran teks di sekitarnya — berdampingan dengan elemen inline lain dan kata-kata, tanpa memaksa ganti baris. Tautan, teks tebal, dan gambar termasuk inline.

Ini perbandingannya dalam satu potongan kode:

<p>Paragraf pertama.</p>
<p>Paragraf kedua.</p>

<a href="#">Tautan pertama</a>
<a href="#">Tautan kedua</a>

Dua paragraf tadi tampil di baris yang berbeda, masing-masing membentang selebar penuh halaman. Sementara dua tautan tampil bersebelahan di baris yang sama. Strukturnya sama saja — dua elemen bersaudara — tapi tata letaknya beda jauh, semata-mata karena yang satu block dan yang lain inline.

Elemen block-level: kotak-kotak besar

Elemen block adalah balok-balok penyusun struktur halaman. Mereka membagi halaman menjadi bagian-bagian yang bertumpuk — sebuah header, sebuah paragraf, sebuah daftar, satu bagian konten. Karena masing-masing menguasai satu baris penuh untuk dirinya sendiri, mereka secara alami membentuk kerangka vertikal dari tata letakmu.

Beberapa elemen block yang bakal terus kamu pakai:

<h1>Sebuah heading</h1>
<p>Satu paragraf teks.</p>
<ul>
  <li>Satu item daftar</li>
</ul>
<div>Wadah generik</div>
<section>Satu bagian konten</section>
<article>Sebuah artikel yang berdiri sendiri</article>

Semua elemen ini mulai di baris baru dan mengambil seluruh lebar yang tersedia. Coba taruh dua elemen <div> berurutan, dan kamu bakal lihat keduanya menumpuk ke bawah, walaupun masing-masing cuma berisi satu kata.

Elemen block yang paling generik adalah <div> (singkatan dari “division”). Dia tidak punya makna sendiri — sekadar kotak polos yang kamu pakai untuk mengelompokkan elemen-elemen lain supaya bisa kamu tata atau kamu posisikan sebagai satu kesatuan. Kalau tidak ada elemen semantik yang pas, <div> jadi wadah serbaguna.

Pilih elemen semantik dulu sebelum div polos

<div> memang bisa dipakai di mana saja, tapi dia tidak memberi tahu apa-apa soal isi di dalamnya, baik ke screen reader maupun ke mesin pencari. Kalau kontennya punya peran yang jelas — header halaman, bilah navigasi, konten utama, atau footer — sebaiknya pakai elemen semantik yang sesuai (<header>, <nav>, <main>, <footer>). Mereka juga block-level, jadi tata letaknya tetap berperilaku sama persis, tapi mereka membawa makna yang tidak dimiliki <div> kosongan. Ada satu artikel khusus soal HTML semantik kalau kamu mau mendalaminya.

Elemen inline: mengalir di dalam teks

Elemen inline hidup di dalam baris-baris teks dan ikut membungkus bersama teks itu. Mereka tidak memutus aliran — mereka menghias atau menautkan sepotong konten persis di tempatnya berada. Ini justru yang kamu butuhkan untuk menandai kata atau frasa di dalam sebuah kalimat.

<p>
  Kunjungi <a href="https://acy-partner.com">situs kami</a> untuk baca lebih lanjut.
  Kata ini <strong>penting</strong>, dan yang ini
  <em>ditekankan</em>. Ini juga ada <code>kode inline</code>.
</p>

Perhatikan bagaimana <a>, <strong>, <em>, dan <code> semuanya duduk di dalam paragraf, mengalir bersama kata-kata di sekitarnya. Tidak ada satu pun yang memaksa ganti baris. Mereka hanya mengambil lebar seukuran teksnya sendiri.

Elemen inline yang umum antara lain:

  • <a> — tautan
  • <strong> dan <b> — teks tebal
  • <em> dan <i> — teks miring / ditekankan
  • <span> — wadah inline generik (saudara inline dari <div>)
  • <code> — kode inline
  • <img> — gambar
  • <br> — pemutus baris
  • <input>, <label>, <button> — kontrol form

Sama seperti <div> adalah wadah block yang tanpa makna, <span> adalah wadah inline yang juga tanpa makna. Kamu pakai <span> untuk membungkus beberapa kata supaya bisa kamu tata atau kamu targetkan — misalnya memberi warna pada satu kata di dalam kalimat — tanpa mengganggu tata letak di sekitarnya.

Gambar itu inline, dan ini sering bikin kaget

<img> adalah elemen inline, dan kenyataan ini bikin banyak pemula salah duga. Artinya, gambar mengalir bersama teks dan duduk di garis dasar (baseline) teks, dan itulah kenapa kamu kadang melihat celah kecil misterius di bawah sebuah gambar. Celah itu adalah ruang yang disisakan untuk bagian huruf yang menjulur ke bawah (seperti ekor huruf “y”), karena browser memperlakukan gambar seolah-olah ia satu karakter di dalam baris. Solusi lazimnya pakai CSS — display: block atau vertical-align: bottom pada gambar — tapi untuk sekarang, cukup tahu saja bahwa celah itu wajar dan munculnya karena <img> bersifat inline.

Aturan penyarangan yang benar-benar penting

Begitu kamu tahu elemen mana yang block dan mana yang inline, ada satu aturan yang mencegah hampir semua kesalahan HTML tidak valid: elemen inline tidak boleh memuat elemen block.

Elemen block boleh memuat anak yang block maupun yang inline. Ini wajar dan memang seharusnya begitu:

<div>
  <h2>Judul</h2>
  <p>Sebuah paragraf dengan <a href="#">tautan</a> di dalamnya.</p>
</div>

Di sini <div> (block) memuat <h2> (block) dan <p> (block), dan <p>-nya memuat <a> (inline). Semuanya benar.

Tapi kebalikannya melanggar aturan. Kamu tidak boleh menaruh elemen block di dalam elemen inline:

<!-- Salah: <div> block di dalam <span> inline -->
<span>
  <div>Ini seharusnya tidak di sini</div>
</span>

<!-- Salah: <p> block di dalam <a> inline -->
<a href="#"><p>Jangan lakukan ini</p></a>

Versi yang paling sering terjadi dari kesalahan ini adalah membungkus elemen block ke dalam sebuah tautan. Browser memang pemaaf dan mungkin tetap menampilkannya, tapi tetap saja itu HTML yang tidak valid dan bisa menimbulkan masalah nyata — styling yang berantakan, perilaku yang tidak terduga, atau isu aksesibilitas.

Satu pengecualian besar: membungkus seluruh block ke dalam tautan

Ada satu pengecualian modern yang perlu kamu tahu. Sejak HTML5, elemen <a> boleh membungkus konten block-level — misalnya membuat satu kartu jadi bisa diklik seluruhnya dengan membungkus semuanya dalam sebuah tautan. Jadi <a href="#"><div>...</div></a> secara teknis valid di HTML5. Tapi ini pengecualian, bukan aturan umum: <a> itu spesial. Untuk semua elemen inline lain (<span>, <strong>, <em>, dan kawan-kawannya), jangan masukkan elemen block ke dalamnya. Kalau ragu, sarangkan inline di dalam block, jangan pernah block di dalam inline.

Cara cepat mengecek elemen apa pun

Kamu tidak perlu menghafal kategori setiap elemen. Ada dua cara pintas yang bisa diandalkan.

Pertama, pikirkan tugasnya. Kalau sebuah elemen mewakili satu blok atau bagian dari halaman — paragraf, heading, daftar, wadah — hampir pasti dia block. Kalau dia menandai sepotong teks di dalam satu baris — tautan, kata yang ditekankan, cuplikan kode — hampir pasti dia inline.

Kedua, lihat saja bagaimana dia berperilaku. Taruh dua elemen yang sama bersebelahan di sebuah halaman. Kalau keduanya menumpuk ke bawah, berarti block. Kalau keduanya duduk berdampingan, berarti inline. Browser langsung memberi tahu kamu jawabannya.

<!-- Ini menumpuk -> block -->
<p>Satu</p>
<p>Dua</p>

<!-- Ini berdampingan -> inline -->
<span>Satu</span>
<span>Dua</span>

Sedikit soal display di CSS

Semua yang kita bahas tadi adalah perilaku bawaan elemen, yang ditetapkan oleh browser. Itu tidak permanen. Begitu kamu belajar CSS, sifat display memungkinkan kamu menimpanya: kamu bisa membuat elemen block berperilaku inline lewat display: inline, atau membuat elemen inline berperilaku block lewat display: block, atau pakai display: inline-block dan display: flex untuk tata letak yang memadukan kedua perilaku tadi.

Ini model berpikir penting yang perlu kamu bawa terus: block versus inline itu titik awal, bukan kurungan. HTML memberi setiap elemen nilai bawaan yang masuk akal, dan CSS membiarkan kamu mengubahnya kalau tata letakmu butuh sesuatu yang lain. Tapi dengan memahami nilai bawaannya dulu, kamu akan selalu tahu kamu sedang berangkat dari mana — dan itu bikin tata letak CSS jauh lebih tidak membingungkan nanti.

Penutup

Block versus inline adalah salah satu ide kecil yang diam-diam menjelaskan banyak perilaku HTML:

  • Setiap elemen, secara bawaan, kalau bukan block-level ya inline.
  • Elemen block (<div>, <p>, <h1>, <ul>, <section>) mulai di baris baru dan mengisi lebar penuh — mereka menumpuk ke bawah dan membentuk struktur halaman.
  • Elemen inline (<a>, <strong>, <em>, <span>, <img>) hanya memakai lebar seperlunya dan mengalir di dalam satu baris teks.
  • <div> adalah wadah block generik; <span> adalah pasangannya yang inline. Keduanya tanpa makna sendiri dan ada untuk mengelompokkan serta menata.
  • Aturan penyarangan intinya: jangan menaruh elemen block di dalam elemen inline — dengan satu pengecualian HTML5 bahwa <a> boleh membungkus konten block.
  • Semua ini adalah nilai bawaan elemen, yang nanti bisa ditimpa oleh display di CSS.

Biasakan diri menebak apakah sebuah elemen bakal menumpuk atau duduk inline, dan tata letak HTML berhenti terasa seperti tebak-tebakan. Berikutnya, kamu bakal lihat bagaimana class dan id membuatmu bisa melabeli elemen-elemen ini supaya CSS dan JavaScript bisa menemukannya dengan presisi.

Tag:htmlfrontendblockinlinepemula
728 × 90Slot Iklan TersediaPasang iklan Anda di sini

Artikel Terkait

Lihat Semua Artikel

Artikel yang Mungkin Kamu Suka

Apa Itu Framework Frontend? — chip kode dengan tag komponen
Frontend / Dasar

Apa Itu Framework Frontend?

Penjelasan ramah untuk pemula tentang apa itu framework frontend, kenapa mereka ada, masalah apa yang mereka selesaikan dibanding JavaScript biasa, dan kapan kamu memang sebaiknya memakainya.

20 Sep 20268 menit baca
Sampul fundamentals frontend bertuliskan Apa Itu Frontend dan HTML + CSS + JS
Frontend / Dasar

Apa Itu Frontend Development?

Panduan ramah pemula tentang frontend development: bagian website yang kamu lihat dan klik secara langsung. Pahami cara kerja HTML, CSS, dan JavaScript, serta bedanya frontend dengan backend.

20 Sep 20268 menit baca
Ilustrasi sampul untuk Apa yang Dikerjakan Frontend Developer
Frontend / Dasar

Apa yang Dikerjakan Frontend Developer: Panduan untuk Pemula

Penjelasan ramah pemula tentang apa yang sebenarnya dikerjakan frontend developer setiap hari: mengubah desain jadi antarmuka yang berfungsi, membangun UI yang bisa dipakai ulang, sampai urusan responsif, aksesibilitas, dan kecepatan.

20 Sep 20269 menit baca
Kartu judul bertuliskan Styling dan Interaktivitas di atas latar biru gelap ACY Partner
Frontend / Dasar

Cara Kerja Styling dan Interaktivitas

Penjelasan ramah pemula soal bagaimana CSS menyulap HTML polos jadi tampilan rapi, dan bagaimana JavaScript menambahkan perilaku — pola berpikir struktur, gaya, perilaku saat membangun halaman web.

20 Sep 20268 menit baca
Tiga lapisan front-end menyatu di satu halaman web
Frontend / Dasar

Cara HTML, CSS, dan JavaScript Bekerja Bersama

Panduan praktis untuk pemula: bikin satu tombol kecil, beri struktur dengan HTML, tampilan dengan CSS, dan perilaku dengan JavaScript, lalu lihat ketiga lapisan ini bekerja sama di halaman nyata.

20 Sep 20268 menit baca
Sampul ikhtisar praktik terbaik frontend
Frontend / Dasar

Ikhtisar Praktik Terbaik Frontend

Peta ringkas tentang apa itu frontend yang baik — HTML bermakna, CSS rapi, JavaScript secukupnya, desain responsif, performa, dan progressive enhancement, lengkap dengan arahan untuk mendalaminya.

20 Sep 20268 menit baca