Страницы

Поиск по вопросам

четверг, 12 декабря 2019 г.

Как стилизовать радиокнопки согласно дизайну?

#javascript #html #jquery #css #css3


Есть переключатель да-нет, который хочу стилизовать согласно дизайну


но пока не получается, вот наработки в фидле


$('input').styler();
div {
  background-color: #964939;
  color: white;
}
.jq-radio {
  width: 28px;
  height: 12px;
  font-size: 16px;
  font-weight: 700;
  border: 0;
  border-bottom: 3px dotted white;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
.jq-radio~span {
  position: absolute;
  top: -8px;
  left: 6px;
}
.jq-radio.checked {
  width: 64px;
  height: 44px;
  border: 2px solid white;
  border-radius: 50%;
}
.jq-radio.checked~span {
  position: absolute;
  top: -4px;
  left: 22px;
}
input[type="submit"] {
  width: 204px;
  height: 44px;
  background-color: #ffd900;
  color: #231f20;
  font-size: 16px;
  font-weight: 700;
  padding: 0;
}
.jq-radio .jq-radio__div {
  display: none;
}



Да Нет


Ответы

Ответ 1



Вот на css: /* Базовые стили */ *, *:before, *:after { box-sizing: border-box; } body { background: #964939; } /* Cкрываем input[type="radio"] */ .radio { display: none; } /* Стили для кнопок */ .btn { display: inline-block; vertical-align: middle; width: 80px; height: 34px; text-align: center; padding: .5rem 1rem; color: #fff; font-family: sans-serif; cursor: pointer; position: relative; } /* dotted подчеркивание */ .btn:after { content: '....'; position: absolute; bottom: -3px; left: 0; right: 0; transition: all .34s ease-in-out; } /* Обертка для кнопок */ .list { position: relative; display: inline-block; } /* Перемещающийся блок */ .list:after { content: ''; position: absolute; top: 0; left: 0; right: 0; width: 80px; height: 38px; border: 2px solid #fff; border-radius: 25px; transition: all .34s ease-in-out; } /* "Да" */ #on:checked~.list:after { transform: translateX(0%); } #on:checked~.list .btn_on:after { opacity: 0; } /* "Нет" */ #off:checked~.list:after { transform: translateX(100%); } #off:checked~.list .btn_off:after { opacity: 0; }


Ответ 2



Както так? div{ background-color: #964939; color: white; padding: 5px; } .radio{ display: none; } .radio + label{ padding: 10px; margin-right: 2px; margin-left: 2px; border: none; } .radio + label > span{ border-bottom: 5px dotted; padding-left: 3px; /*add more dots*/ padding-right: 3px; padding-bottom: 2px; } .radio:checked + label{ /*add round border*/ border: 2px solid white; border-radius: 20px; margin-right: 0px; margin-left: 0px; } .radio:checked + label > span{ border-bottom: none ; /*remove dots*/ }



Комментариев нет:

Отправить комментарий