18/18 Селекторы. часть3. 97% Где ошибка ? =(


#1
body {
    width: 550px;
}

form {
    width: 400px;
    margin: 0 auto;
    padding: 20px;
    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;
    width: 50%;
    margin-right: -4px;
}

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

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

input:not(:checked)+label {
    vertical-align: middle;
    color: #7f8c8d;
}

input[type="checkbox"]+label::before, 
input[type="radio"]::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 #bdc3c7;
}

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

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

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

input[type="radio"]:disabled+label::before, input[type="checkbox"]:disabled+label::before {
    box-shadow: 0 0 0 3px #ecf0f1;
}

input[type="checkbox"]:disabled+label,
input[type="radio"]:disabled+label
{
    color: #ecf0f1;
}

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

input:required
{
    border-color: #e74c3c;
}

input:disabled {
    color: #bdc3c7;
    background: #f5f5f5;
    border-color: #ecf0f1;
}

input:invalid {
    color: #c0392b;
    background: #f2a097;
    border-color: #e74c3c;
}

#2

Вкладку “Различия” посмотрите.


#3

у меня значки чекбоксов и радио пропадают и я не пойму как их возвратить


#4

Вот этим свойством прятал, как делали те у кого 100%. хотя я так и не понял зачем это если этот Input исчезает

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

#5

Мне кажется проблемы тут:


#6

спасибо ) попозже гляну )


#7

тут вы верно заметили. я метку забыл =(
а вот с первым нет не помогло

никак не поменяло результат


#8

Вообще у меня checked - элементы выглядят как невыбранные. и никак не хотят приобретать зелёный цвет, хотя я прописываю им :

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

но цвет меняет только текст. а сами флаги у меня серые =/
хоть в конец этот код ставлю хоть в середине где он по умолчанию


#9

#10

Как вариант можно пользоваться поиском в в атрибуте “for” . Напр, label[for$=“1”] { }; Я в своем варианте только поиск и использовал для стилизации всех label 's


#11

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

Первый селектор вы указали правильно, второй ни к чему. В самом описании испытания разъяснялось, что поля форм тяжело поддаются стилизации, потому намного проще скрывать их задав свойству display значение none, что вы и сделали:

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

Если вы скрыли поля форм, то смысла применять к ним стили нету, пока для них не будет изменено значение свойства display отличительное от none (в противном случае все стили, как и сами поля форм, будут скрыты от глаз наших). Потому селекторы типа input:checked и input[type=“radio”]::before тут лишние.

Цель задания - применить стили не к скрытым полям форм с типом checkbox и radio, а к тегам label, которые привязанные к данным полям по “id”, и к псевдоэлементам ::before, которые находятся перед label и собой заменяют скрытые radio- и checkbox-кнопки.