Перейти к содержимому

Псевдокласс :optional в CSS

Селектор :optional выбирает необязательные элементы.

Элементы формы являются необязательными, если у них не указан атрибут required. К элементам формы, которые можно выбрать с помощью :optional, относятся <input>, <select> и <textarea> без атрибута required.

Селектор :optional можно сочетать с другими селекторами (например, :hover) и псевдоэлементами (например, ::after).

Версия

CSS Basic User Interface Module

CSS2 Universal Selector

Синтаксис

Синтаксис CSS :optional

css
:optional {
  css declarations;
}

Пример использования селектора :optional:

Пример кода CSS :optional

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .example {
        margin: 40px auto;
        max-width: 400px;
      }
      label,
      button {
        display: block;
        width: 100%;
        margin-bottom: 1.5em;
      }
      input,
      select,
      button {
        padding: .4em 1em;
      }
      input,
      select {
        border: 1px solid #666666;
      }
      input:optional,
      select:optional {
        background-color: #eeeeee;
        color: #666666;
        opacity: 0.5;
        transition: .3s;
      }
      input:optional:hover,
      select:optional:hover {
        opacity: 1;
      }
      input:required,
      textarea:required {
        border-bottom: 3px solid #1c87c9;
      }
    </style>
  </head>
  <body>
    <h2>:optional selector example</h2>
    <div class="example">
      <form action="#">
        <label>
          <input type="name" required />Name *
        </label>
        <label>
          <input type="email" required />Email *
        </label>
        <label>
          <input type="phone" />Phone (optional)
        </label>
        <label>
          <input type="url" />Address (optional)
        </label>
      </form>
    </div>
  </body>
</html>

В приведённом примере используются оба псевдокласс-селектора: :optional и :required.

Практика

Какова функция селекторов optional в CSS?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.