CSS: คลาสหลอกที่เลือกคล้ายกับ: ตรวจสอบ แต่สำหรับองค์ประกอบ <select>


86

มีวิธีจัดรูปแบบ<option>องค์ประกอบที่เลือกในปัจจุบันใน<select>องค์ประกอบหรือไม่

จากนั้นฉันสามารถให้สีพื้นหลังกับองค์ประกอบตัวเลือกที่เลือกในปัจจุบันได้หรือไม่? ด้วยวิธีนี้ฉันสามารถจัดรูปแบบตัวเลือกที่สามารถดูได้ในเมนูแบบเลื่อนลงแบบปิด

คำตอบ:


123

:checkedหลอกชั้นแรกใช้กับองค์ประกอบต่างๆที่มี HTML4 selectedและcheckedคุณลักษณะ

ที่มา: w3.org


ดังนั้น CSS นี้จึงใช้งานได้แม้ว่าการจัดรูปแบบcolorจะไม่สามารถทำได้ในทุกเบราว์เซอร์:

option:checked { color: red; }

ตัวอย่างของการดำเนินการนี้ซ่อนรายการที่เลือกในปัจจุบันจากรายการแบบเลื่อนลง

option:checked { display:none; }
<select>
    <option>A</option>
    <option>B</option>
    <option>C</option>
</select>


หากต้องการจัดรูปแบบตัวเลือกที่เลือกในปัจจุบันในเมนูแบบเลื่อนลงแบบปิดคุณสามารถลองย้อนกลับตรรกะ:

select { color: red; }
option:not(:checked) { color: black; } /* or whatever your default style is */

5
คุณได้ทดสอบหรือไม่? มันดูเหมือนจะไม่ทำงานสำหรับฉันใน FF8 อัปเดต:มันใช้ไม่ได้ใน Chromium 15 เช่นกัน
Brigand

1
@emmett ฉันได้ตรวจสอบใน Chrome 16 ด้วยเช่นกันดังที่ฉันได้กล่าวไว้ในความคิดเห็นก่อนหน้าของฉันมันจัดรูปแบบตัวเลือกที่เลือกในรายการแบบเลื่อนลง แต่ไม่ใช่ตัวเลือกในพื้นที่ที่สามารถดูได้แบบปิด
Web_Designer

2
@Web_Designer ตกลงฉันเห็นปัญหา ฉันแก้ไขคำตอบด้วยวิธีแก้ปัญหาอื่น (ไม่เป็นระเบียบ)
Emmett

คำตอบที่ยอมรับใช้ไม่ได้กับฉันใน Chrome คุณสามารถทดสอบได้ที่นี่: jsfiddle.net/hk4s0ech
Andre Chenier

18

จริงๆแล้วคุณสามารถจัดสไตล์คุณสมบัติ CSS ได้เพียงไม่กี่อย่างใน:องค์ประกอบตัวเลือกที่ แก้ไข colorใช้ไม่ได้background-colorเช่นกัน แต่คุณสามารถตั้งค่าไฟล์background-image.

คุณสามารถจับคู่สิ่งนี้ด้วยการไล่ระดับสีเพื่อทำเคล็ดลับ

option:hover,
option:focus,
option:active,
option:checked {
  background: linear-gradient(#5A2569, #5A2569);
}
<select>
  <option>A</option>
  <option>B</option>
  <option>C</option>
</select>

ทำงานบน gecko / webkit


คำตอบที่ยอมรับไม่ได้ผลสำหรับฉัน แต่วิธีนี้ทำได้ ขอขอบคุณ!
Anthony Hilyard

โปรดทราบว่าคุณสามารถใช้ฟิลเตอร์กับตัวกรองได้เช่นนี้: ตัวเลือก: เลือก {filter: grayscale (1);} ซึ่งคล้ายกับที่คุณสามารถจัดรูปแบบช่องทำเครื่องหมายและปุ่มวิทยุใน Chrome ใน Chrome เพื่อทำให้เป็นสีฟ้าได้ในปัจจุบัน
KS74

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.