我正在构建自定义复选框而不是默认复选框。我需要将它们一个接一个地对齐,问题是如果我设置:
input[type=checkbox] {
display:none;
}
为了隐藏默认复选框,其余复选框不会在一列中对齐。如果我设置了display:block;
,它们会根据需要进行对齐,但我会看到自定义复选框和是默认值。我该如何解决此问题?
HTML:
<div id="checkBoxesContainer">
<input type='checkbox' value='valuable1' /><label for="thing"></label> Content 5
<input type='checkbox' value='valuable2' /><label for="thing"></label> Content 4
<input type='checkbox' value='valuable3' /><label for="thing"></label> Content 3
<input type='checkbox' value='valuable4' /><label for="thing"></label> Content 2
<input type='checkbox' value='valuable5' /><label for="thing"></label> Content 1
</div>
CSS:
input[type=checkbox] {
display:block;
}
input[type=checkbox] + label
{
background-color: grey;
height: 15px;
width: 15px;
display:inline-block;
padding: 0 0 0 0px;
}
input[type=checkbox]:checked + label
{
background-color: blue;
height: 15px;
width: 15px;
display:inline-block;
padding: 0 0 0 0px;
}
第二个问题,for
中label
和name
input
中library(pls)
gasoline
的使用情况是什么?
答案 0 :(得分:1)
好的,首先,将文本放在标签内是件好事。其次,如果您设置了默认复选框display:none
,那么它就不会被点击。您可以将其设置为visibility: hidden
。
for
的目的是指出我们定位/绑定的输入。因此,对于复选框,如果单击文本标签,即使没有单击默认复选框,它仍将检查它。
input[type=checkbox] {
display:block;
visibility: hidden;
}
label span
{
background-color: grey;
height: 15px;
width: 15px;
display:inline-block;
padding: 0 0 0 0px;
margin-right: 5px
}
input[type=checkbox]:checked + label span
{
background-color: blue;
height: 15px;
width: 15px;
display:inline-block;
padding: 0 0 0 0px;
}
&#13;
<div id="checkBoxesContainer">
<input type='checkbox' value='valuable1' id="valuable1"/><label for="valuable1"><span></span> Content 5</label>
<input type='checkbox' value='valuable2' id="valuable2"/><label for="valuable2"><span></span> Content 4</label>
<input type='checkbox' value='valuable3' id="valuable3"/><label for="valuable3"><span></span> Content 3</label>
<input type='checkbox' value='valuable4' id="valuable4"/><label for="valuable4"><span></span> Content 2</label>
<input type='checkbox' value='valuable5' id="valuable5"/><label for="valuable5"><span></span> Content 1</label>
</div>
&#13;
答案 1 :(得分:1)
回答第二个问题:name
属性设置了应在input
元素中输入的值的名称。当评估用户输入时,通常通过某种服务器端技术(如PHP)来评估这些值。例如,假设您有一个名字字段和一个姓氏字段
<input type="text" name="first_name" />
<input type="text" name="last_name" />
如果您将带有input
个元素(可能还有更多)的表单发送给PHP脚本的POST请求,您可以通过名称访问用户在$_POST
数组中输入的值作为索引
<?php
// any kind of user input filtering, error handling and such
// ommitted for brevity and clarity
echo "<p>Your first name is " . $_POST['first_name'] . "</p>";
echo "<p>Your last name is " . $_POST['last_name'] . "</p>";
?>
for
元素的label
属性将标签连接到标签元素的输入字段,以及标签。连接不是由input
元素的名称完成的,正如人们可以假设的那样,而是id
。
<label for="male">Male</label>
<input type="radio" name="gender" id="male" value="male" />
<label for="female">Female</label>
<input type="radio" name="gender" id="female" value="female" />
<label for="female">Other</label>
<input type="radio" name="gender" id="other" value="other" />
带有label
的 for
对网络浏览器显示您的网页的方式没有直接影响。但是有几个有趣的效果。例如,如果您告诉浏览器input
label
属于哪个用户并且用户点击label
,则浏览器应将光标设置为input
。如果您的网页未在网络浏览器中显示,label
也会让客户阅读您的代码更多信息,但例如,在文字转语音系统中为视障用户阅读。另一个有趣的话题是所谓的&#34;语义网&#34;。在那里,您编写的代码不仅可以由机器(如浏览器)显示,而且可以在某种程度上理解并由机器解释。为此,在代码中说明&#34;此label
元素标记了input
元素&#34;显然很有帮助。
答案 2 :(得分:0)
您必须将内容包装在label标签上。 使用for for focusse您的复选框为=“ident”添加标签并输入id =“ident”。
你也可以使用::之前和之后的样式你的复选框。实施例
input[type=checkbox]:after {
content: "";
background-color: grey;
height: 15px;
width: 15px;
display:inline-block;
padding: 0 0 0 0px;
position: absolute;
}
input[type=checkbox]:checked:after {
content: "";
background-color: red;
height: 15px;
width: 15px;
display:inline-block;
padding: 0 0 0 0px;
position: absolute;
}
并获取基础chcecbox的相对位置。 Fiddle