Как сделать пользовательский радиовход с меткой

#html #css

#HTML #CSS

Вопрос:

Я пытаюсь выполнить пользовательский ввод радио для пола, пользователь может выбирать только между «женщиной» и «мужчиной», но я понял, что не вижу, чтобы проверенное радио отображалось, когда я нажимаю на него, кажется, не работает (должно быть выбрано), когда я нажимаю на него, я попытался выяснить, что заставляет радио не проверяться, но я не могу это выяснить. Раньше он работал с входами флажков.Кто-нибудь может мне помочь, пожалуйста, я, вероятно, что-то упускаю.

 .profile__input .input__radio {  display: inline-block; }  .blu-radio {  width: auto;  margin: 16px 16px 16px 0;  display: inline-flex;  position: relative; }  .blu-radio:not(.b-disabled) {  cursor: pointer; }  .blu-radio .blu-radio-container {  width: 20px;  min-width: 20px;  height: 20px;  position: relative;  border: 2px solid transparent;  border-radius: 50%;  transition: .4s cubic-bezier(0.25, 0.8, 0.25, 1);  border-color: #e0e0e0; }  .blu-radio .blu-radio-container:before, .blu-radio .blu-radio-container:after {  position: absolute;  transition: .4s cubic-bezier(0.55, 0, 0.55, 0.2);  content: " "; }  .blu-radio .blu-radio-container:before {  width: 48px;  height: 48px;  top: 50%;  left: 50%;  z-index: 11;  border-radius: 50%;  transform: translate(-50%, -50%); }  .blu-radio .blu-radio-container input {  position: absolute;  left: -999em; }  .blu-radio .blu-radio-container:after {  position: absolute;  top: 3px;  right: 3px;  bottom: 3px;  left: 3px;  border-radius: 50%;  opacity: 0;  transform: scale3D(0.38, 0.38, 1);  content: " "; }  .blu-radio .blu-radio-label {  padding-left: 8px;  position: relative;  line-height: 20px; }  .blu-radio:not(.b-disabled) .blu-radio-label {  cursor: pointer;  color: rgba(0, 0, 0, 0.6); } 
 lt;div class="profile__input"gt;  lt;div class="input__title tx-gray"gt;Genrelt;/divgt;  lt;div class="input__radio"gt;  lt;div class="blu-radio"gt;  lt;div class="blu-radio-container"gt;  lt;input type="radio" id="blu-radio-3as6fzz1" name='gender'gt;  lt;/divgt;  lt;label for="blu-radio-3as6fzz1" class="blu-radio-label"gt;Hommelt;/labelgt;  lt;/divgt;  lt;/divgt;  lt;div class="input__radio"gt;  lt;div class="blu-radio"gt;  lt;div class="blu-radio-container"gt;  lt;input type="radio" id="blu-radio-v0okyps4r" name='gender'gt;  lt;/divgt;  lt;label for="blu-radio-v0okyps4r" class="blu-radio-label"gt;Femmelt;/labelgt;  lt;/divgt;  lt;/divgt; lt;/divgt; 

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

1. В вашем коде нет ничего, проверяющего ввод:проверено

Ответ №1:

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

Я поместил поддельный радиоконтейнер в этикетку, поэтому, когда вы нажмете на него, он проверит настоящую радиокнопку, которая скрыта.

 .profile__input .input__radio {  display: inline-block; }  .blu-radio {  width: auto;  margin: 16px 16px 16px 0;  display: inline-flex;  position: relative; }  .blu-radio:not(.b-disabled) {  cursor: pointer; }  .blu-radio .blu-radio-container {  width: 20px;  min-width: 20px;  height: 20px;  position: relative;  border: 2px solid transparent;  border-radius: 50%;  transition: .4s cubic-bezier(0.25, 0.8, 0.25, 1);  border-color: #e0e0e0;  display: inline-block;  position: relative;  top: 6px; }  .blu-radio .blu-radio-container:before, .blu-radio .blu-radio-container:after {  position: absolute;  transition: .4s cubic-bezier(0.55, 0, 0.55, 0.2);  content: " "; }  .blu-radio .blu-radio-container:before {  width: 48px;  height: 48px;  top: 50%;  left: 50%;  z-index: 11;  border-radius: 50%;  transform: translate(-50%, -50%); }  .blu-radio input {  display: none; }  .blu-radio .blu-radio-container:after {  position: absolute;  top: 3px;  right: 3px;  bottom: 3px;  left: 3px;  border-radius: 50%;  opacity: 0;  transform: scale3D(0.38, 0.38, 1);  content: " "; }  .blu-radio .blu-radio-label {  padding-left: 8px;  position: relative;  line-height: 20px; }  .blu-radio input:checked   .blu-radio-label .blu-radio-container {  background: red; }  .blu-radio:not(.b-disabled) .blu-radio-label {  cursor: pointer;  color: rgba(0, 0, 0, 0.6); } 
 lt;div class="profile__input"gt;  lt;div class="input__title tx-gray"gt;Genrelt;/divgt;  lt;div class="input__radio"gt;  lt;div class="blu-radio"gt;  lt;input type="radio" id="blu-radio-3as6fzz1" name='gender'gt;    lt;label for="blu-radio-3as6fzz1" class="blu-radio-label"gt;  lt;span class="blu-radio-container"gt;lt;/spangt; Homme  lt;/labelgt;  lt;/divgt;  lt;/divgt;  lt;div class="input__radio"gt;  lt;div class="blu-radio"gt;  lt;input type="radio" id="blu-radio-v0okyps4r" name='gender'gt;    lt;label for="blu-radio-v0okyps4r" class="blu-radio-label"gt;  lt;span class="blu-radio-container"gt;lt;/spangt; Femme  lt;/labelgt;  lt;/divgt;  lt;/divgt; lt;/divgt; 

Ответ №2:

один из основных…

 * { font-size : 20px; }  label gt; input[type="radio"] { display : none; } label gt; input[type="radio"]   span {  --diameter : 1.4em;  display : inline-block;  height : var(--diameter);  line-height : var(--diameter);  cursor : pointer;   width : 6.2em;   position : relative;   box-sizing : border-box;  padding-left : calc(var(--diameter)   .3em);  color : #7d7d7d;  } label gt; input[type="radio"]:checked   span {   color : black;  } label gt; input[type="radio"]   span:before {   box-sizing : border-box;  width : var(--diameter);  height : var(--diameter);  border : 1px solid #7d7d7d;  border-radius : 50%;  position : absolute;  top : 0;  left : 0;  content : ' ';  } label gt; input[type="radio"]:checked   span::after {   box-sizing : border-box;  position : absolute;  top : .1em;  left : .1em;  content : ' ';  width : calc(var(--diameter) - .2em);  height : calc(var(--diameter) - .2em);  border-radius : 50%;  background-color : #eb1641;  } 
 lt;labelgt;  lt;input type="radio" name="gender"gt;  lt;spangt;Hommelt;/spangt; lt;/labelgt; lt;labelgt;  lt;input type="radio" name="gender"gt;  lt;spangt;Femmelt;/spangt; lt;/labelgt;