The :read-write
dan :read-only
penyeleksi adalah dua hal berubah-ubah pseudo-kelas bertujuan membuat bentuk styling lebih mudah berdasarkan disabled
, readonly
dan contenteditable
HTML Atribut. Meskipun dukungan peramban tidak terlalu buruk, berbagai penerapannya cukup miring.
Menurut Spesifikasi CSS resmi, :read-write
pemilih akan mencocokkan elemen ketika:
- itu bisa berupa an
input
yang memilikireadonly
ataudisabled
atribut. - itu adalah
textarea
yang tidak memilikireadonly
ataudisabled
- itu adalah elemen lain yang dapat diedit (berkat
contenteditable
atributnya)
Sintaks & Contoh
/* Any element that is not writable */ :read-only ( ) /*… so you might want to scope it */ input:read-only, textarea:read-only, (contenteditable):read-only ( cursor: not-allowed; ) /* Any enabled text input or enabled textarea or element with the contenteditable attribute */ :read-write ( background: white; cursor: text; )
Dukungan Browser
Data dukungan browser ini berasal dari Caniuse, yang lebih detail. Angka menunjukkan bahwa browser mendukung fitur pada versi tersebut dan yang lebih baru.
Desktop
Chrome | Firefox | YAITU | Tepi | Safari |
---|---|---|---|---|
36 | 3 * | Tidak | 13 | 9 |
Ponsel / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 9.0-9.2 |
Ada perbedaan besar antara apa yang direkomendasikan dalam spesifikasi dan apa yang sebenarnya dilakukan browser. Misalnya, jika kita tetap berpegang pada spesifikasi, setiap elemen yang dapat diedit pengguna tetapi dinonaktifkan ( disabled
atau readonly
) atau yang tidak dapat diedit pengguna harus ditargetkan oleh :read-only
pemilih yang tidak memenuhi syarat .
Chrome | Firefox | Safari | Opera | |
---|---|---|---|---|
input | :Baca tulis | :Baca tulis | :Baca tulis | :Baca tulis |
input(disabled) | :Baca tulis | :Baca tulis | :Baca tulis | :Baca tulis |
input(readonly) | : hanya baca | : hanya baca | : hanya baca | : hanya baca |
(contenteditable) | - | :Baca tulis | - | : hanya baca |
* | - | : hanya baca | - | : hanya baca |
Sementara itu, hanya Firefox yang tampaknya melakukannya, dan tampaknya juga tidak terlalu baik karena menganggap disabled
input sebagai :read-write
. Mengenai Opera tidak menandai sebuah contenteditable
elemen sebagai :read-write
, itu hanya karena itu tidak mendukung contenteditable
.