Câu hỏi về bộ chọn CSS3 cho tất cả trừ lựa chọn đầu tiên


92

Với đánh dấu sau, tôi muốn một bộ chọn CSS để chọn tất cả trừ menu chọn đầu tiên trong mỗi div tùy chọn - trong số đó có thể có nhiều:

<div class="options">
    <div class="opt1">
        <select title="Please choose Warranty">
            <option value="">Select Waranty</option>
            <option value="1">1 year guarantee</option>
            <option value="2">3 year guarantee</option>
        </select>
    </div>
    <div class="opt2">
        <select title="Please choose Color">
            <option value="">Select Color</option>
            <option value="1">Red</option>
            <option value="2">Blue</option>
        </select>
    </div>
    <div class="opt3">
        <select title="Please choose Size">
            <option value="">Select Size</option>
            <option value="1">Small</option>
            <option value="2">Big</option>
        </select>
    </div>
</div>

Tôi đang sử dụng điều này trong Prototype có hỗ trợ bộ chọn css3 gần như đầy đủ nên không bị hỗ trợ trình duyệt quan tâm.

Bộ chọn ban đầu sẽ giống như:

div.options div select

Tôi đã thử một vài biến thể trên nth-child:not(:first-child)nhưng dường như không thể làm cho nó làm việc.

Câu trả lời:



49

Bạn cần chọn tùy chọn divs thay vì selects khi sử dụng :not(:first-child), vì mọi selectlà con đầu tiên (và duy nhất) của cha mẹ của nó div:

div.options > div:not(:first-child) > select

Một cách thay thế :not(:first-child)là sử dụng :nth-child()với độ lệch đầu là 2, như sau:

div.options > div:nth-child(n + 2) > select

Một giải pháp thay thế khác là với bộ tổ hợp anh chị em chung ~(được hỗ trợ bởi IE7 +):

div.options > div ~ div > select

cảm ơn vì thông tin bổ sung, đã chấp nhận câu trả lời khác vì nó cũng chính xác và đã hoàn thành trước.
robjmills

1
Chỉ trong trường hợp bạn lo lắng về các IE cũ hơn, tôi đã thêm một giải pháp thứ ba.
BoltClock

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.