:enabled is a pseudo-class selector used to select and style user interface elements (usually form elements) that are enabled.
That is, it matches elements such as buttons (<button>), select menus (<select>), input types (<input>), and textareas (<textarea>), for example, that can accept a user interaction such as a click, text input, or focus.
Trivia & Notes
Enabled elements also have a corresponding disabled state. The disabled state can be styled using the :disabled pseudo-class. :enable allows us to select only the enabled user interface elements, thus filtering out the disabled ones.
CSS properties that might affect a user’s ability to interact with a given user interface element do not affect whether it matches :disabled or :enabled; 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 :enabled selector can be chained with other selectors such as :hover, for example.
Examples
/* styles all enabled elements on a page */
:enabled {
background-color: white;
color: green;
border: 1px solid black;
}
/* styles enabled submit inputs on a page */
input[type="submit"]:enabled {
border: 1px solid green;
}
The following example chains pseudo-selectors :enabled and :hover.
button:enabled:hover {
background-color: green;
color: white;
}
Live Demo
The following demo styles enabled form elements using :enabled. You can also see that disabled elements are not selected and styled in this case, and are styled using :disabled instead. Enabled elements get green text and the textarea’s background color should turn green on hover if your browser supports :enabled.
Browser Support
The :enabled pseudo-class is supported in Chrome, Firefox, safari, Opera 9+, Internet Explorer 9+, and on Android and iOS.