美文网首页
用CSS实现美观的单选复选框

用CSS实现美观的单选复选框

作者: chen晶洁 | 来源:发表于2019-05-24 17:24 被阅读0次

背景

​ 使用原生的radio/checkbox会使界面很丑,所以会使用技巧实现更美观的单选框和复选框,本文只是其中的一种实现。

主要技巧

  • 隐藏原来的样式

  • 利用label实现绑定

  • 使用伪元素实现选择和未选择的不同样式

代码(没有做兼容处理)

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="Keywords" content="">
        <meta name="Description" content="">
        <title>作业</title>
        <link rel='stylesheet' href=''>
        <style type="text/css">
            input[type=radio],input[type=checkbox]{   
                display:none;
            }
            .radio{ 
               float:left;
               width:10px;
               height:10px;
               margin-top:5px;
               border:1px solid green;
               border-radius:50%;   
            }
            .radio::after{   
                content:'';
                display:block;
                margin:1px 1px;
                width:8px;
                height:8px;
                border-radius:50%;
                background:green;
                transform:scale(0);
            }
            .option{  
                float:left;
                height:20px;
                line-height:20px;
                margin:0 4px;
                
            }
            input[type=radio]:checked + .radio::after{   
                transform:scale(1);
            }
            .clearfix::after{   
                content:'';
                display:block;
                clear:both;
            }

            .checkbox{ 
               float:left;
               width:10px;
               height:10px;
               margin-top:5px;
               border:1px solid green;     
            }
            .checkbox::after{   
                    content:'✔';/*可以用其他方法实现,如图片等*/
                display:block;
                margin-top:-3px ;
                color:green;
                width:8px;
                height:8px;
                font-size:12px;
                transform:scale(0);
            }
            input[type=checkbox]:checked + .checkbox::after{   
                transform:scale(1);
            }
        </style>
    </head>
    <body>
        <form method="post" action="">
            <div id="" class="radio-part">          
                <div id="" class="clearfix">
                    <label> 
                        <input type="radio" name="fruit" value='putao' >
                        <span class="radio"></span>
                        <span class="option">葡萄</span>
                    </label>    
                </div>
                <div id="" class="clearfix">
                    <label> 
                        <input type="radio" name="fruit" value='xigua' >
                        <span class="radio"></span>
                        <span class="option">西瓜</span>
                    </label>    
                </div>
                <div id="" class="clearfix">
                    <label> 
                        <input type="radio" name="fruit" value='li' >
                        <span class="radio"></span>
                        <span class="option">梨</span>
                    </label>    
                </div>
            </div>
            <div id="" class="checkbox-part">           
                <div id="" class="clearfix">
                    <label> 
                        <input type="checkbox" name="fruit" value='putao' >
                        <span class="checkbox"></span>
                        <span class="option">葡萄</span>
                    </label>    
                </div>
                <div id="" class="clearfix">
                    <label> 
                        <input type="checkbox" name="fruit" value='xigua' >
                        <span class="checkbox"></span>
                        <span class="option">西瓜</span>
                    </label>    
                </div>
                <div id="" class="clearfix">
                    <label> 
                        <input type="checkbox" name="fruit" value='li' >
                        <span class="checkbox"></span>
                        <span class="option">梨</span>
                    </label>    
                </div>
            </div>
        </form>
    </body>
</html>

结果截图

未选时.png 选中时.png

相关文章

网友评论

      本文标题:用CSS实现美观的单选复选框

      本文链接:https://www.haomeiwen.com/subject/dyjnzqtx.html