• Теория
  • Теория

Испытание: UI-кит для формы

В этом задании вы создадите простой набор стилей для полей форм, или User Interface кит.

Ваша задача — подобрать недостающие селекторы, чтобы этот интерфейс выглядел так, как в образце.

С появлением новых селекторов, стало намного проще стилизовать такие элементы форм, как радиокнопки и чекбоксы.

Сами по себе поля форм стилизуются очень тяжело. Но поля можно спрятать, а их состояние передавать в соседние label, задавая подписям разные фоны или другие стили в зависимости от состояния полей. То есть внешний вид поля рисуется внутри label, иногда с помощью псевдоэлементов.

Вот пример набора селекторов для стилизации радиокнопки:

input[type=radio] + label {...}
input[type=radio]:checked + label {...}
input[type=radio]:disabled + label {...}

Подсказки:

  • в одном селекторе может группироваться несколько через запятую;
  • при стилизации в некоторых элементах были использованы псевдоэлементы.

Решение

Решение испытания будет доступно через несколько минут. Используйте его, если возникнут сложности. А пока попытайтесь пройти испытание самостоятельно.

body {
  width: 550px;
}

form {
  margin: 0 auto;
  padding: 20px;
  width: 400px;
  border-radius: 10px;
  background-color: #ffffff;
  box-shadow: 0 0 10px #cccccc;
}

fieldset {
  padding: 10px;
  border: 1px solid #34495e;
  border-radius: 5px;
}

fieldset legend {
  color: #34495e;
}

.half-width {
  display: inline-block;
  margin-right: -4px;
  width: 50%;
}

label {
  display: block;
  margin-top: 10px;
  margin-bottom: 5px;
}

input[type="radio"],
input[type="checkbox"] {
  display: none;
}

input[type="radio"] + label,
input[type="checkbox"] + label  {
  color: #333333;
  vertical-align: middle;
}

input[type="radio"] + label::before,
input[type="checkbox"] + label::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 8px;
  vertical-align: middle;
  border: 3px solid #ffffff;
  box-shadow: 0 0 0 3px #a0a0a0;
}

input[type="radio"] + label::before {
  border-radius: 50%;
}

input:checked + label::before {
  background-color: #1abc9c;
  box-shadow: 0 0 0 3px #1abc9c;
}

input:checked + label {
  color: #1abc9c;
}

input:disabled + label::before {
  box-shadow: 0 0 0 3px #cecece;
}

input:disabled + label {
  color: #cecece;
}

input[type="text"] {
  width: 95%;
  height: 24px;
  margin-bottom: 10px;
  padding: 2px 5px;
  color: #000000;
  border: 2px solid #bdc3c7;
  border-radius: 5px;
  vertical-align: middle;
}

input[type="text"]:required {
  border-color: #e74c3c;
}

input[type="text"]:disabled {
  color: #bdc3c7;
  background-color: #f5f5f5;
  border-color: #ecf0f1;
}

input[type="text"]:invalid {
  color: #c0392b;
  background-color: #f2a097;
  border-color: #e74c3c;
}
Минимальный вид табов
  • index.html
HTML
HTML

Вы перешли на другую страницу

Кликните внутри мини-браузера, чтобы поставить фокус в это окно.

100%
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Селекторы. Тонкости» тренажёра «Продвинутые селекторы атрибутов и состояний» можно после регистрации и оформления подписки.