2011-12-23 13 views

Trả lời

81

các pseudo-class :checked ban đầu áp dụng đối với các yếu tố như vậy có HTML4 selectedchecked thuộc tính

Nguồn: w3.org


Vì vậy, CSS này hoạt động, mặc dù styling color không thể có trong mọi trình duyệt:

option:checked { color: red; } 

Ví dụ về hành động này, ẩn mục hiện được chọn từ danh sách thả xuống.

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


Để tạo kiểu tùy chọn được chọn hiện thời trong đóng thả xuống là tốt, bạn có thể thử đảo ngược logic:

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

Bạn có kiểm tra nó? Nó [dường như không hoạt động] (http://jsfiddle.net/UUznB/) đối với tôi trên FF8. * cập nhật: * nó cũng không hoạt động trong Chromium 15. – FakeRainBrigand

+0

Có, tùy chọn này sẽ chọn tùy chọn được chọn trong danh sách thả xuống, nhưng không phải trong khu vực có thể xem được đã đóng. –

+1

@FakeRainBrigand Tôi đã xác minh rằng nó hoạt động trong Chrome 16. – Emmett

12

Trên thực tế bạn chỉ có thể phong cách một số thuộc tính CSS trên : đã sửa đổi lựa chọn các nguyên tố ion. color không hoạt động, background-color một trong hai, nhưng bạn có thể đặt background-image.

Bạn có thể kết hợp điều này với độ dốc để thực hiện thủ thuật.

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

Hoạt động trên con tắc kè/webkit.

+0

Câu trả lời được chấp nhận đã không làm việc cho tôi, nhưng giải pháp này đã làm. Cảm ơn bạn! –

+0

Không còn hoạt động Chrome 58 – egr103

-1

này đã làm việc cho tôi:

select option { 
    color: black; 
} 
select:not(:checked) { 
    color: gray; 
} 
Các vấn đề liên quan