CSS3复选框动画

本示例实现了两种单选按钮动画效果,一种是移动,一种是滑块,以下是html布局以及css样式

html:这里使用了label标签的for属性,以此来绑定radio

<div class="checkbox-1">
    <input type="checkbox" name="checkbox-1" id="checkbox-1-1" checked="checked">
    <label for="checkbox-1-1"></label>

    <input type="checkbox" name="checkbox-1" id="checkbox-1-2">
    <label for="checkbox-1-2"></label>

    <input type="checkbox" name="checkbox-1" id="checkbox-1-3">
    <label for="checkbox-1-3"></label>
</div>
<div class="checkbox-2">
    <input type="checkbox" name="checkbox-2" id="checkbox-2-1" checked="checked">
    <label for="checkbox-2-1"></label>

    <input type="checkbox" name="checkbox-2" id="checkbox-2-2">
    <label for="checkbox-2-2"></label>

    <input type="checkbox" name="checkbox-2" id="checkbox-2-3">
    <label for="checkbox-2-3"></label>
</div>

css

<style type="text/css">
    .checkbox-1{
        width: 980px;
        margin: 0 auto;
        text-align: center;
        padding: 3% 0;
        background-color: #99cccc;
    }
    .checkbox-1 label{
        display: inline-block;
        width: 10px;
        height: 10px;
        padding: 9px;
        border: 1px #cccccc solid;
        -webkit-border-radius: 4px;
        -moz-border-radius: 4px;
        border-radius: 4px;
        background-color: #ffffff;
        color: #333;
        margin-right: 10px;
        overflow: hidden;
        position: relative;
        cursor: pointer;
    }
    .checkbox-1 [type="checkbox"]{
        display: none;
    }
    .checkbox-1 label:after{
        content: 'X';
        font-family: Arial;
        color: #ffffff;
        background-color: #399;
        position: absolute;
        top: 1px;
        left: 1px;
        width: 26px;
        height: 26px;
        line-height: 26px;
        -webkit-border-radius: 4px;
        -moz-border-radius: 4px;
        border-radius: 4px;
        text-align: center;
        -webkit-transform: translateY(-30px);
        -moz-transform: translateY(-30px);
        -ms-transform: translateY(-30px);
        -o-transform: translateY(-30px);
        transform: translateY(-30px);
        -webkit-transition: -webkit-transform .2s ease-in;
        -moz-transition: -moz-transform .2s ease-in;
        -ms-transition: -ms-transform .2s ease-in;
        -o-transition: -o-transform .2s ease-in;
        transition: transform .2s ease-in;
    }
    .checkbox-1 [type="checkbox"]:checked + label:after{
        -webkit-transform: translateY(0);
        -moz-transform: translateY(0);
        -ms-transform: translateY(0);
        -o-transform: translateY(0);
        transform: translateY(0);
        -webkit-transition: -webkit-transform .2s ease-in;
        -moz-transition: -moz-transform .2s ease-in;
        -ms-transition: -ms-transform .2s ease-in;
        -o-transition: -o-transform .2s ease-in;
        transition: transform .2s ease-in;
    }

    .checkbox-2{
        width: 980px;
        margin: 0 auto;
        text-align: center;
        padding: 3% 0;
        background-color: #99cccc;
    }
    .checkbox-2 label{
        display: inline-block;
        width: 68px;
        height: 34px;
        border: 1px #cccccc solid;
        -webkit-border-radius: 18px;
        -moz-border-radius: 18px;
        border-radius: 18px;
        background-color: #ffffff;
        margin-right: 10px;
        position: relative;
        cursor: pointer;
        -webkit-transition: background-color .2s ease-in;
        -moz-transition: background-color .2s ease-in;
        -ms-transition: background-color .2s ease-in;
        -o-transition: background-color .2s ease-in;
        transition: background-color .2s ease-in;
    }
    .checkbox-2 [type="checkbox"]{
        display: none;
    }
    .checkbox-2 label:after{
        content: '';
        position: absolute;
        left: 1px;
        top: 1px;
        width: 30px;
        height: 30px;
        border: 1px #e0e0e0 solid;
        background-color: #ffffff;
        -webkit-border-radius: 50%;
        -moz-border-radius: 50%;
        border-radius: 50%;
        -webkit-transition: left .2s ease-in;
        -moz-transition: left .2s ease-in;
        -ms-transition: left .2s ease-in;
        -o-transition: left .2s ease-in;
        transition: left .2s ease-in;
    }
    .checkbox-2 [type="checkbox"]:checked + label{
        background-color: #33cc66;
        -webkit-transition: background-color .2s ease-in;
        -moz-transition: background-color .2s ease-in;
        -ms-transition: background-color .2s ease-in;
        -o-transition: background-color .2s ease-in;
        transition: background-color .2s ease-in;
    }
    .checkbox-2 [type="checkbox"]:checked + label:after{
        left: 35px;
        -webkit-transition: left .2s ease-in;
        -moz-transition: left .2s ease-in;
        -ms-transition: left .2s ease-in;
        -o-transition: left .2s ease-in;
        transition: left .2s ease-in;
    }
</style>

 

posted @ 2018-02-01 23:10  小白知浅  阅读(248)  评论(0编辑  收藏  举报