Скрыть галочку с помощью css

Я хотел бы знать, можно ли скрыть проверочный переключатель с помощью css, используя:

  { display:none; }

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

Ответы

Ответ 1

Просто немного подсказки, если вы все еще хотите использовать всю встроенную поддержку браузера для радиостанций и флажков, например, перемещение между ними с помощью & uarr; и & darr;, установите css на position:fixed;opacity:0, это сохранит все функциональные возможности, но сохранит вход скрытым и не займет какое-либо место макета. Последние 3 часа я потратил на это, но он работает!

Ответ 2

Дополнительно к ответу Натана Ли

input[type="radio"]:checked{
    visibility:hidden;
}

- это опция для указания отмеченного переключателя

input[type="radio"][value="text"]:checked{
    visibility:hidden;
}

- это опция для указания отмеченного переключателя со значением, равным "text" ( "none" в вашем примере)

Дополнительная информация: https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors

Если значение не известно, некоторые jQuery могут сделать трюк: http://api.jquery.com/attribute-equals-selector/

Ответ 3

Попробуйте visibility:hidden; Это будет работать

Вот РАБОЧАЯ ДЕМО

HTML:

<input class="checked" type="radio" checked />

CSS:

input.checked[type="radio"]{visibility:hidden;}

Я надеюсь, что это то, что вы ищете.

Ответ 4

Если вы хотите скрыть флажок/радио много раз, это сделать пользовательский флажок/радио.

Если вы хотите сосредоточиться на метке для ввода, используйте непрозрачность: 0; позиция: абсолютная; ширина: 0; что делает ввод невидимым, не занимая места.

Если вы используете дисплей: нет; или видимость: скрытая; он будет иметь аналогичный эффект, но в настоящее время наиболее используемые браузеры (MSIE11, Edge, Chrome 60.0.3112.101, Firefox 55) не позволяют фокусировать элемент с помощью клавиатуры, что делает его менее доступным.

.opacity {
	position: absolute;
	opacity: 0;
	width: 0;		/* for internet explorer */
}

.visibility {
	visibility: hidden;
}

.nodisplay {
	display: none;
}

input[type=checkbox]+label {
	font-weight: normal;
}
input[type=checkbox]:checked+label {
	font-weight: bold;
}
input[type=checkbox]:focus+label {
	border: 1px dotted #000;
}
<p>
	<input type="button" value="Click this button and press tab to change focus">
</p>
<div>
   <input class="opacity" type="checkbox" id="checkbox1">
   <label for="checkbox1">Press space to (un)check</label>
</div>
<div>
   <input class="opacity" type="checkbox" id="checkbox2">
   <label for="checkbox2">Press space to (un)check</label>
</div>
<div>
   <input class="visibility" type="checkbox" id="checkbox3">
   <label for="checkbox3">Press space to (un)check</label>
</div>
<div>
   <input class="visibility" type="checkbox" id="checkbox4">
   <label for="checkbox4">Press space to (un)check</label>
</div>
<div>
   <input class="nodisplay" type="checkbox" id="checkbox5">
   <label for="checkbox5">Press space to (un)check</label>
</div>
<div>
   <input class="nodisplay" type="checkbox" id="checkbox6">
   <label for="checkbox6">Press space to (un)check</label>
</div>

Ответ 5

Попробуйте использовать селектор :checked:

input[type="radio"]:checked {
    display: none;
}

Демо: http://jsfiddle.net/RkzG5/

Ответ 6

Если вы использовали {display: none;}, и вы все еще видите пробел (например, 3px или около того), то, вероятно, у вас есть пробелы или новые строки между элементами вашего html, которые иногда могут вызывать средство визуализации для отображения некоторых пикселей между этими элементами.

Это действительно проблематично и может быть очень трудно идентифицировать как проблему без этих знаний, но как только вы знаете, у вас есть два простых решения:

  • Либо удалите это пробел между вашими тегами в html. (К сожалению, это делает ваш html messier, поэтому второй вариант может быть лучше.)

  • Или, в вашем css, установите размер шрифта в родительском контейнере равным 0px. ex: #parent{font-size:0px;}, а затем снова инициализируйте его для всех дочерних элементов родителя с помощью #parent *{font-size:initial;}.

#parent{
  font-size:0px;
  display:block;
}
#parent *{
  font-size:initial;
}
.tab-label {
  display:inline-block;
  background: #eee; 
  border: 1px solid; 
}
[name="tab-group-1"] {
  display: none;  
}
<div id="parent">
    
       <input type="radio" id="tab-1" name="tab-group-1" checked>
       <label class="tab-label" for="tab-1">Tab One</label>
       <input type="radio" id="tab-2" name="tab-group-1">
       <label class="tab-label" for="tab-2">Tab Two</label>
       <input type="radio" id="tab-3" name="tab-group-1">
       <label class="tab-label" for="tab-3">Tab Three</label>
 </div>