```css input[type="radio"]:checked { display: none; } ```
{ display:none; }
我不知道该如何处理这个元素。选中的单选按钮始终显示为“none”,这对用户来说没有任何意义,我希望隐藏它。 这有可能吗? 感谢任何指点。
{ display:none; }
我不知道该如何处理这个元素。选中的单选按钮始终显示为“none”,这对用户来说没有任何意义,我希望隐藏它。 这有可能吗? 感谢任何指点。
小贴士:
如果您仍然想要使用浏览器的原生支持来处理单选按钮和复选框,例如使用 ↑ 和 ↓ 键在它们之间切换,请将 css 设置为:
position: fixed;
opacity: 0;
pointer-events: none;
这将保持所有功能,但将输入隐藏,并且不会占用任何布局空间。
我花了过去3个小时来弄清楚这个问题,但它确实有效!
position: fixed
会导致短暂的无响应和奇怪的布局跳跃。而使用position: absolute
和width: 0
似乎效果更好(显然需要将输入框的父元素赋予position: relative
)。 - HynekS除了Nathan Lee的答案之外
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/
input[type="radio"][value="text"]:checked
我不确定在您的页面上哪里可以看到单选按钮,源代码中似乎没有。 - lijninput[value="none"]
吗?更多信息:CSS选择器:[attr=value]
https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors | 抱歉,我不明白:“text”是值还是标签,"text"和单选按钮之间的关系是什么? - lijninput[type="radio"]:checked
,我可以隐藏任何选中的单选按钮,但我只想在文本等于“None”时隐藏选中的单选按钮。 - bertassa如果你想隐藏复选框/单选按钮,则通常需要制作自定义的复选框/单选按钮。
如果你希望能够聚焦到与输入相关联的标签,可以使用opacity:0;position:absolute;width:0;使输入不可见,同时不占用空间。
如果你使用display:none; 或 visibility:hidden; 将具有类似的效果,但目前最常用的浏览器(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>
尝试使用visibility:hidden;
这个样式属性,它会生效。
这里有一个可运行的演示
HTML代码:
<input class="checked" type="radio" checked />
CSS:
input.checked[type="radio"]{visibility:hidden;}
我喜欢使用 'opacity: 0'。
当您使用 'display: none' 或 'visibility: hidden' 时,您的输入单选按钮将无法工作。
尝试像这样:
input[type="radio"] {
opacity: 0;
position: absolute;
}
PS:我使用 'position: absolute' 来不占用 div 中的空间。
input[type="radio"] {
opacity: 0;
position: absolute;
};
#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>
appearance: none;
是关键,因为我想用 before(轮廓)和 after(标记)元素来样式化单选框,但不能隐藏整个元素。这样键盘支持和本地功能仍然可以正常工作。除了其他答案中提到的问题(特别是无障碍问题),display: none
的一个警告是它还会影响浏览器显示的警告,当单选框输入为 required
时,用户没有勾选。
另一方面,opacity: 0
和 visibility: hidden
的一个警告是单选按钮仍然会占用一些空间(我认为width: 0px
没有效果),这可能是个问题(例如对于对齐或者如果你的单选按钮在 <li>
标记内部,并且你想让 <li>
背景颜色在 :hover
时更改,在这种情况下,标签必须覆盖 <li>
)。
修正方法是将单选按钮的 position
简单设置为 fixed
:
input[type=radio] {
opacity: 10;
position: fixed;
}
input[type=radio]+label {
background-color: #eee;
padding: 1em;
}
<input type="radio" id="radio1">
<label for="radio1">radio1</label>
<input type="radio" id="radio2">
<label for="radio2">radio2</label>
opacity: 10
而不是0只是为了看清楚我们正在讨论的内容),使用position: fixed
时,单选按钮不再影响标签。