:disabled
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The:disabledCSSpseudo-class represents any disabled element. An element is disabled if it can't be activated (selected, clicked on, typed into, etc.) or accept focus. The element also has an enabled state, in which it can be activated or accept focus.
In this article
Try it
label { display: block; margin-top: 1em;}*:disabled { background-color: dimgrey; color: linen; opacity: 1;}<form> <label for="name">Name:</label> <input name="name" type="text" /> <label for="emp">Employed:</label> <select name="emp" disabled> <option>No</option> <option>Yes</option> </select> <label for="empDate">Employment Date:</label> <input name="empDate" type="date" disabled /> <label for="resume">Resume:</label> <input name="resume" type="file" /></form>Syntax
css
:disabled { /* ... */}Examples
This example shows a basic shipping form. It uses theJavaScriptchange event to let the user enable/disable the billing fields.
HTML
html
<form action="#"> <fieldset> <legend>Shipping address</legend> <input type="text" placeholder="Name" /> <input type="text" placeholder="Address" /> <input type="text" placeholder="Zip Code" /> </fieldset> <br /> <fieldset> <legend>Billing address</legend> <label for="billing-checkbox">Same as shipping address:</label> <input type="checkbox" checked /> <br /> <input type="text" placeholder="Name" disabled /> <input type="text" placeholder="Address" disabled /> <input type="text" placeholder="Zip Code" disabled /> </fieldset></form>CSS
css
input[type="text"]:disabled { background: #cccccc;}JavaScript
Toggle the disabled input fields when the checkbox is clicked
js
const checkbox = document.querySelector("#billing-checkbox");const billingItems = document.querySelectorAll('#billing input[type="text"]');checkbox.addEventListener("change", () => { billingItems.forEach((item) => { item.disabled = !item.disabled; });});Result
Check/un-check the checkbox to change the styling on the billing fields.
Specifications
| Specification |
|---|
| HTML> # selector-disabled> |
| Selectors Level 4> # disabled-pseudo> |