Не меняется цвет лэйбла(радиобаттон) при :checked!

110
26 августа 2019, 16:50

Делаю слайдер с помощью CSS: радиобаттоны + к ним лейблы(чтобы, через них стилизовать). Все работает - слайды переключаются при :checked. Но все лейблы выглядят одинаково. А надо чтобы при :checked так же менялся цвет лейбла. Не могу это реализовать! Прошу помощи! Код:

input[type="radio"] { 
    display: none; 
} 
 
label { 
    background: #9A6400; 
    width: 20px; 
    padding: 0px 10px 0px 10px; 
    margin-left: 80px; 
    transition: .5s; 
    border-radius: 100%; 
} 
 
#btn1:checked ~ #slides .articles article:nth-child(2) { 
    margin-left: 100%; 
    transition: 0.5s ease; 
} 
 
#btn1:checked ~ #slides .articles article:nth-child(3) { 
    margin-left: 200%; 
    transition: 0.5s ease; 
} 
 
#btn2:checked ~ #slides .articles article:nth-child(3) { 
    margin-left: 100%; 
    transition: 0.5s ease; 
}  
 
#btn2:checked ~ #slides .articles article:nth-child(1) { 
    margin-left: -100%; 
    transition: 0.5s ease; 
} 
 
#btn3:checked ~ #slides .articles article:nth-child(1) { 
    margin-left: -200%; 
    transition: 0.5s ease; 
} 
 
#btn3:checked ~ #slides .articles article:nth-child(2) { 
    margin-left: -100%; 
    transition: 0.5s ease; 
}
<input type="radio" name="button" id="btn1" checked> 
              <input type="radio" name="button" id="btn2"> 
              <input type="radio" name="button" id="btn3"> 
               
              <label for="btn1"></label> 
              <label for="btn2"></label> 
              <label for="btn3"></label>

Answer 1

input[type="radio"] { 
    display: none; 
} 
 
#btn1:checked ~ label[for="btn1"] { 
background-color: red; 
} 
 
#btn2:checked ~ label[for="btn2"] { 
background-color: red; 
} 
 
#btn3:checked ~ label[for="btn3"] { 
background-color: red; 
} 
 
label { 
    background: #9A6400; 
    width: 20px; 
    padding: 0px 10px 0px 10px; 
    margin-left: 80px; 
    transition: .5s; 
    border-radius: 100%; 
} 
 
#btn1:checked ~ #slides .articles article:nth-child(2) { 
    margin-left: 100%; 
    transition: 0.5s ease; 
} 
 
#btn1:checked ~ #slides .articles article:nth-child(3) { 
    margin-left: 200%; 
    transition: 0.5s ease; 
} 
 
#btn2:checked ~ #slides .articles article:nth-child(3) { 
    margin-left: 100%; 
    transition: 0.5s ease; 
}  
 
#btn2:checked ~ #slides .articles article:nth-child(1) { 
    margin-left: -100%; 
    transition: 0.5s ease; 
} 
 
#btn3:checked ~ #slides .articles article:nth-child(1) { 
    margin-left: -200%; 
    transition: 0.5s ease; 
} 
 
#btn3:checked ~ #slides .articles article:nth-child(2) { 
    margin-left: -100%; 
    transition: 0.5s ease; 
}
<input type="radio" name="button" id="btn1" checked> 
              <input type="radio" name="button" id="btn2"> 
              <input type="radio" name="button" id="btn3"> 
               
              <label for="btn1"></label> 
              <label for="btn2"></label> 
              <label for="btn3"></label>

READ ALSO
Как добавить и удалить блок div?

Как добавить и удалить блок div?

Форма, в которой есть div с id="field", где addElement() добавляет элементы в div с id='content'Мне нужно задействовать кнопки "Удалить" div c id="field" и "Добавить" такой...

153
Редирект на домен при выборе города

Редирект на домен при выборе города

Есть такая задача: три домена, клоны, разница в базе товаров, витрины разные (особенность обмена с 1С)Необходимо сделать так, чтобы при первом...

142
Передача base64 строки с сервера на клиент

Передача base64 строки с сервера на клиент

Есть приложение mvcНа странице есть <input id="fileLoader" type="file" />

140