2015-11-17 15 views
6

giả sử tôi có một cấu trúc như thế này (và không thể sửa đổi nó):chọn CSS cho: cuối cùng con trong một lựa chọn tập hợp con

<ul> 
    <li class="common"> <p>First A</p> </li> 
    <li class="common"> <p>Second A</p> </li> 
    <li class="common"> <p>Third A</p> </li> 
    <li class="common"> <p><b>SELECT ME</b></p> </li> 
    <li> <p>First B</p> </li> 
    <li> <p>Second B</p> </li> 
    <li> <p>...</p> </li> 
</ul> 

Có cách nào để chọn phần tử cuối cùng với lớp "chung"? (Trong trường hợp này là yếu tố thứ tư)

Đầu tiên tôi đã cố gắng chọn một tập hợp con với:

.common{ 
    background: red; 
} 

và nó làm việc một cách chính xác. Vì vậy, tôi đã thử chọn con cuối cùng của chúng, với:

.common:last-child{ 
    background: green; 
} 

nhưng không may mắn. tôi cũng muốn tránh thêm một lớp cho phần tử đó.

Jsfiddle

EDIT: i đơn giản hóa các lớp học và selectors trở nên sáng sủa

+2

Tôi nghĩ vậy. Nó không thể bằng css thuần túy. – Alex

+0

bạn không thể sử dụng 'li: nth-child (4)'? – Akshay

+0

@Akshay như tôi đã nói, chỉ trong trường hợp này là yếu tố thứ tư, tôi không thể biết chỉ mục của anh ta chắc chắn, đó là lý do tại sao tôi cần: cuối cùng con. thanks anyway – pumpkinzzz

Trả lời

6

Có cách nào để chọn phần tử cuối cùng với lớp "thường"?

Không, không phải với bộ chọn CSS mà không sửa đổi HTML.

-2

Bạn có thể sử dụng JavaScript hoặc jQuery

$('custom').prev().css('color', 'red'); 
+0

Đây là nhận xét chứ không phải là câu trả lời. – Alex

+0

Kính gửi thư yêu thích: câu trả lời này hoạt động. –

-2

Nếu bạn không chống lại một con đường JS bạn có thể làm điều này

$('li.common.custom').first().prev('.common').css('background','yellow'); 

Nó tìm phần tử đầu tiên có cả lớp .common và .custom và sau đó chuyển đến phần tử trước. Vì vậy, về mặt kỹ thuật là yếu tố cuối cùng của nó mà chỉ có .common

https://jsfiddle.net/89z20341/

là cấu trúc sẽ ở lại chính xác như bạn đã mã hoá nó? ví dụ: với các thẻ in đậm trên phần tử bạn muốn chọn?

nếu vì vậy bạn có thể chỉ làm điều này

.common p b{ 
background: green; 
display:block; 

}

http://jsfiddle.net/seLm589s/4/

+0

Bình luận cho downvoters: mã này là tốt. Với CSS OP không thể làm được. –

+0

Nhưng câu hỏi không phải về giải pháp js/jQuery. Sử dụng js nó là tầm thường để làm. – jQuery00

+0

không, điều đó in đậm chỉ là nhấn mạnh yếu tố. và phong cách tôi muốn áp dụng là trên phần tử .common, không phải con của anh ấy – pumpkinzzz

0

gì về

.common:last-of-type { 
 
    background: green; 
 
}

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