CSS复选框样式不起作用

时间:2016-07-27 09:24:11

标签: javascript jquery html css checkbox

我有我的复选框,我正在尝试使用以下CSS设置它。



input[type="checkbox"]{
    display: none;
    border: none !important;
    box-shadow: none !important;
}

input[type="checkbox"] + label span {
    display: inline-block;
    vertical-align: middle;
    width: 30px;
    height: 30px;
    background: url(/static/app/images/check_no.svg);
}

input[type="checkbox"]:checked + label span {
    background: url(/static/app/images/check_yes.svg);
    content: '';
    color: #fff;
    vertical-align: middle;
    width: 30px;
    height: 30px;
}

<div class="check1">
  <input id="id_contract_name" name="contract_name" type="checkbox"> 
    <label for=" id_contract_name "> 
      <span class="chk_contract"></span>   Name on Contract
    </label>
</div>


<div class="check2">
  <input id="id_is_ceo" name="is_ceo" type="checkbox"> 
  <label for=" id_is_ceo "> 
    <span></span>  CEO?
  </label>
</div>
&#13;
&#13;
&#13;

复选框位于我的表单中。

单击我的复选框时,这不起作用。我是造型新手,让我知道错误的位置。

2 个答案:

答案 0 :(得分:1)

for属性中的名称周围有空格,请将其删除。

工作演示:

&#13;
&#13;
 input[type="checkbox"]{
display: none;
border: none !important;
box-shadow: none !important;
   }

      input[type="checkbox"] + label span {
display: inline-block;
vertical-align: middle;
width: 30px;
height: 30px;
background: url(/static/app/images/check_no.svg);

      }

     input[type="checkbox"]:checked + label span {
background: url(/static/app/images/check_yes.svg);
content: '';
color: #fff;
vertical-align: middle;
width: 30px;
height: 30px;
       /*added this to show the behavior here on SO*/
       background-color: #000
 }
&#13;
     <div class="check1">
          <input id="id_contract_name" name="contract_name" type="checkbox"> 
          <label for="id_contract_name"> 
              <span class="chk_contract"></span>   Name on Contract
          </label>
      </div>


     <div class="check2">
          <input id="id_is_ceo" name="is_ceo" type="checkbox"> 
          <label for="id_is_ceo"> 
              <span></span>  CEO?
          </label>
      </div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你必须在CSS中提到id或class。 如果你想动态添加css,那么你必须使用javascript或jquery。

 #id_contract_name{
display: none;
border: none !important;
box-shadow: none !important;
   }

      #id_is_ceo {
display: inline-block;
vertical-align: middle;
width: 30px;
height: 30px;
background: url(/static/app/images/check_no.svg);

      }

     input[type="checkbox"]:checked + label span {
background: url(/static/app/images/check_yes.svg);
content: '';
color: #fff;
vertical-align: middle;
width: 30px;
height: 30px;
 }
<html>
<body>
     <div class="check1">
          <input id="id_contract_name" name="contract_name" type="checkbox"> 
          <label for=" id_contract_name "> 
              <span class="chk_contract"></span>   Name on Contract
          </label>
      </div>


     <div class="check2">
          <input id="id_is_ceo" name="is_ceo" type="checkbox"> 
          <label for=" id_is_ceo "> 
              <span></span>  CEO?
          </label>
      </div>
  </body>
 </html>