Tôi hoàn toàn không đồng ý với @mddw và @FelipeAls, liên quan đến việc xem xét việc sử dụng một dấu hai chấm là "an toàn".
Tâm lý "Tôi sẽ sử dụng nó ngay cả khi nó không được chấp nhận" chính là lý do tại sao các công nghệ dựa trên trình duyệt lại rất chậm trong việc phát triển và tiến bộ về phía trước.
CÓ, chúng tôi muốn duy trì khả năng tương thích với các tiêu chuẩn cũ. Hãy đối mặt với nó, đó là bàn tay mà chúng ta đã bị xử lý. NHƯNG, điều này không có nghĩa là bạn có lý do để lười biếng trong quá trình phát triển của mình, bằng cách bỏ qua các tiêu chuẩn hiện tại để ủng hộ những tiêu chuẩn bị phản đối.
Mục tiêu ngoài ra phải là duy trì sự tuân thủ các tiêu chuẩn hiện hành, đồng thời hỗ trợ càng nhiều tiêu chuẩn kế thừa càng tốt.
Nếu phần tử giả sử dụng :
trong CSS2 và ::
trong CSS3, chúng ta không nên sử dụng cái này hay cái kia; chúng ta nên sử dụng cả hai .
Để trả lời đầy đủ câu hỏi ban đầu được hỏi, sau đây là phương pháp thích hợp nhất để hỗ trợ triển khai CSS mới nhất (phiên bản 3), trong khi vẫn giữ nguyên hỗ trợ cũ cho phiên bản 2.
.foo:after {
/* styles */
}
.foo::after {
/* same styles as above. */
}