CSS不适用于复选框列表

时间:2017-10-16 16:31:48

标签: css material-design



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;
&#13;
&#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。

我想要这样的东西:

enter image description here   https://d2d3qesrx8xj6s.cloudfront.net/img/screenshots/68b1d126c5b51eb4267aed2e5fd751db1c72aa1b.jpeg

3 个答案:

答案 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;
}

工作示例:

&#13;
&#13;
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;
&#13;
&#13;

答案 2 :(得分:0)

我找到了一个适合我的解决方案。我在每个复选框中添加了一个类 - class="filled-in"并更改了我的css:

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