Tôi tự hỏi tại sao điều đó và nếu có bất kỳ giải pháp nào khác trong CSS? Có vẻ như lỗi CSS đối với tôi - yếu tố đầu tiên cũng có thể là phần tử cuối cùng.
Nó không phải là lỗi. Đó là cách hoạt động của thác: nếu phần tử là cả con đầu tiên và con cuối cùng, thì nếu bạn có các quy tắcvà :last-child
trong riêng biệt và cả hai đều khớp với cùng một yếu tố thì bất kỳ điều gì trong quy tắc cụ thể hơn ghi đè khác.
Bạn có thể tìm thấy ví dụ về hành vi này here, với thuộc tính viết tắt border-radius
và cách giải quyết bao gồm sử dụng thuộc tính thành phần thay vì viết tắt, cũng như chỉ định một quy tắc riêng biệt sử dụng một trong các bộ chọn sau ...
Tôi đang tìm một cái gì đó như: "con đầu tiên cũng là con cuối cùng" chọn. Nó tồn tại?
Theo nghĩa đen, bạn sẽ chuỗi cả pseudo-lớp như thế này, mà hoạt động tốt:
:first-child:last-child
Tuy nhiên tồn tại một pseudo-class đặc biệt đóng vai trò cùng một cách:
:only-child
Sự khác biệt chính (trên thực tế, chỉ có chỉ có sự khác biệt) giữa hai bộ chọn này là đặc trưng: cái đầu tiên cụ thể hơn vì nó chứa thêm một lớp giả. Không có sự khác biệt ngay cả trong hỗ trợ trình duyệt, vì :last-child
và :only-child
đều được hỗ trợ bởi cùng một phiên bản chính xác của từng trình duyệt.
Tuyệt vời! Cảm ơn bạn đã phản ứng nhanh chóng! Thậm chí còn tốt hơn là ': chỉ-con' tồn tại - nó bổ sung thêm sự linh hoạt. – Atadj
Đảm bảo rằng bạn đang hỗ trợ IE9 + vì tôi nghĩ đó là phiên bản đầu tiên của IE hỗ trợ: chỉ có con. – AlexM
@AlexM: Đúng. Nó cũng là phiên bản đầu tiên hỗ trợ ': last-child'. Rất tiếc, không có cách nào để nhắm mục tiêu đến đứa trẻ duy nhất sử dụng CSS thuần túy trong các phiên bản cũ hơn; bạn phải thao tác HTML hoặc sử dụng tập lệnh. – BoltClock