2012-01-31 22 views
9

Trên danh sách thả xuống chọn, tôi cần phải làm cho một số mặt hàng' mạnh/đậm '.css chọn thả xuống đậm trên một số <option> 's

Làm thế nào tôi có thể làm điều này?

Ví dụ về những gì tôi lý tưởng yêu cầu:

<option value="#"><strong>Andorra</strong></option> 
<option value="#">--Grandvalira</option> 
<option value="#">--Vallnord</option> 
<option value="#"><strong>Austria</strong></option> 
<option value="#">--Amadé</option> 
<option value="#">--Bad Kleinkirchheim</option> 
<option value="#">--Mallnitz</option> 
+0

giải quyết cho optgoups hoặc xây dựng một "giả" js/css dựa thả xuống - cũng có thể sao chép vào: http://stackoverflow.com/questions/7208786/how-to-style-the-option-of-a -html-chọn – Hannes

Trả lời

5

bạn có thể sử dụng :nth-child(N)

option:nth-child(1), option:nth-child(4) { 
    font-weight:bold; 
} 

Demo:http://jsfiddle.net/Sotiris/sqshN/

Tìm thêm thông tin và hỗ trợ trình duyệt cho điều này pseudo-class tại http://reference.sitepoint.com/css/pseudoclass-nthchild

+6

cảm ơn cho điều này ... tuyệt vời của nó, nhưng không hoạt động trong Chrome (tốt trong Firefox) – user991830

+2

@ user991830 không hỗ trợ in đậm cho các phần tử 'option', nhưng các tác phẩm giả lớp. Kiểm tra ví dụ này thay đổi màu sắc http://jsfiddle.net/sqshN/1/ – Sotiris

+0

[Windows] Chrome chưa bao giờ cho phép thả kiểu xuống vì nó sử dụng API OSes. Tôi nhớ lại một sự khác biệt như vậy khi cố gắng đạt được một cái gì đó tương tự. – lpd

26

Bạn thực sự không thể.

Các gần điều (bạn không thể chọn một mục đậm)

<optgroup label="Swedish Cars"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    </optgroup> 
    <optgroup label="German Cars"> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
    </optgroup> 

Mà cho bạn điều này: enter image description here

http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_optgroup

Bạn cũng có thể xây dựng một trong những của riêng bạn nhưng nó sẽ không được nhập vào một thẻ đầu vào (bạn nên sử dụng đầu vào của riêng bạn).

+1

+1 Tôi sẽ không nói "bạn không thể thực sự" (xem câu trả lời của @Sotiris), nhưng tôi nghĩ đây là câu trả lời phù hợp nhất cho câu hỏi của người hỏi vì có vẻ như họ thực sự đang sử dụng nhóm để bắt đầu với –

+0

@ MyHeadHurts cho tôi, nếu nó không thể làm việc trong tất cả các trình duyệt - tôi không sử dụng nó. bạn cũng nên nghĩ như là một nhà phát triển web. –

+0

Mặc dù tôi đồng ý với hầu hết các cấp, tôi vui lòng cho phép khách hàng xác định họ muốn hỗ trợ bao xa. Ngoài ra, sẽ có một cách 2.0 để đạt được điều đó - chỉ cần dài hơn ở ít nhất –

-1

này cũng làm việc (Firefox 50 và Chrome 55). Các mục 3 và 5 được in đậm

<style> 
    .bld {font-weight:bold;} 
    </style> 
    <select> 
    <option value = 1>Kanakangi 
    <option value = 2>Ratnangi 
    <option class = bld value = 8>Hanumatthodi 
    <option value = 9>Dhenuka 
    <option class = bld value = 15>Mayamalavagowla 
    <option value = 16>Chakravaaham 
    </select> 
+0

Điều đó không hoạt động. –

+0

Nó hoạt động, chỉ cần kiểm tra nó trước. –

0

Bạn có thể làm điều đó với jQuery.

$('#Your select').append($("<option></option>").attr.css("font-weight" , "bold").html("Bold Text")); 

Bạn sẽ phải thêm một số logic để xác định tùy chọn nào in đậm, rõ ràng.

Các vấn đề liên quan