input[type="checkbox"]:checked + label:after{
border: 2px solid red;
background-color: red;
}

<div class="input-field col s12">
<input id="cb1" name="testCheck" type="checkbox" required>
<label for="cb1">Option 1</label>
</div>
<div class="input-field col s12">
<input id="cb2" name="testCheck" type="checkbox" required>
<label for="cb2">Option 2</label>
</div>
<div class="input-field col s12">
<input id="cb3" name="testCheck" type="checkbox" required>
<label for="cb3">Option 3</label>
</div>
&#13;
我有一个复选框列表
<div class="input-field col s12">
<input id="cb1" name="testCheck" type="checkbox" required>
<label for="cb1">Option 1</label>
</div>
<div class="input-field col s12">
<input id="cb2" name="testCheck" type="checkbox" required>
<label for="cb2">Option 2</label>
</div>
<div class="input-field col s12">
<input id="cb3" name="testCheck" type="checkbox" required>
<label for="cb3">Option 3</label>
</div>
我选中时使用以下CSS更改复选框的颜色:
input[type="checkbox"]:checked + label:after{
border: 2px solid red;
background-color: red;
}
不起作用。有趣的是,同样的CSS:
input[type="radio"]:checked + label:after{
border: 2px solid red;
background-color: red;
}
适用于radiobutton list。
我想要这样的东西:
https://d2d3qesrx8xj6s.cloudfront.net/img/screenshots/68b1d126c5b51eb4267aed2e5fd751db1c72aa1b.jpeg
答案 0 :(得分:0)
如果这是您的整个代码,它将无法正常工作。您需要为:after
psuedo元素提供一些其他属性。即content: "";
更新 - 在您提到的评论中,您只想在复选框中添加边框。为此,请使用outline
。像这样:
input[type="checkbox"]:checked {
outline: 3px solid red;
}
<div class="input-field col s12">
<input id="cb1" name="testCheck" type="checkbox" required>
<label for="cb1">Option 1</label>
</div>
<div class="input-field col s12">
<input id="cb2" name="testCheck" type="checkbox" required>
<label for="cb2">Option 2</label>
</div>
<div class="input-field col s12">
<input id="cb3" name="testCheck" type="checkbox" required>
<label for="cb3">Option 3</label>
</div>
答案 1 :(得分:0)
我在:after
发布的代码中没有看到任何目的 - 标签后面没有任何内容可以突出显示,因此我不确定您为什么要尝试设置样式。
如果从规则中删除它,CSS会以红色突出显示标签。我想这就是你想要做的事情?
input[type="checkbox"]:checked + label{
border: 2px solid red;
background-color: red;
}
工作示例:
input[type="checkbox"]:checked + label{
border: 2px solid red;
background-color: red;
}
&#13;
<div class="input-field col s12">
<input id="cb1" name="testCheck" type="checkbox" required>
<label for="cb1">Option 1</label>
</div>
<div class="input-field col s12">
<input id="cb2" name="testCheck" type="checkbox" required>
<label for="cb2">Option 2</label>
</div>
<div class="input-field col s12">
<input id="cb3" name="testCheck" type="checkbox" required>
<label for="cb3">Option 3</label>
</div>
&#13;
答案 2 :(得分:0)
我找到了一个适合我的解决方案。我在每个复选框中添加了一个类 - class="filled-in"
并更改了我的css:
input[type="checkbox"].filled-in:checked + label:after{
border: 2px solid red;
background-color: red;
}