Display Property — CSS

Coba bayangin display itu kayak DNA elemen — nentuin perilaku dasar dia di halaman. Mau berdiri sendiri makan satu baris penuh? Atau nempel-nempelin sama elemen

Coba bayangin display itu kayak DNA elemen — nentuin perilaku dasar dia di halaman. Mau berdiri sendiri makan satu baris penuh? Atau nempel-nempelin sama elemen lain di kalimat? Atau hilang total dari layar? Properti display ngatur semua itu. Ini bukan properti style biasa — ini properti yang nentuin bagaimana elemen "berada" di dunia layout.

💡 Pertaruhan terbesar pemula CSS. Kebanyakan masalah layout aneh ("kenapa width aku gak jalan?") berakar di salah paham display. Inline element gak respect width/height, block selalu pindah baris baru — paham aturan default ini = 80% bug layout selesai sendiri.

Nilai display yang umum:

Ada juga display: flex dan display: grid — keduanya mengaktifkan sistem layout yang lebih canggih. Kita akan pelajari di lesson Flexbox dan Grid tersendiri; untuk sekarang fokus ke 4 nilai di atas.

/* Mengubah span menjadi block */
span {
  display: block;
  width: 200px;
  height: 50px;
  background: lightblue;
}

/* Membuat list horizontal */
li {
  display: inline-block;
  padding: 10px 20px;
}

/* Menyembunyikan elemen */
.tersembunyi {
  display: none;
}

🎭 Analogi sehari-hari

display itu kayak cara nata barang di kamar. block = lemari gede yang berdiri sendiri makan satu sisi tembok penuh — gak ada yang bisa nyempil di sebelahnya. inline = pernak-pernik di rak buku yang bersebar mengalir kanan-kiri sesuai muat. display: none = barangnya dimasukin gudang, hilang dari kamar total (orang lain ngisi spotnya). visibility: hidden mirip tapi spotnya tetep ditahan kosong, kayak kursi yang di-reserve. flex/grid = sistem rak rapi yang bakal kamu pelajari lesson selanjutnya — game changer banget.

⚠️ Jebakan yang sering ditemui

🎯 Mau "sembunyikan" elemen — pilih cara mana?

  • Hilang total + spotnya diisi tetanggadisplay: none (juga remove dari accessibility tree)
  • Invisible tapi spot tetap dipertahaninvisibility: hidden (kursi reserved)
  • Invisible + spot tetap + masih bisa diklikopacity: 0 (rare use case)
  • Hide visual tapi screen reader tetep baca (a11y) → CSS class .sr-only (clip + position)
  • Hide untuk SCREEN READER doangaria-hidden="true"

Salah pilih = bug a11y atau layout shift aneh. display: none paling sering, tapi kalau elemen perlu animate masuk-keluar, pakai opacity + visibility.

TL;DR: display = nentuin perilaku dasar elemen di layout. block (makan baris penuh, bisa width/height — <div>/<p>), inline (mengalir di teks, abaikan width/height — <span>/<a>), inline-block (inline tapi terima width/height — <button>), flex (1D layout), grid (2D layout), none (hilang total + dari accessibility tree). Hide dengan animate: pakai opacity + visibility, bukan display: none. display: contents = elemen menghilang tapi child tetep render.

Yang akan kamu pelajari