2012-06-15 29 views
10

Tôi có HTML sau:Di biên giới hàng đầu của đứa con đầu lòng và biên giới phía dưới của con cuối cùng trong CSS

<ul> 
<li>FIRST</li> 
<li>SECOND</li> 
<li>THIRD</li> 
<li>FOURTH</li> 
<ul> 

Và CSS sau đây:

li 
{ 
border-top:1px solid #FFF; 
border-bottom: 1px solid #D0D0D0;  
}​ 

Làm thế nào tôi có thể loại bỏ các biên giới hàng đầu cho phần tử LI đầu tiên và đường viền dưới cùng cho phần tử LI cuối cùng?

Trả lời

24
li:first-child { 
    border-top: none; 
} 
li:last-child { 
    border-bottom: none; 
} 

Giống như vậy.

+0

Và các công trình tương tự cho 'li: cuối child' –

+3

Xin lưu ý, rằng CSS-selector ": cuối cùng con" chỉ hoạt động trong IE9 hoặc tuyệt hơn. Nếu bạn muốn sử dụng điều này trên IE8 và IE7, bạn có thể sử dụng "selectivizr" với câu lệnh có điều kiện "", xem: http://selectivizr.com – insertusernamehere

2

Sử dụng bộ chọn CSS :not để chỉ áp dụng kiểu khi được yêu cầu — thay vì thêm kiểu sau đó xóa chúng.

Ví dụ,

body { 
 
    background: #acc; 
 
} 
 

 
li:not(:first-child) { 
 
    border-top: 1px solid #fff; 
 
} 
 

 
li:not(:last-child) { 
 
    border-bottom: 1px solid #000; 
 
}
<ul> 
 
    <li>First</li> 
 
    <li>Second</li> 
 
    <li>Third</li> 
 
    <li>Fourth</li> 
 
</ul>

+0

Giả sử bạn [nhắm mục tiêu các trình duyệt hiện đại] (http://caniuse.com/#feat=css-sel3), đây là câu trả lời tốt hơn. – Zac

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