คุณไม่สามารถวางช่องทำเครื่องหมายในองค์ประกอบที่เลือกได้ แต่คุณสามารถใช้ฟังก์ชันเดียวกันได้โดยใช้ HTML, CSS และ JavaScript นี่คือวิธีการทำงานที่เป็นไปได้ คำอธิบายดังต่อไปนี้
รหัส:
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>
คำอธิบาย:
ในตอนแรกเราสร้างองค์ประกอบแบบเลือกที่แสดงข้อความ "เลือกตัวเลือก" และองค์ประกอบว่างที่ครอบคลุม (ทับซ้อน) องค์ประกอบที่เลือก ( <div class="overSelect">
) เราไม่ต้องการให้ผู้ใช้คลิกที่เลือกองค์ประกอบ - มันจะแสดงตัวเลือกที่ว่างเปล่า ในการซ้อนทับองค์ประกอบกับองค์ประกอบอื่น ๆ เราใช้คุณสมบัติตำแหน่ง CSS กับค่าสัมพัทธ์ | แน่นอน
ในการเพิ่มฟังก์ชันเราระบุฟังก์ชัน JavaScript ที่ถูกเรียกใช้เมื่อผู้ใช้คลิกที่ div ที่มีองค์ประกอบที่เลือก ( <div class="selectBox" onclick="showCheckboxes()">
)
เรายังสร้าง div ที่มีช่องทำเครื่องหมายและจัดรูปแบบโดยใช้ CSS ฟังก์ชัน JavaScript ที่กล่าวถึงข้างต้นเพียงแค่เปลี่ยน<div id="checkboxes">
ค่าของคุณสมบัติการแสดงผล CSS จาก "ไม่มี" เป็น "บล็อก" และในทางกลับกัน
โซลูชันนี้ได้รับการทดสอบในเบราว์เซอร์ต่อไปนี้: Internet Explorer 10, Firefox 34, Chrome 39 เบราว์เซอร์จำเป็นต้องเปิดใช้งาน JavaScript
ข้อมูลมากกว่านี้:
การวางตำแหน่ง CSS
วิธีซ้อนทับ div หนึ่งทับอีก div
http://www.w3schools.com/css/css_positioning.asp
คุณสมบัติการแสดงผล CSS
http://www.w3schools.com/cssref/pr_class_display.asp