:disabled
is a pseudo-class selector used to select and style user interface elements (usually form elements) that are disabled.
That is, it matches elements such as buttons (<button>
), select menus (<select>
), input types (<input>
), and textareas (<textarea>
), for example, that have the disabled
attribute set and thus cannot be interacted with by the user.
<input type="submit" disabled> <!-- disabled attribute added as a boolean value --> <!-- OR --> <input type="submit" disabled="disabled"> <!-- disabled attribute added with a "disabled" value -->
The disabled
attribute is an HTML5 attribute that can be set to the elements: <button>
, <input>
, <textarea>
, <optgroup>
, <option>
, and <fieldset>
. Such elements, when disabled, don’t accept user interactions such as clicks, text input, or focus
.
Trivia & Notes
Disabled elements also have a corresponding enabled state. The enabled state can be styled using the :enabled
pseudo-class.
CSS properties that might affect a user’s ability to interact with a given user interface element do not affect whether it matches :enabled
or :disabled
; e.g., the display
and visibility
properties have no effect on the enabled/disabled state of an element, even if they are set to hide the element.
Just like other pseudo-class selectors, the :disabled
selector can be chained with other selectors such as :hover
, for example, to provide hover styles for disabled elements. See the examples and live demo sections below for examples.
Examples
/* styles all disabled elements on a page */ :disabled { background-color: #aaa; color: grey; border: 1px solid grey; } /* styles disabled submit inputs on a page */ input[type="submit"]:disabled { background: #eee url(path/to/disabled.png) repeat-x; border: 1px solid grey; }
The following example chains pseudo-selectors :disabled
and :hover
to style the cursor when a disabled button is hovered, showing a “Not Allowed” sign.
button:disabled:hover { cursor: not-allowed; }
Live Demo
View this demo on the Codrops PlaygroundBrowser Support
The :disabled
pseudo-class is supported in Chrome, Firefox, safari, Opera 9+, Internet Explorer 9+, and on Android and iOS.