表单页面,为了使表单元素和文字都垂直居中对齐,加个样式input,select{vertical-align:middle},文本框和下拉框都没问题,但是单选框和复选框就杯具了。
大多表现:单选,复选和文字无间距,单选文字偏上,复选偏上。

关于这些问题网上有人发表了看法,用table搞定一切。这个也是一种方法,哥也不BS。
对于ie6,7下的文字间距问题,网上看到有人说设置width:14px就好了,我试了下发现width:13px更佳。这个问题解决。

对于文字偏上的问题,试了vertical-align下的所有属性都不行。后来发现vertical-align是可以设置数值的,真是白混了这么久。
单选设置了vertical-align:-2px;复选设置vertical-align:-3px;就ok了。拿到ie6,7下测试,发现差了1px,使用了hack搞定。(ie6,7就是神奇)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 

<title>表单页面</title> 

<style type="text/css"> 

<!-- 

body,ul,input,select{margin:0px;padding:0px;} 

body{font-size:12px;} 

ul{list-style:none;margin:20px auto;width:500px;} 

ul li{height:30px;} 

ul li input,ul li select{vertical-align:middle;} 

.input{height:18px;line-height:18px;border:1px #999999 solid;} 

.checkbox,.radio{*width:13px;} 

.radio{vertical-align:-2px;*vertical-align:-1px;} 

.checkbox{vertical-align:-3px;*vertical-align:-2px;} 

--> 

</style> 

</head> 

<body> 

<ul> 

<li>姓名:<input type="text" class="input" /></li> 

<li>性别:<input type="radio" name="sex" class="radio" value="1" />男 <input type="radio" name="sex" class="radio" value="2" />女</li> 

<li>年龄:<select name="age" class="select"> 

<option value="">请选择</option> 

<option>20以下</option> 

<option>20-30</option> 

<option>30-40</option> 

<option>40以上</option> 

</select></li> 

<li>兴趣:<input type="checkbox" class="checkbox" name="interest" />上网 <input type="checkbox" class="checkbox" name="interest" />音乐 <input type="checkbox" class="checkbox" name="interest" />游戏 <input type="checkbox" class="checkbox" name="interest" />电影 <input type="checkbox" class="checkbox" name="interest" />其他</li> 

<li></li> 

</ul> 

</body> 

</html>




第二种方案:
1.input 文本框 文字垂直居中对齐
表单默认input文本框文字并不垂直居中而在顶端,如何调整呢,可以通过css来调整垂直高度,代码演示如下
<input type="text" style="font-size:12px;line-height:45px; height:50px;" value="www.itstudy.cn"/>

height: 设置input样式的高度,line-height:设置input里文字的行高度

heigth和line-height两项必需同时设置,才能生效!
一般来说height和line-height的值 height的值要稍稍大一些。

但是上述方法在firefox中无效,如何实现在ie和firefox下文字都垂直居中呢?可以不用line-height,代码演示如下:
<input type="text" style="font-size:12px;padding-top:15px; height:50px;" value="www.itstudy.cn"/>

2.input 文本框 文字垂直居中对齐
在ie中文字垂直居中对齐的话:
在css中把line-height的属性设置成height的高度即可。

可能有的浏览器如此设置依然不居中,此时可以使用padding属性。
如果文本框有背景图片的话就会向下凸出一块,此时可以把max-height值设为height的值。

3.input文本框、文字、按钮、图片 垂直居中对齐的解决办法
当我们在做用户注册、登陆及搜索表单时,经常碰到文字、文本框、图片、按钮在一行时不能垂直居中对齐,本人今天遇到类似的问题,解决办法是把form里面的表单元素设置vertical-align:middle;属性就OK,实例如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

<title>input 垂直居中对齐</title> 

<style type="text/css"> 

*{ padding:0; margin:0; } 

/* =search */ 

.search{ position:absolute; top:46px; right:49px; text-align:right; } 

.search input{ vertical-align:middle; } 

.searchkey{ width:248px; height:14px; *height:20px; _height:20px; line-height:20px; padding:6px 4px;*padding:3px 4px;_padding:3px 4px; background:#fdfdfd; border:1px solid #d4d6cb; } 

</style> 

</head> 

<div class="search"> 

<form action="#" method="get" name="g3unionform"> 

 <img src="http://hiphotos.baidu.com/wely_ton/abpic/item/5cbdee023bc133523912bbc4.jpg" width="35" height="28" /> 

 <input name="searchkey" type="text" class="searchkey" /> 

 <input name="subm" type="image" src="images/g3union_07.gif" /> 

</form> 

</div> 

<body> 

</body> 

</html>




UL中的LI

<li style="margin:0 auto;line-height:30px"> 

<label style="vertical-align:button;">标鉴</label> 

<label> 

<input type="checkbox" style="vertical-align:middle;" name="auditStatus" id="auditStatus" />创ABD 

</label>