Menu

CSS Padding: Shorthand, Sisi, Persentase dan Contoh

Padding adalah ruang di dalam sebuah elemen, di antara isi dan border-nya. Pelajari shorthand padding dengan 1 sampai 4 nilai, property untuk setiap sisi, padding logis, persentase, dan bagaimana padding mengubah ukuran elemen.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

Apa itu padding

Padding adalah ruang di dalam sebuah elemen, di antara isi dan border-nya. Padding ikut memakai background elemen, jadi inilah property yang memberi ruang lega pada tombol, kartu, atau badge.

Area biru adalah isinya. Pita hijau di sekelilingnya adalah padding 24px di setiap sisi, dan border berada di luarnya.

Shorthand padding: 1, 2, 3, atau 4 nilai

padding mengatur keempat sisi dalam satu deklarasi. Jumlah nilai menentukan sisi mana mendapat nilai mana, searah jarum jam mulai dari atas:

DeklarasiAtasKananBawahKiri
padding: 10px;10101010
padding: 10px 20px;10201020
padding: 10px 20px 30px;10203020
padding: 10px 20px 30px 40px;10203040

Dua nilai berarti "vertikal, horizontal". Tiga nilai berarti "atas, horizontal, bawah". Empat nilai berputar searah jarum jam: atas, kanan, bawah, kiri (dalam bahasa Inggris, cara mengingat yang populer adalah TRouBLe).

Ketik shorthand apa saja di bawah. Kotaknya digambar ulang, dan browser melaporkan nilai yang didapat setiap sisi:

Coba 8px, 8px 24px, 0 0 40px, dan 1em 5%. Nilai yang tidak valid, seperti -10px, diabaikan, dan kotaknya tetap memakai padding valid yang terakhir.

Satu sisi sekaligus

Setiap sisi punya property sendiri, yang lebih jelas daripada shorthand empat nilai kalau kamu hanya ingin mengubah satu sisi:

.card {
  padding-top: 16px;
  padding-right: 24px;
  padding-bottom: 16px;
  padding-left: 24px;
}

Shorthand yang diikuti satu sisi adalah pola yang umum: atur semuanya, lalu sesuaikan satu sisi.

.card {
  padding: 16px;
  padding-bottom: 32px; /* only the bottom changes */
}

Urutannya penting di sini: shorthand padding yang ditulis setelah padding-bottom akan me-reset sisi bawah kembali ke 16px.

Padding logis: padding-inline dan padding-block

padding-left dan padding-right bersifat fisik: keduanya tetap di sisi yang sama dalam bahasa apa pun. Property logis justru mengikuti arah tulisan, dan itulah yang kamu butuhkan di situs yang juga ditampilkan dari kanan ke kiri:

Property logisDalam bahasa Indonesia (kiri ke kanan)Dalam bahasa Arab (kanan ke kiri)
padding-inline-startkirikanan
padding-inline-endkanankiri
padding-inlinekiri dan kanankanan dan kiri
padding-blockatas dan bawahatas dan bawah

Padding memperbesar kotak (kecuali dengan border-box)

Secara default, width hanya lebar isinya, dan padding ditambahkan di atasnya. Kotak dengan width: 200px dan padding: 20px lebarnya 240px:

box-sizing: border-box menjaga kotak tetap 200px dan mengambil padding dari bagian dalamnya. Halaman box model membahas hitungan lengkapnya.

Padding persentase

Padding persentase diukur terhadap lebar elemen induk, di keempat sisi, termasuk atas dan bawah:

Dari sinilah asal trik lama "padding-top: 56.25%" untuk kotak video 16:9. Sekarang aspect-ratio: 16 / 9 melakukan hal yang sama secara langsung.

Padding adalah cara yang tepat untuk memperbesar link atau tombol, karena padding adalah bagian dari elemen sehingga juga menjadi bagian dari area yang bisa kamu klik atau ketuk. Margin memang menambah ruang, tetapi tidak memperbesar area sasarannya.

.btn {
  display: inline-block; /* lets vertical padding take space in the line */
  padding: 10px 18px;    /* a comfortable touch target */
}

Nilai yang diterima padding

NilaiContohCatatan
Panjang12px, 1rem, 0.5emem mengikuti ukuran font elemen
Persentase5%Dari lebar containing block
0padding: 0Tidak perlu satuan
Negatif-10pxTidak valid, diabaikan
autoautoTidak valid untuk padding (berlaku untuk margin)

Kesalahan yang sering terjadi

  • Urutan yang salah di shorthand empat nilai. Urutannya atas, kanan, bawah, kiri, searah jarum jam.
  • Kotak membesar saat kamu menambahkan padding. Atur box-sizing: border-box.
  • Memakai padding untuk memisahkan dua elemen. Jarak antar elemen adalah margin, sedangkan padding adalah ruang di dalam satu elemen. Lihat margin vs padding.
  • Padding vertikal pada link inline yang menimpa baris lain. Ubah link itu menjadi inline-block.
  • Padding negatif atau padding: auto. Keduanya tidak valid dan diabaikan tanpa pemberitahuan.

Pertanyaan yang sering diajukan

Apa itu padding di CSS?

Padding adalah ruang di antara isi sebuah elemen dan border-nya. Padding adalah bagian dari elemen, jadi padding menampilkan warna background elemen dan memperbesar area yang bisa diklik pada link atau tombol.

Bagaimana urutan nilai di shorthand padding?

Searah jarum jam mulai dari atas: padding: top right bottom left;. Dengan tiga nilai, urutannya atas, kiri dan kanan, bawah. Dengan dua nilai, atas dan bawah, lalu kiri dan kanan. Dengan satu nilai, keempat sisi.

Apakah padding memperbesar ukuran elemen?

Dengan box-sizing: content-box yang merupakan default, ya: padding ditambahkan ke width dan height. Dengan box-sizing: border-box, padding diambil dari bagian dalam lebar, jadi elemen tetap berukuran sesuai yang kamu tetapkan.

Padding persentase dihitung relatif terhadap apa?

Terhadap lebar containing block, untuk keempat sisi. padding-top: 50% adalah setengah dari lebar elemen induk, bukan tingginya. Itulah sebabnya trik aspect ratio lama memakai padding vertikal.

Apakah padding bisa bernilai negatif?

Tidak bisa. Nilai padding negatif tidak valid dan deklarasinya diabaikan. Untuk menarik konten ke luar, pakai margin negatif.

Bagaimana cara menambahkan padding di HTML?

Dengan CSS, di stylesheet atau atribut style: <div style="padding: 16px;">. HTML tidak punya atribut padding untuk elemen umum. Atribut lama cellpadding pada tabel sudah usang dan digantikan oleh padding pada td dan th.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai