2015-05-16 13 views
5

Tôi có 2 dòng CSS để đặt lề trên mọi phần tử ngoại trừ phần tử cuối cùng. Có cách nào để kết hợp nó thành 1 dòng không?Ký quỹ trên mỗi phần tử ngoại trừ

Đây là những gì tôi đã hiện (làm việc):

.work img { 
    margin-right: 10px; 
} 

.work img:last { 
    margin-right: 0px; 
} 

tôi đã cố gắng thay đổi nó để:

.work img:not(:last) { 
    margin-right: 10px; 
} 

Nhưng nó không làm việc? Bất kỳ ý tưởng tại sao?

CẬP NHẬT Tôi chỉ có năm hình ảnh. Lựa chọn khác của tôi là chỉ có lợi nhuận trên bốn đầu tiên.

+0

Bạn có thể muốn thử .work img: con cuối cùng {m argin-right: 0px} – Quintile

+0

@Quintile vẫn đang sử dụng 2 dòng CSS. Tôi chỉ tự hỏi liệu tôi có thể làm điều đó trong một dòng. Phần đầu tiên của mã của tôi đang hoạt động. Không phải phần thứ hai – user4756836

+0

Lý do tại sao không có bộ chọn ': last' nhưng chúng ta có': last-child' và ': last-of-type'. Tôi đã chơi xung quanh với những bộ chọn và nghĩ rằng nó có thể giúp một người nào đó trong tương lai: https://jsfiddle.net/21rs5dog/ –

Trả lời

5

Bạn có sai lầm nhỏ

Thay đổi:

.work img:not(:last) 

để

.work:not(:last-child) 

Kiểm tra Fiddle Here.

+0

không hoạt động – user4756836

0

Hãy thử điều này:

.work img { 
    margin-right: 10px; 
} 

.work img:last-child { 
    margin-right: 0px; 
} 

hoặc

.work img:not(:last-child) { 
    margin-right: 10px; 
} 

hoặc giải pháp jQuery:

jQuery('.work img:not(:last)').css({marginRight: 10); 

Hãy nhớ rằng, cần trình duyệt của bạn để có sự hỗ trợ cho bộ chọn nếu bạn áp dụng CSS tinh khiết.

Xem này để tham khảo: http://caniuse.com/#search=%3Alast-child

0

Nếu bạn cần hỗ trợ trình duyệt đầy đủ, tôi sẽ đề nghị sử dụng một số javascript, hoặc thêm một lớp của .last trên img ngoái. Nếu không, bạn chỉ có thể làm:

.work img:last-child { 
    margin: 0; 
} 
Các vấn đề liên quan