现在的网站一般字体大小都是 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。