Tôi đang cố gắng để đến với một số phong cách mặc định tốt cho <input>
s trong HTML5 và thử như sau:Những yếu tố nào hỗ trợ :: trước và sau phần tử giả?
input::after { display: inline; }
input:valid::after { content: ' ✓ '; color: #ddf0dd; }
input:invalid::after { content: ' ✗ '; color: #f0dddd; }
Alas, nội dung ::after
không bao giờ xuất hiện. Nó không phải là một vấn đề với các dấu hai chấm so với đơn cho các phần tử giả; Tôi đã thử cả hai. Nó cũng không phải là vấn đề với việc có một phần tử giả và một lớp giả; Tôi đã thử nó mà không cần :valid
và :invalid
. Tôi nhận được hành vi tương tự trong Chrome, Safari, và Firefox (Firefox không có :valid
và :invalid
pseudo-lớp học, nhưng tôi đã cố gắng mà không những.)
Các giả thành phần hoạt động tốt trên <div>
, <span>
, <p>
và <q>
yếu tố - một số trong đó là các phần tử khối và một số là nội tuyến.
Vì vậy, câu hỏi của tôi là: tại sao các trình duyệt đồng ý rằng <input>
s không có ::after
? Tôi không thể tìm thấy bất cứ điều gì trong spec đó sẽ chỉ ra điều này.
Đối với hồ sơ, dấu hai chấm đôi và dấu hai chấm đơn được dự định để phân biệt giả yếu tố và ** pseudo-classes **, bởi vì mọi người đều munging cả trong số họ lại với nhau thành một thuật ngữ chung được gọi là "pseudo-selectors ". – BoltClock