2016-08-28 6 views
0

Я пытаюсь использовать переключатель типа ввода, и он не работает. Проблема в том, что входной тег находится внутри тега метки, и я не могу его изменить.ярлык входной тип радио

input{ 
 
    display:none; 
 
} 
 

 

 
label:before { 
 
    content: ""; 
 
    display: inline-block; 
 
    width: 16px; 
 
    height: 16px; 
 
    margin-right: 10px; 
 
    bottom: 1px; 
 
    background-color: #aaa; 
 
    box-shadow: inset 0px 2px 3px 0px rgba(0, 0, 0, .3), 0px 1px 0px 0px rgba(255, 255, 255, .8); 
 

 
} 
 
input[type=radio]:checked + label:before { 
 
    content: "\2022"; 
 
    color: #f3f3f3; 
 
    font-size: 30px; 
 
    text-align: center; 
 
    line-height: 18px; 
 
}
<label for="female"><input id="female" type="radio" name="gender" value="female">Female</label>

ответ

0

Вы должны иметь внутреннюю замену для вашего входа, потому что + только выбирает следующий элемент на том же уровне.

input{ 
 
    display:none; 
 
} 
 

 

 
span:before { 
 
    content: ""; 
 
    display: inline-block; 
 
    width: 16px; 
 
    height: 16px; 
 
    margin-right: 10px; 
 
    bottom: 1px; 
 
    background-color: #aaa; 
 
    box-shadow: inset 0px 2px 3px 0px rgba(0, 0, 0, .3), 0px 1px 0px 0px rgba(255, 255, 255, .8); 
 

 
} 
 
input[type=radio]:checked + span:before { 
 
    content: "\2022"; 
 
    color: #f3f3f3; 
 
    font-size: 30px; 
 
    text-align: center; 
 
    line-height: 18px; 
 
}
<label for="female"> 
 
    <input id="female" type="radio" name="gender" value="female"> 
 
    <span for="female"></span> 
 
    Female 
 
</label

+0

Есть в любом случае изменить CSS для работы с текущим кодом HTML ? Поскольку я не могу добавить тег span. :/ – Tony

+0

Хорошо. Я использовал JQuery для добавления тега span. Теперь он работает. Большое спасибо – Tony

0

Pls попытаться поставить метку после input:radio

<input id="female" type="radio" name="gender" value="female"> 
<label for="female"> Female.</label> 
+0

Спасибо. Я не могу поставить метку после ввода: радио, но проблема была решена. :) – Tony

1

.control{ 
 
    vertical-align: middle; 
 
    display: inline-block; 
 
} 
 
input{ 
 
    margin-right: 10px; 
 
} 
 
input:before { 
 
    content: ""; 
 
    display: inline-block; 
 
    width: 16px; 
 
    height: 16px; 
 
    margin-left: -1px; 
 
    background-color: #aaa; 
 
    box-shadow: inset 0px 2px 3px 0px rgba(0, 0, 0, .3), 0px 1px 0px 0px rgba(255, 255, 255, .8); 
 
} 
 

 
input[type=radio]:checked:before { 
 
    content: "\2022"; 
 
    color: #f3f3f3; 
 
    font-size: 30px; 
 
    text-align: center; 
 
    line-height: 18px; 
 
}
<input id="female" class="control" type="radio" name="gender" value="female"> 
 
<label for="female" class="control"> 
 
Female</label>

Смежные вопросы