: branje-pisanje /: samo branje - CSS-triki

Anonim

:read-writeIn :read-onlyselektor sta dva spremenljivost psevdo-razredi, katerih cilj je, da bi obrazec styling lažje osnovi disabled, readonlyin contenteditableHTML atributi. Čeprav podpora za brskalnik ni tako slaba, so različne izvedbe precej neugodne.

V skladu z uradnimi specifikacijami CSS se bo :read-writeizbirnik ujemal z elementom, kadar:

  • je bodisi an, inputki ima readonlyniti disabledatribute.
  • je a, textareaki nima niti readonlynedisabled
  • je kateri koli drug element, ki ga je mogoče urejati (zahvaljujoč contenteditableatributu)

Sintaksa in primer

/* 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; )

Podpora za brskalnik

Ti podatki o podpori brskalnika so od Caniuse, ki vsebuje več podrobnosti. Številka pomeni, da brskalnik podpira to funkcijo v tej različici ali novejši.

Namizje

Chrome Firefox IE Rob Safari
36 3 * Ne 13. 9.

Mobilni / tablični računalnik

Android Chrome Android Firefox Android iOS Safari
88 85 81 9,0-9,2

Obstaja velika razlika med tem, kar je priporočeno v specifikacijah, in tem, kar brskalniki dejansko počnejo. Če se na primer držimo specifikacij, bi moral nekvalificirani izbirnik ciljati na vsak element, ki ga lahko ureja uporabnik, vendar ga onemogoči ( disabledali readonly) ali preprosto ni uporabniško urejen :read-only.

Chrome Firefox Safari Opera
input :brati, pisati :brati, pisati :brati, pisati :brati, pisati
input(disabled) :brati, pisati :brati, pisati :brati, pisati :brati, pisati
input(readonly) :le za branje :le za branje :le za branje :le za branje
(contenteditable) - :brati, pisati - :le za branje
* - :le za branje - :le za branje

Medtem se zdi, da to počne le Firefox in očitno tudi ne preveč dobro, saj meni, da je disabledvložek :read-write. Glede Opera, ki contenteditableelementa ne označi kot :read-write, je preprosto zato, ker ne podpira contenteditable.