Tôi có một số divs:làm cách nào để chọn một div có lớp "A" nhưng KHÔNG với lớp "B"?
<div class="A">"Target"</div>
<div class="A B">"NotMyTarget"</div>
<div class="A C">"NotMyTarget"</div>
<div class="A D">"NotMyTarget"</div>
<div class="A E">"NotMyTarget"</div>
Có một chọn CSS mà sẽ làm cho tôi div chứa Target
nhưng không phải là các div chứa NotMyTarget
?
Giải pháp phải làm việc trên IE7, IE8, Safari, Chrome và Firefox
Edit: Cho đến nay Nick là gần nhất. Đó là vụng về và tôi không thích những giải pháp, nhưng ít nhất nó hoạt động:
.A
{
/* style that all divs will take */
}
div.B
{
/* style that will override style .A */
}
Câu hỏi của bạn có một chút công thức kém. Tiêu đề làm rõ những gì bạn muốn, nhưng mã và câu hỏi thì không. Câu trả lời đơn giản sẽ là: chỉ cần sử dụng '# Target'. Đối với câu trả lời cho câu hỏi trong tiêu đề: CSS3 có một bộ chọn ': not()', nhưng không phải tất cả các trình duyệt đều làm CSS3. – BalusC
Tôi thích giải pháp của Ron DeVera là thanh lịch hơn nhưng không thể làm cho nó hoạt động trên bất kỳ trình duyệt nào. Bất kỳ người bình luận nào có thể cho tôi biết liệu nó có hoạt động hoàn toàn không, và tôi chỉ cần tìm ra các chi tiết nhỏ? (bệnh ngày hôm nay, ít kiên nhẫn cho điều này) – MedicineMan
Tôi đã chỉnh sửa câu trả lời của mình để sử dụng 'nền', vì' phác thảo' không hoạt động trong các phiên bản cũ của IE. (Tôi thường sử dụng 'outline' làm CSS chẩn đoán mặc định của mình, vì - như' background' - nó không sửa đổi bố cục.) Chris Lively cũng vui lòng thêm một ví dụ làm việc đầy đủ vào câu trả lời của tôi. –