Клавиша / esc

:optional

Показывает элементы формы, которые не обязательны для заполнения.

Время чтения: меньше 5 мин

Кратко

Скопировано

Псевдокласс :optional выбирает элементы формы, которые не являются обязательными для заполнения.

Он применяется к:

Если у элемента нет атрибута required, он считается необязательным и попадает под :optional.

Пример

Скопировано
        
          
          input:optional {  border-color: #2e9aff;}
          input:optional {
  border-color: #2e9aff;
}

        
        
          
        
      
        
          
          <form>  <label>    Имя вашего котика:    <input type="text" name="cat-name">  </label>  <label>    Email:    <input type="email" name="email" required>  </label></form>
          <form>
  <label>
    Имя вашего котика:
    <input type="text" name="cat-name">
  </label>

  <label>
    Email:
    <input type="email" name="email" required>
  </label>
</form>

        
        
          
        
      
Открыть демо в новой вкладке

Как пишется

Скопировано

Псевдокласс применяется к полям формы, у которых не указан атрибут required:

        
          
          input:optional {  background-color: #fff8f1;}
          input:optional {
  background-color: #fff8f1;
}

        
        
          
        
      

Как понять

Скопировано

Браузер автоматически определяет, какие поля формы обязательны для заполнения.

  • Если у элемента есть атрибут required, он считается обязательным
  • Если атрибута нет — поле считается необязательным и попадает под :optional

Это позволяет:

  • визуально отделять важные поля от второстепенных
  • улучшать UX форм
  • уменьшать когнитивную нагрузку пользователя

Подсказки

Скопировано

💡 Псевдокласс работает только с элементами формы, а не с любыми HTML-элементами.
💡 :optional удобно использовать для стилизации второстепенных полей — например, дополнительных данных профиля.
💡 Часто комбинируется с :required, чтобы явно разделить визуально важные и необязательные поля:

        
          
          input:required {  border-color: #2e9aff;}input:optional {  border-color: #d77d31;}
          input:required {
  border-color: #2e9aff;
}

input:optional {
  border-color: #d77d31;
}

        
        
          
        
      
Поддержка в браузерах:
  • Chrome 10, поддерживается
  • Edge 12, поддерживается
  • Firefox 4, поддерживается
  • Safari 5, поддерживается
О Baseline