:read-write
I :read-only
selektory są dwa zmienność Pseudoklasy mające na celu łatwiejsze formy stylizacji na podstawie disabled
, readonly
i contenteditable
HTML Atrybuty. Chociaż obsługa przeglądarki nie jest taka zła, różne implementacje są dość wątłe.
Zgodnie z oficjalnymi specyfikacjami CSS, :read-write
selektor będzie pasował do elementu, gdy:
- jest to albo coś,
input
co mareadonly
anidisabled
atrybutów. - jest to,
textarea
które nie mareadonly
anidisabled
- to każdy inny edytowalny element (dzięki
contenteditable
atrybutowi)
Składnia i przykład
/* 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; )
Wsparcie przeglądarki
Te dane dotyczące obsługi przeglądarek pochodzą od Caniuse, który zawiera więcej szczegółów. Liczba wskazuje, że przeglądarka obsługuje tę funkcję w tej wersji i nowszych.
Pulpit
Chrom | Firefox | TO ZNACZY | Brzeg | Safari |
---|---|---|---|---|
36 | 3 * | Nie | 13 | 9 |
Telefon komórkowy / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 9,0-9,2 |
Istnieje zasadnicza różnica między tym, co jest zalecane w specyfikacji, a tym, co faktycznie robią przeglądarki. Na przykład, jeśli będziemy trzymać się specyfikacji, każdy element, który jest edytowalny przez użytkownika, ale jest wyłączony ( disabled
lub readonly
) lub po prostu nieedytowalny przez użytkownika, powinien być kierowany przez niekwalifikowany :read-only
selektor.
Chrom | Firefox | Safari | Opera | |
---|---|---|---|---|
input | : do odczytu i zapisu | : do odczytu i zapisu | : do odczytu i zapisu | : do odczytu i zapisu |
input(disabled) | : do odczytu i zapisu | : do odczytu i zapisu | : do odczytu i zapisu | : do odczytu i zapisu |
input(readonly) | :tylko czytać | :tylko czytać | :tylko czytać | :tylko czytać |
(contenteditable) | - | : do odczytu i zapisu | - | :tylko czytać |
* | - | :tylko czytać | - | :tylko czytać |
Tymczasem wydaje się, że robi to tylko Firefox i najwyraźniej też niezbyt dobrze, ponieważ traktuje dane disabled
wejściowe jako pliki :read-write
. Jeśli chodzi o Operę nie oznaczającą contenteditable
elementu jako :read-write
, to po prostu dlatego, że nie obsługuje contenteditable
.