:read-write

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

input:read-write, textarea:read-write {
  background-color: #bbf;
}

p:read-write {
  background-color: #bbf;
}

Syntax

:read-write

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-write non-form controls

This selector doesn't just select <input>/<textarea> elements — it will select any element that can be edited by the user, such as a <p> element with contenteditable set on it.

<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: 200%;
  padding: 5px;
  border-radius: 3px;
}

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

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

Specifications

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

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
:read-writeChrome Full support 1Edge Full support 13Firefox Full support 1.5
Prefixed Notes
Full support 1.5
Prefixed Notes
Prefixed Implemented with the vendor prefix: -moz-
Notes See bug 312971 for unprefixed status.
IE No support NoOpera Full support 9Safari Full support 4WebView Android Full support ≤37Chrome Android Full support 18Firefox Android Full support 4
Prefixed Notes
Full support 4
Prefixed Notes
Prefixed Implemented with the vendor prefix: -moz-
Notes See bug 312971 for unprefixed status.
Opera Android Full support 10.1Safari iOS Full support 3.2Samsung Internet Android Full support 1.0
Matches editable elements that are neither <input> elements nor <textarea> elementsChrome No support NoEdge No support NoFirefox Full support 1.5IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support 4Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No

Legend

Full support  
Full support
No support  
No support
See implementation notes.
See implementation notes.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

See also