Di bawah ini kita akan mempelajari cara membuat custom checkbox dan radio button dengan CSS.
Section Artikel
Custom Checkbox dan Radio Button
<!DOCTYPE html> <html> <style> /* The container */ .container { display: block; position: relative; padding-left: 35px; margin-bottom: 12px; cursor: pointer; font-size: 22px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } /* Sembunyikan checkbox default browser */ .container input { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } /* Buat custom checkbox */ .checkmark1 { position: absolute; top: 0; left: 0; height: 25px; width: 25px; background-color: #eee; } /* Saat mengarahkan mouse, tambahkan warna latar belakang abu-abu */ .container:hover input ~ .checkmark1 { background-color:#eee; } /* Saat checkbox dicentang, tambahkan background gold */ .container input:checked ~ .checkmark1 { background-color: #FFD700; } /* Buat checkmark atau indikator (tersembunyi jika tidak dicentang) */ .checkmark1:after { content: ""; position: absolute; display: none; } /* Tunjukkan tanda centang saat dicentang */ .container input:checked ~ .checkmark1:after { display: block; } /* Style untuk checkmark atau indikator */ .container .checkmark1:after { left: 9px; top: 5px; width: 5px; height: 10px; border: solid white; border-width: 0 3px 3px 0; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } /* Sembunyikan radio button default browser */ .container input { position: absolute; opacity: 0; cursor: pointer; } /* Buat custom radio button */ .checkmark { position: absolute; top: 0; left: 0; height: 25px; width: 25px; background-color: #eee; border-radius: 50%; } /* Saat mengarahkan mouse, tambahkan warna background abu-abu */ .container:hover input ~ .checkmark { background-color: #ccc; } /* Saat radio button dicentang, tambahkan latar belakang merah */ .container input:checked ~ .checkmark { background-color: #800000; } /* Buat indikator (titik / lingkaran - tersembunyi jika tidak dicentang) */ .checkmark:after { content: ""; position: absolute; display: none; } /* Tunjukkan indikator (titik / lingkaran) saat dicentang */ .container input:checked ~ .checkmark:after { display: block; } /* Style untuk indicator (dot/circle) */ .container .checkmark:after { top: 9px; left: 9px; width: 8px; height: 8px; border-radius: 50%; background: white; } </style> <body> <h1>Contoh Custom Checkbox dan Radio Button</h1> <br> <h2>Custom Checkboxes</h2> <label class="container">Satu <input type="checkbox" checked="checked"> <span class="checkmark1"></span> </label> <label class="container">Dua <input type="checkbox"> <span class="checkmark1"></span> </label> <label class="container">Tiga <input type="checkbox"> <span class="checkmark1"></span> </label> <label class="container">Empat <input type="checkbox"> <span class="checkmark1"></span> </label> <h2>Custom Radio Buttons</h2> <label class="container">Satu <input type="radio" checked="checked" name="radio"> <span class="checkmark"></span> </label> <label class="container">Dua <input type="radio" name="radio"> <span class="checkmark"></span> </label> <label class="container">Tiga <input type="radio" name="radio"> <span class="checkmark"></span> </label> <label class="container">Empat <input type="radio" name="radio"> <span class="checkmark"></span> </label> </body> </html>
Cara Membuat Custom Checkbox
<!DOCTYPE html>
<html>
<style>
/* The container */
.container {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 22px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
/* Sembunyikan checkbox default browser */
.container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}
/* Buat custom checkbox */
.checkmark1 {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
}
/* Saat mengarahkan mouse, tambahkan warna latar belakang abu-abu */
.container:hover input ~ .checkmark1 {
  background-color:#eee;
}
/* Saat checkbox dicentang, tambahkan background gold */
.container input:checked ~ .checkmark1 {
  background-color: #FFD700;
}
/* Buat checkmark atau indikator (tersembunyi jika tidak dicentang) */
.checkmark1:after {
  content: "";
  position: absolute;
  display: none;
}
/* Tunjukkan tanda centang saat dicentang */
.container input:checked ~ .checkmark1:after {
  display: block;
}
/* Style untuk  checkmark atau indikator */
.container .checkmark1:after {
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
</style>
<body>
<h1>Custom Checkboxes</h1>
<label class="container">Satu
  <input type="checkbox" checked="checked">
  <span class="checkmark1"></span>
</label>
<label class="container">Dua
  <input type="checkbox">
  <span class="checkmark1"></span>
</label>
<label class="container">Tiga
  <input type="checkbox">
  <span class="checkmark1"></span>
</label>
<label class="container">Empat
  <input type="checkbox">
  <span class="checkmark1"></span>
</label>
</body>
</html>
Langkah 1) Tambahkan HTML:
Contoh
<label class="container">Satu <input type="checkbox" checked="checked"> <span class="checkmark1"></span> </label> <label class="container">Dua <input type="checkbox"> <span class="checkmark1"></span> </label> <label class="container">Tiga <input type="checkbox"> <span class="checkmark1"></span> </label> <label class="container">Empat <input type="checkbox"> <span class="checkmark1"></span> </label>
Langkah 2) Tambahkan CSS:
Contoh
/* The container */
.container {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 22px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
/* Sembunyikan checkbox default browser */
.container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}
/* Buat custom checkbox */
.checkmark1 {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
}
/* Saat mengarahkan mouse, tambahkan warna latar belakang abu-abu */
.container:hover input ~ .checkmark1 {
  background-color:#eee;
}
/* Saat checkbox dicentang, tambahkan background gold */
.container input:checked ~ .checkmark1 {
  background-color: #FFD700;
}
/* Buat checkmark atau indikator (tersembunyi jika tidak dicentang) */
.checkmark1:after {
  content: "";
  position: absolute;
  display: none;
}
/* Tunjukkan tanda centang saat dicentang */
.container input:checked ~ .checkmark1:after {
  display: block;
}
/* Style untuk  checkmark atau indikator */
.container .checkmark1:after {
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}Cara Membuat Custom Radio Button
<!DOCTYPE html>
<html>
<style>
/* The container */
.container {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 22px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
/* Sembunyikan radio button default browser */
.container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}
/* Buat custom radio button */
.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
  border-radius: 50%;
}
/* Saat mengarahkan mouse, tambahkan warna background abu-abu */
.container:hover input ~ .checkmark {
  background-color: #ccc;
}
/* Saat radio button dicentang, tambahkan latar belakang merah */
.container input:checked ~ .checkmark {
  background-color: #800000;
}
/* Buat indikator (titik / lingkaran - tersembunyi jika tidak dicentang) */
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}
/* Tunjukkan indikator (titik / lingkaran) saat dicentang */
.container input:checked ~ .checkmark:after {
  display: block;
}
/* Style untuk indicator (dot/circle) */
.container .checkmark:after {
 	top: 9px;
	left: 9px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: white;
}
</style>
<body>
<h1>Custom Radio Buttons</h1>
<label class="container">Satu
  <input type="radio" checked="checked" name="radio">
  <span class="checkmark"></span>
</label>
<label class="container">Dua
  <input type="radio" name="radio">
  <span class="checkmark"></span>
</label>
<label class="container">Tiga
  <input type="radio" name="radio">
  <span class="checkmark"></span>
</label>
<label class="container">Empat
  <input type="radio" name="radio">
  <span class="checkmark"></span>
</label>
</body>
</html>
Langkah 1) Tambahkan HTML:
Contoh
<label class="container">Satu <input type="radio" checked="checked" name="radio"> <span class="checkmark"></span> </label> <label class="container">Dua <input type="radio" name="radio"> <span class="checkmark"></span> </label> <label class="container">Tiga <input type="radio" name="radio"> <span class="checkmark"></span> </label> <label class="container">Empat <input type="radio" name="radio"> <span class="checkmark"></span> </label>
Langkah 2) Tambahkan CSS:
Contoh
/* The container */
.container {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 22px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
/* Sembunyikan radio button default browser */
.container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}
/* Buat custom radio button */
.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
  border-radius: 50%;
}
/* Saat mengarahkan mouse, tambahkan warna background abu-abu */
.container:hover input ~ .checkmark {
  background-color: #ccc;
}
/* Saat radio button dicentang, tambahkan latar belakang merah */
.container input:checked ~ .checkmark {
  background-color: #800000;
}
/* Buat indikator (titik / lingkaran - tersembunyi jika tidak dicentang) */
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}
/* Tunjukkan indikator (titik / lingkaran) saat dicentang */
.container input:checked ~ .checkmark:after {
  display: block;
}
/* Style untuk indicator (dot/circle) */
.container .checkmark:after {
 	top: 9px;
	left: 9px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: white;
}