Menu

Border CSS: Width, Style, Color, dan Border Radius

Properti border menggambar garis di sekeliling padding elemen. Pelajari shorthand border, semua gaya border, warna dan satu sisi saja, sudut membulat dengan border-radius, serta bedanya border dengan outline.

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

Shorthand border

border menggambar garis di sekeliling elemen, di antara padding dan margin-nya. Shorthand ini menerima tiga bagian dalam urutan apa pun: lebar, gaya, dan warna.

BagianLonghandNilaiDefault
Lebarborder-width1px, 0.2em, thin, medium, thickmedium
Gayaborder-stylesolid, dashed, dotted, double, dan lainnyanone
Warnaborder-colorWarna apa puncurrentColor (warna teks)

Gaya adalah bagian yang tidak bisa dilewatkan. Default-nya none, jadi border: 2px #2563eb; sama sekali tidak menggambar apa-apa. Jika kamu tidak menulis warnanya, border memakai warna teks elemen.

Gaya border

double butuh minimal 3px untuk menampilkan dua garis. groove, ridge, inset, dan outset memberi bayangan pada warna agar terlihat 3D dan tampilannya sedikit berbeda di tiap browser. hidden terlihat seperti none; keduanya hanya berbeda di dalam tabel dengan border yang di-collapse, yang dibahas di halaman border tabel HTML.

Satu sisi saja

Setiap sisi punya shorthand sendiri (border-top, border-right, border-bottom, border-left), dan setiap bagian punya longhand per sisi seperti border-top-color. Versi logisnya, border-inline-start dan border-block-end, mengikuti arah teks:

border-color, border-width, dan border-style menerima satu sampai empat nilai dengan urutan searah jarum jam seperti padding: atas, kanan, bawah, kiri.

Sudut membulat dengan border-radius

border-radius membulatkan sudut border dan background, jadi properti ini juga berfungsi pada elemen yang sama sekali tidak punya border.

NilaiHasil
border-radius: 8pxSemua sudut dibulatkan 8px
border-radius: 50%Lingkaran pada elemen persegi, elips pada persegi panjang
border-radius: 999pxPil: sisi pendeknya menjadi setengah lingkaran penuh
border-radius: 8px 0Kiri atas dan kanan bawah 8px, dua sudut lainnya siku
border-top-left-radius: 12pxSatu sudut saja
border-radius: 50% / 25%Sudut elips: radius horizontal / radius vertikal

Anak elemen yang punya background bisa menyembul keluar dari sudut induk yang membulat. overflow: hidden pada induk memotongnya mengikuti lengkungan.

Border vs outline

Outline terlihat seperti border tetapi digambar di luarnya dan tidak memakan ruang, jadi menambahkannya tidak pernah menggeser apa pun. Karena itulah browser memakai outline untuk focus ring.

BorderOutline
Memakan ruangYa, bagian dari ukuran kotakTidak
Per sisiYa (border-top, ...)Tidak, selalu di semua sisi
Mengikuti border-radiusYaYa, di browser saat ini
Jarak dari kotakTidakYa, outline-offset
Penggunaan umumDesainIndikator fokus, debugging

Kesalahan umum

  • Tidak ada gaya border. border: 1px #111827; dan border-color: red; tidak menggambar apa-apa. Sertakan solid (atau gaya lain).
  • Border yang membuat tata letak melompat saat hover. Sediakan ruangnya dengan border transparan, atau pakai outline atau box-shadow.
  • Lupa memperhitungkan border dalam lebar. Elemen width: 100% dengan border akan melebihi wadahnya jika memakai content-box. Pakai box-sizing: border-box.
  • border-radius dengan anak elemen yang menyembul dari sudut. Tambahkan overflow: hidden pada induk yang membulat.
  • Menghapus outline fokus dengan outline: none. Pengguna keyboard membutuhkannya; ubah gaya outline-nya alih-alih menghapusnya.

Pertanyaan yang sering diajukan

Bagaimana cara menambahkan border di CSS?

Pakai shorthand dengan lebar, gaya, dan warna: border: 2px solid #2563eb;. Gaya adalah bagian yang paling penting: tanpanya, gaya border bernilai none dan tidak ada border yang digambar.

Kenapa border CSS saya tidak muncul?

Hampir selalu karena gaya border tidak diatur. border: 2px #2563eb; atau border-color: red; saja tidak menggambar apa-apa, karena border-style default-nya none. Tambahkan solid, dashed, atau gaya lainnya.

Bagaimana cara membuat sudut membulat di CSS?

Pakai border-radius: border-radius: 8px; membulatkan keempat sudut. border-radius: 50%; pada persegi membentuk lingkaran, dan nilai besar seperti 999px membentuk pil. Properti ini juga membulatkan background, bahkan tanpa border.

Bagaimana cara menambahkan border di satu sisi saja?

Pakai properti per sisi: border-bottom: 2px solid #e5e7eb;, atau border-inline-start untuk sisi tempat teks dimulai, yang juga berfungsi untuk bahasa yang ditulis dari kanan ke kiri.

Apa perbedaan border dan outline?

Border adalah bagian dari kotak: ia memakan ruang dan mengubah ukuran elemen. Outline digambar di luar border tanpa memakan ruang, tidak bisa diatur per sisi, dan dipakai browser untuk focus ring. Keduanya mengikuti border-radius di browser saat ini.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai