- Теория
- Теория
Испытание: 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
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.