MDN wants to learn about developers like you:

The :optional CSS pseudo-class selects any <input> or <textarea> element that does not have the required attribute set on it. This allows forms to easily indicate optional fields, and to style them accordingly.

/* Selects <input> elements, but only if they are */
/* optional, i.e. have not got required set on them */
input:optional {
  border: 1px dashed black;

To provide styling for required form fields, the :required pseudo-class may be used.




See :invalid for examples.


Specification Status Comment
HTML Living Standard
The definition of ':optional' in that specification.
Living Standard No change.
The definition of ':optional' in that specification.
Recommendation Defines the semantic regarding HTML and constraint validation.
Selectors Level 4
The definition of ':optional' in that specification.
Working Draft No change.
CSS Basic User Interface Module Level 3
The definition of ':optional' in that specification.
Candidate Recommendation Defines the pseudo-class, but not the associated semantic.

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support 10.0 (Yes) 4.0 (2) 10 10.0 5.0
Feature Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 4.4 (Yes) 4.0 (2) No support 10.0 5.0

See also

Document Tags and Contributors

 Last updated by: mfluehr,