修改checkbox样式的一种方式

开发过程中经常需要对checkbox控件的样式进行修改,本文给出了一种checkbox控件样式修改的方式。

改写原生控件样式

checkbox默认的样式如下:

    width:10px;
    height:10px;
    border-radius:2px;
    border:1px solid rgb(118,118,118);
    box-sizing:border-box;

可以使用css直接修改默认的样式,增加各种效果,如下面的代码:

    input[type="checkbox"] 
    {
        width: 20px;
        height: 20px;
        margin: 0;
    }

修改选中状态下的样式

使用appearance: none隐藏默认checkbox的框框,重写框框样式。其原理是通过绝对定位覆盖原多选框。

(1)覆盖原多选框,注意其中的 appearance: none;

    input[type="checkbox"] 
    {
        width: 20px;
        height: 20px;
        appearance: none;
        margin: 0 4px 0 0;
        position: relative;
    }

(2)改写选中状态样式

    input[type="checkbox"]::before
    {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        background: #fff;
        width: 100%;
        height: 100%;
        border: 1px solid #09303b;
        border-radius: 4px;
    }

    input[type="checkbox"]:checked::before
    {
        /*content: "\2713";*/
        content: "\2716";/*\2713表示打勾,\2716表示打叉*/
        background-color: #fff;
        position: absolute;
        top: 0;
        left: 0; 
        width: 100%;
        height: 100%;
        border: 1px solid #09303b;
        border-radius: 4px;
        color: #f00;
        font-size: 20px;
        font-weight: bold;
        text-align: center;
        line-height: 20px;
    }

此外,还有将checkbox隐藏,利用label样式进行修改的方式。