【发布时间】:2021-05-28 18:07:33
【问题描述】:
我已经完成了带有标签自定义的单选按钮。但是type="radio"一旦没有标签就无法正常显示和工作。
是否可以将纯 CSS 样式应用于不带标签的单选输入或任何解决此问题的方法?如果是这样,我该怎么做?许多资源正在自定义带有标签的单选按钮,以便在输入之后。
我有以下标记:
[type="radio"]:checked,
[type="radio"]:not(:checked) {
display: none;
}
[type="radio"]:checked+label,
[type="radio"]:not(:checked)+label {
position: relative;
padding-left: 20px;
cursor: pointer;
line-height: 16px;
display: inline-block;
color: red;
}
/* radio outer circle */
[type="radio"]:checked+label:before,
[type="radio"]:not(:checked)+label:before {
content: "";
position: absolute;
left: 0;
top: 0;
width: 16px;
height: 16px;
border: 1px solid green;
border-radius: 100%;
background: #fff;
}
/* radio inner circle */
[type="radio"]:checked+label:after,
[type="radio"]:not(:checked)+label:after {
content: "";
width: 10px;
height: 10px;
background: orange;
position: absolute;
top: 4px;
left: 4px;
border-radius: 100%;
-webkit-transition: all 0.2s ease;
transition: all 0.2s ease;
}
[type="radio"]:not(:checked)+label:after {
opacity: 0;
-webkit-transform: scale(0);
transform: scale(0);
}
[type="radio"]:checked+label:after {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
}
<h2>radio button <i>with</i> label</h2>
<form>
<input type="radio" id="kaios" value="kaios" name="radio-group" checked>
<label for="kaios">KaiOS</label>
<input type="radio" id="ios" value="ios" name="radio-group">
<label for="ios">iOS</label>
<input type="radio" id="android" value="android" name="radio-group">
<label for="android">Android</label>
</form>
<hr />
<h2>radio button <i>without</i> label</h2>
<form>
<input type="radio" name="options" value="KaiOS">KaiOS<br />
<input type="radio" name="options" value="Firefox">Firefox<br />
</form>
【问题讨论】:
-
标签(或其他元素)是否存在问题?您不必在其中包含任何文本,因此用户不会看到它。
-
有标签没问题。这正是我所期望的。
-
那么问题解决了吗 - 即保留标签元素但其中没有任何文本?
-
带有标签的无线电输入按预期显示,但那些(不带标签)的无线电输入根本没有出现。
标签: html css browser radio-button