By 
plarfox
				
					
						Здравствуйте, помогите разобраться, делаем кастомные радиобаттоны, скрываем те что по умолчанию, с помощью span рисуем новые (псевдокласс :before для состояния отмеченности), стилизуем поведение в разных состояниях, :hover  :focus  :checked
	   Проблема в том что после задания стилей  для :focus (которые передают обводку со скрытых радиобаттонов) эта обводка отображается не только после использования tab и нажатий с клавиатуры, но и при нажатии мышкой. В общем цель в том что-бы обводка от фокуса появлялась только при манипуляции с клавиатуры, а при нажатии с мыши и разных состояний (:hover :checked) ее не было , для них свои стили
	P. S. Изучаю пока-что HTML и CSS, надеюсь это можно сделать без Javascript
     <ul>
      <li class="filter-option">
        <label><input class="visually-hidden filter-input-radio" type="radio" value="one" name="radio">
         <span class="radio-indicator"></span>
          Радиокнопка 1
        </label>
      </li>
      <li class="filter-option">
        <label><input class="visually-hidden filter-input-radio" type="radio" value="two" name="radio">
          <span class="radio-indicator"></span>
          Радиокнопка 2
        </label>
        </li>
             <li class="filter-option">
        <label><input class="visually-hidden filter-input-radio" type="radio" value="three" name="radio">
          <span class="radio-indicator"></span>
          Радиокнопка 3
        </label>
        </li>
    </ul>
	 
.visually-hidden input[type="radio"] {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  clip: rect(0 0 0 0);
}
.filter-option {
  position: relative;
  margin-bottom: 25px;
  padding-left: 38px;
}
.filter-option label {
  cursor: pointer;
}
.radio-indicator {
  content: "";
  position: absolute;
  top: -3px;
  left: 0;
  width: 21px;
  height: 21px;
  border: 4px solid #4d4d4d;
  border-radius: 50%;
  opacity: 0.5;
}
.filter-input-radio:checked + .radio-indicator::before {
  content: "";
  position: absolute;
  top: 7px;
  left: 7px;
  width: 8px;
  height: 8px;
  background-color: #4d4d4d;
  border-radius: 50%;
  opacity: 0.5;
}
.filter-option:hover,
.filter-option:hover .radio-indicator,
.filter-option:hover .radio-indicator::before {
  color: #000000;
  opacity: 1;
}
.filter-input-radio:focus + .radio-indicator {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  opacity: 1;
}
.filter-input-radio:focus + .radio-indicator::before {
  opacity: 1;
}
	 
					
				
			 
		
Question
FotGOD
Здравствуйте. Верстаю макет, но чтото не так. Подобные верстал раньше, все было хорошо, даже сверяю, все чуть ли не под копирку написал. Но в Этом коде почему-то строки в меню слиплись и не могу их раскинуть. на рисунке как должно быть, и как выходит. Что не так делаю?
Html:
Css:
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.