Изменение стиля кнопок радио в jQuery mobile 1.4.0
В моем мобильном приложении jQuery есть следующие кнопки радио, и мне нужно оформить их как кнопку радио на изображении ниже. Я попробовал следующий CSS, но он не дал мне тот же результат, пожалуйста, помогите мне..
Html
<div data-role="page">
<div data-role="header" data-theme="b" style="height:63px;">
</div>
<div data-role="content">
<form>
<fieldset>
<input type="radio" id="Male" value=" Male" name="radio-group-1" />
<label for="Male" data-inline="true" style="background:transparent !important;">Male </label>
<input type="radio" id="Female" value=" Female" name="radio-group-1" />
<label for="Female" data-inline="true" style="background:transparent !important;" >Female </label>
</fieldset>
</form>
</div>
</div>
CSS
input[type="radio"] {
display: none;
}
.ui-btn.ui-radio-off:after, .ui-btn.ui-radio-on:after{
width: 25px;
height: 25px;
}
.ui-btn.ui-radio-off:after, .ui-btn.ui-radio-on:after{
margin-top: -18px;
margin-left: -38px;
}
.ui-btn.ui-radio-on:after{
width: 55px;
height: 55px;
background: green !important;
background-size:100px 24px;
}
Это то, что я получаю
1 ответ
Чтобы получить зеленый внутренний круг с прозрачным вокруг него и границей после этого, вам действительно нужно 2 круга. Это может быть достигнуто путем добавления элемента:before, а также элемента:after в CSS.
Вот ДЕМО
CSS делает всю кнопку высотой 56px и центрирует текст по вертикали, делая высоту строки одинаковой. Когда выключено, радио изображение 26x26 с серой рамкой. При включении:before css добавляет новый пустой круг 26x26 с рамкой, а:after css создает меньший зеленый круг в центре. ПРИМЕЧАНИЕ: вам может понадобиться настроить размеры и поля, чтобы получить желаемые результаты.
input[type="radio"] {
display: none;
}
.ui-radio label {
height:56px;
line-height: 56px;
padding-left: 50px;
}
.ui-radio .ui-btn.ui-radio-off:after {
background-image: none;
width: 26px;
height: 26px;
border: 2px solid #6E7983;
margin-top: -13px;
}
.ui-radio .ui-btn.ui-radio-on:after {
background-color: #86D51C;
width: 14px;
height: 14px;
margin-top: -6px;
margin-left: 10px;
border: 0;
}
.ui-radio .ui-btn.ui-radio-on:before {
content:"";
position: absolute;
display: block;
border: 2px solid #6E7983;
border-radius: 50%;
background-color: transparent;
width: 26px;
height: 26px;
margin-top: 14px;
margin-left: -39px;
}