2012-01-11 24 views
23

Tôi muốn chọn hai mục danh sách đầu tiên trong một danh sách không có thứ tự. Tôi có thể chọn mục đầu tiên như sau:nth-child() hoặc con đầu lòng? làm thế nào để chọn con đầu tiên và thứ hai trong một

ul li:nth-child(1) a { 
    background: none repeat scroll 0 0 beige; 
} 

HOẶC

ul li:first-child a { 
    background: none repeat scroll 0 0 beige; 
} 

tôi muốn chọn cả hai chi tiết đơn hàng đầu tiên và thứ hai - làm thế nào để làm điều đó?

Trả lời

37

Nếu không có việc sử dụng js hoặc :nth-child (mà tôi tin là không được hỗ trợ trong IE)

ul li:first-child, ul li:first-child + li { 
    list-style: none; 
} 

Here là một bản demo thử nghiệm trong IE7

+4

+1 cho ': con đầu tiên' và bộ chọn anh chị em liền kề, tuyệt vời để tương thích với IE7. – BoltClock

5

Tính năng này hoạt động trong IE9 + nhưng không phải là ngắn nhất. Bộ chọn @ BoltClock là giải pháp ngắn nhất cho IE9 +. Tôi nghĩ rằng điều này là dễ hiểu hơn một chút vì vậy tôi sẽ để nó như một sự thay thế.

ul li:first-child a, ul li:nth-child(2) a 
{ 
    background: none repeat scroll 0 0 biege; 
} 
+0

cảm ơn. vì vậy tôi phải tách biệt bằng dấu phẩy mỗi bộ chọn - không có cách nào để chọn cả hai trong cùng một bộ chọn? Tôi đã suy nghĩ một cái gì đó dọc theo dòng của li li: nth-con (1,2) một - tất nhiên là không hoạt động nhưng tôi đã nghĩ rằng có thể có một cái gì đó tương tự mà không? –

+0

@tvanfosson: Với 'an + b', bạn có thể chỉ cần chuyển một giá trị âm' a' và nó sẽ chỉ nhận 'b' con đầu tiên. Xem câu trả lời của tôi. – BoltClock

+0

@BoltClock - Tôi học được điều gì đó mới mẻ mỗi ngày. 1 cho bạn, nhưng tôi sẽ để tôi ở đây (sau khi cân nhắc một số) vì tôi nghĩ rằng nó dễ dàng hơn để hiểu những gì đang xảy ra. – tvanfosson

3

Cách tốt nhất để tương thích trình duyệt chéo của bạn là sử dụng jQuery và chỉ định một lớp cho mục danh sách.

Cái gì đó như ...

$(function() { 

$('li').each(function() { 
    if($(this).index() == 1 || $(this).index() == 2) { 
    $(this).addClass('first_or_second'); 
    } 
}); 

}); 
+1

trình duyệt không có javascript? –

35

Đối với việc lựa chọn những đứa trẻ đầu tiên và thứ hai, bạn có thể sử dụng một đơn :nth-child() pseudo-class như vậy:

ul li:nth-child(-n+2) a { 
    background: none repeat scroll 0 0 beige; 
} 
+1

Rất đẹp. Tôi không biết về việc sử dụng 'a = -1'. – tvanfosson

0

.trJobStatus ul{ 
 
    width: 500px; 
 
    height:500px; 
 
    float: left; 
 
    } 
 
.trJobStatus ul li{ 
 
    width: 50px; 
 
    height:50px; 
 
    border: solid 1px #ddd; 
 
    list-style:none; 
 
    display: inline-block; 
 
    text-align: center; 
 
    line-height:50px; 
 
    font-size:25px; 
 
    } 
 

 
.trJobStatus ul li:nth-child(1), 
 
.trJobStatus ul li:nth-child(5){ 
 
    color:red; 
 
    }

 
    <div class="trJobStatus"> 
 
    <ul> 
 
<li>1</li> 
 
    <li>2</li> 
 
    <li>3</li> 
 
    <li>4</li> 
 
    <li>5</li> 
 
    </ul> 
 
</div>

.trJobStatus ul li: nth-child (1), .trJobStatus ul li: nth-child (2) { màu: #fff; màu nền: #ddd; }

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