Web/CSS/ read-only

From Get docs


The :read-only CSS pseudo-class represents an element (such as input or textarea) that is not editable by the user.

input:read-only, textarea:read-only {
  background-color: #ccc;
}

p:read-only {
  background-color: #ccc;
}

Syntax

:read-only

Examples

Confirming form information in read-only/read-write controls

One use of readonly form controls is to allow the user to check and verify information that they may have entered in an earlier form (for example, shipping details), while still being able to submit the information along with the rest of the form. We do just this in the example below.

The :read-only pseudo-class is used to remove all the styling that makes the inputs look like clickable fields, making them look more like read-only paragraphs.The :read-write pseudo-class on the other hand is used to provide some nicer styling to the editable <textarea>.

input:-moz-read-only, textarea:-moz-read-only,
input:read-only, textarea:read-only {
  border: 0;
  box-shadow: none;
  background-color: white;
}

textarea:-moz-read-write,
textarea:read-write {
  box-shadow: inset 1px 1px 3px #ccc;
  border-radius: 5px;
}

You can find the full source code at readonly-confirmation.html; this renders like so:

Styling read-only non-form controls

This selector doesn't just select <input>/<textarea> elements — it will select any element that cannot be edited by the user.

<p contenteditable>This paragraph is editable; it is read-write.</p>

<p>This paragraph is not editable; it is read-only.</p>
p {
  font-size: 150%;
  padding: 5px;
  border-radius: 5px;
}

p:read-only {
  background-color: red;
  color: white;
}

p:read-write {
  background-color: lime;
}

Specifications

Specification Status Comment
HTML Living StandardThe definition of ':read-only' in that specification. Living Standard No change.
HTML5The definition of ':read-only' in that specification. Recommendation Defines the semantics regarding HTML and constraint validation.
Selectors Level 4The definition of ':read-only' in that specification. Working Draft Defines the pseudo-class, but not the associated semantics.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
:read-only Chrome

Full support 1

Edge

Full support 13

Firefox Full support 78


Full support 78


Full support 1.5

Prefixed'

Prefixed' Implemented with the vendor prefix: -moz-

IE

No support No

Opera

Full support 9

Safari

Full support 4

WebView Android

Full support ≤37

Chrome Android

Full support 18

Firefox Android Full support 4

Prefixed'

Full support 4

Prefixed'

Prefixed' Implemented with the vendor prefix: -moz-

Opera Android

Full support 10.1

Safari iOS

Full support 3.2

Samsung Internet Android

Full support 1.0

Legend

Full support  
Full support
No support  
No support
Requires a vendor prefix or different name for use.'
Requires a vendor prefix or different name for use.


See also