Anda tidak dapat menempatkan kotak centang di dalam elemen pilih tetapi Anda bisa mendapatkan fungsi yang sama dengan menggunakan HTML, CSS dan JavaScript. Berikut adalah solusi kerja yang mungkin. Berikut penjelasannya.
Kode:
var expanded = false;
function showCheckboxes() {
var checkboxes = document.getElementById("checkboxes");
if (!expanded) {
checkboxes.style.display = "block";
expanded = true;
} else {
checkboxes.style.display = "none";
expanded = false;
}
}
.multiselect {
width: 200px;
}
.selectBox {
position: relative;
}
.selectBox select {
width: 100%;
font-weight: bold;
}
.overSelect {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
#checkboxes {
display: none;
border: 1px #dadada solid;
}
#checkboxes label {
display: block;
}
#checkboxes label:hover {
background-color: #1e90ff;
}
<form>
<div class="multiselect">
<div class="selectBox" onclick="showCheckboxes()">
<select>
<option>Select an option</option>
</select>
<div class="overSelect"></div>
</div>
<div id="checkboxes">
<label for="one">
<input type="checkbox" id="one" />First checkbox</label>
<label for="two">
<input type="checkbox" id="two" />Second checkbox</label>
<label for="three">
<input type="checkbox" id="three" />Third checkbox</label>
</div>
</div>
</form>
Penjelasan:
Pertama kita membuat elemen pilih yang menampilkan teks "Pilih opsi", dan elemen kosong yang menutupi (tumpang tindih) elemen pilih ( <div class="overSelect">
). Kami tidak ingin pengguna mengklik elemen pilih - ini akan menampilkan opsi kosong. Untuk tumpang tindih elemen dengan elemen lain kami menggunakan properti posisi CSS dengan nilai relatif | mutlak.
Untuk menambahkan fungsionalitas kita menetapkan fungsi JavaScript yang dipanggil saat pengguna mengklik div yang berisi elemen pilih kita ( <div class="selectBox" onclick="showCheckboxes()">
).
Kami juga membuat div yang berisi kotak centang kami dan menatanya menggunakan CSS. Fungsi JavaScript yang disebutkan di atas hanya mengubah <div id="checkboxes">
nilai properti tampilan CSS dari "tidak ada" menjadi "blok" dan sebaliknya.
Solusinya telah diuji di browser berikut: Internet Explorer 10, Firefox 34, Chrome 39. Browser harus mengaktifkan JavaScript.
Informasi lebih lanjut:
Posisi CSS
Cara melapisi satu div di atas div lainnya
http://www.w3schools.com/css/css_positioning.asp
Properti tampilan CSS
http://www.w3schools.com/cssref/pr_class_display.asp