以前在網上看到各種有關css3美化復選框和單選框的例子,今天整理出來,方便以后查看。
此例涉及到:input和lable的綁定,opacity(不透明度)的使用
先上效果:
復選框源碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CSS3美化復選框</title> <style type="text/css"> form { border: 1px solid #ccc; padding: 20px; width: 300px; margin: 30px auto; } .wrapper { margin-bottom: 10px; } .box { display: inline-block; width: 20px; height: 20px; margin-right: 10px; position: relative; border: 2px solid green; vertical-align: middle; } .box input { display: block; opacity: 0; position: absolute; top:0; left:0; z-index: 100; width: 20px; height: 20px; } .box span { position: absolute; top: -10px; right: 3px; font-size: 30px; font-weight: bold; font-family: Arial; -webkit-transform: rotate(30deg); transform: rotate(30deg); color: green; } input[type="checkbox"] + span { opacity: 0; } input[type="checkbox"]:checked + span { opacity: 1; } </style> </head> <body> <form action="#"> <div class="wrapper"> <div class="box"> <input type="checkbox" checked="checked" id="usename" /><span>√</span> </div> <lable for="usename">我是選中狀態</lable> </div> <div class="wrapper"> <div class="box"> <input type="checkbox" id="usepwd" /><span>√</span> </div> <label for="usepwd">我是未選中狀態</label> </div> </form> </body> </html>
單選框源碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CSS3美化單選框</title> <style type="text/css"> form{ border: 1px solid #ccc; padding: 20px; width: 300px; margin: 30px auto; } .wrapper{ margin-bottom: 10px; } .box{ display: inline-block; width: 30px; height: 30px; margin-right: 10px; position: relative; background: orange; vertical-align: middle; border-radius: 50%; } .box input{ opacity: 0; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 100; } .box span{ display: block; width: 10px; height: 10px; border-radius: 50%; position: absolute; top: 50%; left: 50%; background: #fff; margin:-5px 0 0 -5px; z-index: 1px; } input[type="radio"] + span{ opacity: 0; } input[type="radio"]:checked + span{ opacity: 1; } </style> </head> <body> <form action="#"> <div class="wrapper"> <div class="box"> <input type="radio" checked="checked" id="boy" name="1" /> <span></span> </div> <label for="boy">男</label> </div> <div class="wrapper"> <div class="box"> <input type="radio" id="girl" name="1" /> <span></span> </div> <label for="girl">女</label> </div> </form> </body> </html>