2010-10-26 44 views
4

如何對齊my test case中的inputselect表單元素,以使其水平邊框對齊,並且包括標籤的所有文本都與基線對齊?如何在一行中對齊輸入和選擇表單元素

我想與另一個label沿labelinput表單元素和一排select表單元素。所以我想水平selectinput元素的邊界對齊,我也想要所有的文本包括標籤 對齊基線。可能嗎?

我在IE8或FF上無法實現它。我試圖用box-sizing: border-box;強制inputselect使用相同的 框模型呈現。

my test case,其中有這樣的代碼:

<form action="Submit" method="post"> 
    <p> 
     <label>Sex<select><option value="" selected="selected">Sex</option></select></label> 
     <label>Date of Birth<input type="text" value="Date of Birth" /></label> 
    </p> 
</form> 
body, input, select { 
    font-family: Helvetica,Arial,sans-serif; 
    font-size: 12px; 
} 

select, input { 
    height: 20px; 
    padding: 0; 
    margin: 0; 
    border: 1px solid gray; 
    box-sizing: border-box; 
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
} 

label { 
    padding: 0; 
    margin: 0; 
} 

回答

1

看來,當我沒有設置高度selectinput元素,那麼將border設置爲1px會使其對齊。我不更改默認vertical-align: baseline以保持文本基線的對齊。之前我做得太複雜了。這個簡短的CSS做到了:

body, input, select { 
    font-family:Helvetica,Arial,sans-serif; 
    font-size: 12px; 
} 

select, input { border: 1px solid gray; } 
+0

我加了'margin:0;' 'border:1px solid gray;'之前:因爲我在每個控件的頂部都有標籤,所以我更喜歡每個標籤下的垂直空間(選擇結束時比輸入更少,但不太明顯)。 – Fil 2017-05-31 15:50:39

10

我建議增加這種風格的selectinput元素:

vertical-align: bottom; 

您可以添加填充到select元素。但是,您將在下拉箭頭周圍留出一些空白。 2px應該沒關係,但是請充分利用它。這應該有助於文本基線。

+0

感謝您的迴應。這對齊了水平邊框。但是文本基線不在同一行上。 – 2010-10-27 06:52:37

+0

@michal你可以添加填充到select元素。但是,您將在下拉箭頭周圍留出一些空白。 2px應該沒問題,但玩弄它... – 2010-10-27 07:14:59

+0

我編輯我的迴應,我不認爲行高給你任何額外的好處。祝你好運... – 2010-10-27 07:19:57