一個文本框旁邊一個按鈕是很經常用到的網頁內容,比如搜索框等等,而如果旁邊的按鈕使用圖像的話,他們豎直方向就很不容易對齊,即使使用
vertical-align、padding和margin等都不行(特別是在IE中,Firefox中使用vertical-align還可以)。
例如有如下代碼:
<form>
<input
type="text"name="foo"value="Test Field"/>
<input
type="image"src="images/button.gif" />
</form>
其效果是:
解決方案非常簡單,上述代碼修改為:
<form>
<input
type="text"name="foo"value="Test Field"/>
<input
type="image"src="images/button.gif"style="position:absolute" />
</form>
這時,在Firefox和IE中的效果分別是:
???
可以看到,在Firefox中,如果事先做好的圖像和文本框的高度完全一致,那么他們就會完全對齊了;而在IE中,則按鈕圖像比文本框高一個像素。
因此可以針對IE瀏覽器稍作調整:
<form>
<input
type="text"name="foo"value="Test Field"/>
<input
type="image"src="images/button.gif"style="position:absolute;+margin-top:1px" />
</form>
注意,這里在”margin-top”屬性前面有一個加號,對于Firefox瀏覽器,這個屬性設置就無效了;而對于IE瀏覽器,會忽略掉這個加號,因此針對IE瀏覽器,上面就會存在這1像素的margin了。在這時,在Firefox和IE中的效果分別是:
???
到這里,在豎直方向經對齊得很好了,水平方向上,在Firefox和IE中,還略有區別,在Firefox中二者緊靠在一起,在IE中,二者之間有一點點間隔。但是水平方向的控制就容易多了,這里就不再細調整了,讀者可以自己試驗一下。
=================快樂的分割線==============
一個簡單而優雅得多的方法解決這個問題,非常好用,方法是對需要對齊的input元素使用 vertical-align 屬性比如:
.img, .input, .select{
?????? vertical-align:middle;
}