我目前正在开展一个学校项目,我的想法的很大一部分是基于单选按钮和复选框。我已经找到了很多关于如何创建它们的代码,唯一的问题是我只允许使用某些html标签而不使用jQuery。
我可以使用的标签:
•html,head,body,title,meta,link
•标题,部分,文章,页脚
•div
•h1-h6
•p
•span
•ul,ol,li
•a
•img
•音频
有没有办法用这些标签创建复选框和单选按钮?
答案 0 :(得分:3)
<强>单选按钮强>
我想出了做放射线按钮的方法,但只有当其中一个被聚焦时,它们才有效。
.radio {
display: inline-block;
position: relative;
margin-left: 1em;
padding-left: 1.5em;
}
.radio::before {
content: "";
display: inline-block;
border: 1px solid black;
width: 1em;
height: 1em;
border-radius: 100%;
position: absolute;
left: 0;
top: 0;
}
.radio:focus {
outline: none;
}
.radio:focus::after {
content: "";
display: inline-block;
border: 1px solid black;
width: 0.5em;
height: 0.5em;
border-radius: 100%;
position: absolute;
background-color: black;
left: 0.25em;
top: 0.25em;
}
&#13;
<ul class="radio-group">
<li tabindex="0" class="radio">Option 1</li>
<li tabindex="0" class="radio">Option 2</li>
<li tabindex="0" class="radio">Option 3</li>
</ul>
&#13;
此处的关键元素是<li>
项中的tabindex
,使它们可以集中精力。
tabindex全局属性指示其元素是否可以被聚焦,以及它是否/在何处参与顺序键盘导航(通常使用Tab键,因此名称)。它接受一个整数作为值,具有不同的结果,具体取决于整数的值:[...]
<强>复选框强>
我设计了它们但是我不知道如何让它们在没有JS的情况下工作。 (现在它们的行为与收音机完全一样。)
.check {
display: inline-block;
position: relative;
margin-left: 1em;
padding-left: 1.5em;
}
.check::before {
content: "";
display: inline-block;
border: 1px solid black;
width: 1em;
height: 1em;
position: absolute;
left: 0;
top: 0;
}
.check:focus {
outline: none;
}
.check:focus::after {
content: "";
display: inline-block;
border-left: 3px solid black;
border-bottom: 3px solid black;
transform: rotate(-45deg);
width: 1em;
height: 0.5em;
position: absolute;
left: 0.1em;
top: -0.1em;
}
&#13;
<ul class="check-boxes">
<li tabindex="0" class="check">Option 1</li>
<li tabindex="0" class="check">Option 2</li>
<li tabindex="0" class="check">Option 3</li>
</ul>
&#13;
提示:我想到的唯一纯粹的CSS事物类似于保存状态CSS counters,但是因为你无法构建基于计数器的选择器#39; s值......
答案 1 :(得分:0)
要以HTML格式输入用户数据,您唯一的选择就是输入标记。请查看官方文档:
https://www.w3schools.com/html/html_form_input_types.asp
只有使用允许的标签,您才能创建单选按钮和复选框。