现在的网站一般字体大小都是 12px,在 12px 下单选框和复选框文字垂直居中对不齐,不过要是字体大小是 14px 的话却完全没有这个问题。下面我整理了下解决方法,总共有 6 种。
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>css-checkbox-radio-vertical-align</title> <link rel="stylesheet" type="text/css" href="css/base.css" media="all"/> <style type="text/css"> body{font:12px SimSun;} p{margin:30px 10px;} .wrapper{margin:50px auto;width:500px;} .input1{vertical-align:text-bottom; margin-bottom:-1px; *margin-bottom:-4px;} .input2{height:13px; vertical-align:text-top; margin-top:0;} .input3{height:15px; vertical-align:bottom; margin-bottom:-1px; margin-bottom:-2px\9; *margin-bottom:0px;} .input4{height:14px; vertical-align:top; margin-top:1px; margin-top:0\9;} .input5{vertical-align:middle; margin-top:-2px;} .input6{vertical-align:-3px;} </style> </head> <body> <div class="wrapper"> <form action="#" method="post"> <h2>单选框</h2> <p><input type="radio" name="radio" id="radio1" class="input1"/><label for="radio1">解决方法一</label></p> <p><input type="radio" name="radio" id="radio2" class="input2"/><label for="radio2">解决方法二</label></p> <p><input type="radio" name="radio" id="radio3" class="input3"/><label for="radio3">解决方法三</label></p> <p><input type="radio" name="radio" id="radio4" class="input4"/><label for="radio4">解决方法四</label></p> <p><input type="radio" name="radio" id="radio5" class="input5"/><label for="radio5">解决方法五</label></p> <p><input type="radio" name="radio" id="radio6" class="input6"/><label for="radio6">解决方法六</label></p> <h2>复选框</h2> <p><input type="checkbox" name="checkbox" id="checkbox1" class="input1"/><label for="checkbox1">解决方法一</label></p> <p><input type="checkbox" name="checkbox" id="checkbox2" class="input2"/><label for="checkbox2">解决方法二</label></p> <p><input type="checkbox" name="checkbox" id="checkbox3" class="input3"/><label for="checkbox3">解决方法三</label></p> <p><input type="checkbox" name="checkbox" id="checkbox4" class="input4"/><label for="checkbox4">解决方法四</label></p> <p><input type="checkbox" name="checkbox" id="checkbox5" class="input5"/><label for="checkbox5">解决方法五</label></p> <p><input type="checkbox" name="checkbox" id="checkbox6" class="input6"/><label for="checkbox6">解决方法六</label></p> </form> </div> </body> </html>
兼容浏览器:chrome,firefox,ie8,ie7,ie6,safari
原文地址:http://www.zhangxinxu.com/wordpress/?p=56
PS:个人推荐第 2 种,第 5 种和第 6 种方法。因为这 3 种方法都没有用到 css hack。