修改checkbox類型input復選框默認樣式

2019-04-26CSS2940
  • 詳情內容
  • 留言點評

我們知道checkbox類型input復選框在每一種瀏覽器都有默認樣式,那么可不可以自定義樣式呢?答案是肯定的,至少在Chrome和FireFox等標準瀏覽器中可以做到,需要注意的,較新版本Chrome瀏覽器需要使用-webkit-appearance:none;屬性先解除默認樣式。以下是代碼:

<label class="checkBox"><input type="checkbox">全選</label>
<style>
input[type='checkbox']{
    width: 20px;
    height: 20px;
    background-color: #fff;
    -webkit-appearance:none;
    border: 1px solid #c9c9c9;
    border-radius: 2px;
    outline: none;
}
.checkBox input[type=checkbox]:checked{
   background: url("../images/checkbox.png") no-repeat center;
}
</style>

如果需要考慮兼容IE等瀏覽器,則可以用div + js方式模擬復選框達到美化目的,以下是參考代碼:

<div class="agreement-ack agreement-select js-ack"></div>
<style>
.agreement-select {    background-image: url("./true.png");
}.agreement-no-select {    background-image: url("./false.png");
}.agreement-ack {    box-sizing: border-box;    width: 30px;    height: 30px;    background-size: 30px 30px;
}
</style>
<script>
var js_ack = document.getElementsByClassName("js-ack")[0];
js_ack.onclick = function () {    if (js_ack.className.indexOf("agreement-select") > -1) {
        js_ack.classList.remove("agreement-select");
        js_ack.classList.add("agreement-no-select");
    } else {
        js_ack.classList.remove("agreement-no-select");
        js_ack.classList.add("agreement-select");
    }
};
</script>


歡迎點評!也可以是問題反饋和建議

支持Ctrl+Enter提交
暫無留言,快搶沙發!
0

真心很贊,必須打賞!嗯,以資鼓勵~

點此打賞

99%看過的人還會看

海南环岛赛彩票奖金