: читање-писање /: само читање - ЦСС-трикови

Anonim

:read-writeИ :read-onlyселектори су два мутабилити псеудо-класе која има за циљ прављење облика стилинг лакше основу disabled, readonlyи contenteditableХТМЛ атрибут. Иако подршка за прегледач није толико лоша, разне примене су прилично несигурне.

Према званичним ЦСС спецификацијама, :read-writeселектор ће одговарати елементу када:

  • то је или inputкоје има readonlyнити disabledатрибуте.
  • то је textareaкоје нема readonlyнитиdisabled
  • то је било који други елемент који се може уређивати (захваљујући contenteditableатрибуту)

Синтакса и пример

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

Подршка прегледача

Подаци о подршци за прегледач су од компаније Цаниусе, која садржи више детаља. Број указује на то да прегледач подржава функцију у тој верзији и новијој.

Десктоп

Хром Фирефок ИЕ Ивица Сафари
36 3 * Не 13 9

Мобиле / Таблет

Андроид Цхроме Андроид Фирефок Андроид иОС Сафари
88 85 81 9.0-9.2

Постоји велика разлика између препорученог у спецификацијама и онога што прегледачи заправо раде. На пример, ако се придржавамо спецификација, сваки неквалификовани бирач треба да циља сваки елемент који је могуће уређивати, али онемогућити ( disabledили readonly) или једноставно не може уређивати корисник :read-only.

Хром Фирефок Сафари Опера
input : читање-писање : читање-писање : читање-писање : читање-писање
input(disabled) : читање-писање : читање-писање : читање-писање : читање-писање
input(readonly) :само за читање :само за читање :само за читање :само за читање
(contenteditable) - : читање-писање - :само за читање
* - :само за читање - :само за читање

У међувремену, чини се да то чини само Фирефок, а очигледно ни превише добро јер disabledунос сматра као :read-write. Што се тиче Опере која не означава contenteditableелемент као :read-write, то је једноставно зато што не подржава contenteditable.