Tôi đang nghiên cứu css và typography, và chạy vào khái niệm hấp dẫn này của các bộ chọn giả. Tôi đã sử dụng bộ chọn psuedo ruột già duy nhất và không quen thuộc với phiên bản hai dấu hai chấm của bộ chọn psuedo. I understand rằng dấu hai chấm được gọi là phần tử giả thay vì một bộ chọn giả - nhưng tại sao? Và sự khác biệt là gì?CSS "::" vs ":" - phần tử giả vs bộ chọn giả?
Tôi cũng hiểu rằng dấu hai chấm đơn được hỗ trợ nhiều hơn, vì vậy trong trường hợp nào thì người ta sẽ sử dụng phần tử giả đại tràng kép? Có những trường hợp sử dụng trong đó hai dấu hai chấm là cần thiết, và dấu hai chấm đơn lẻ sẽ không hoàn thành công việc? tình huống đó có thể là gì?
"Không giống như các phần tử giả, các lớp giả có thể xuất hiện ở bất kỳ vị trí nào trong chuỗi chọn". (Trích dẫn từ liên kết) - Tôi không biết 'chuỗi chọn' là gì, nhưng điều này cũng có vẻ như là một hạn chế khác của cách tiếp cận hai dấu hai chấm. Tại sao tôi cần phải sử dụng dấu hai chấm nếu nó là (trong sự hiểu biết của tôi) chỉ là một phiên bản ít được hỗ trợ của dấu hai chấm đơn?
chỉnh sửa: chúng xuất hiện không phải là chức năng giống nhau: fiddle
<div><p>First Line</p></div>
<div><p>Second Line</p></div>
css
div:nth-child(1) > p {
color: green;
}
div::nth-child(2) > p {
color: blue;
}
Như [MDN nêu rõ] (https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements): "Đôi khi bạn sẽ thấy dấu hai chấm (:) thay vì chỉ một (Đây là một phần của CSS3 và một nỗ lực để phân biệt giữa các lớp giả và các phần tử giả. Hầu hết các trình duyệt đều hỗ trợ cả hai giá trị. " – j08691
Theo https://developer.mozilla.org/en/docs/Web/CSS/:nth-child nth-child là bộ chọn lớp giả, do đó bạn nên sử dụng dấu hai chấm đơn, không phải dấu hai chấm (vì nó không phải là bộ chọn phần tử psedo). –
Tại sao bạn gọi chúng là bộ chọn psuedo khi tài liệu gọi chúng là các lớp giả? –