2016-05-30 39 views
2

<select>已微胖相比<input>具有相同的邊框寬度和填充

input, select { padding: 2px; border: solid 1px red; }
<input value="Foo"> 
 
<select><option>bar!</option></select>

即使這些都具有相同的paddingborder-width,所產生的<select>顯然比其相應的<input>高。 (在Firefox測試)

<select> is taller than <input> with same padding and border-width

你能解釋一下身後的高度差的原因何在呢?如果我刪除paddingborder-width規則,那麼問題就會消失。不幸的是,這不是我的項目的好解決方案。

我希望擁有跨瀏覽器一致的像素完美佈局,即使是移動瀏覽器也是如此。到目前爲止,我一直在爲<select>保留一個不同的padding,比我的<input>要好,但是如果我可以同時使用一個設置,則會更喜歡。

我們找到了一個簡單的CSS規則來解決similar question in regarding <button>s in Firefox。我知道這可能不是那麼簡單的<select>我發佈了這個問題找出肯定。

+0

爲什麼downvote? –

+0

可能重複[爲什麼樣式很難'和''之間以及在其他瀏覽器之間的'vertical-align'的兼容性。 –

+0

輸入文本和選擇字段自動垂直對齊。然而,使用'line-height'和'height'會更安全。 'vertical-align:middle'使輸入和選擇保持在相同的基線。 –

0

你真的不能風格<select>元素與CSS和期望他們同在不同的瀏覽器 - 或甚至希望你的規則適用於這個問題。瀏覽器都以自己特殊的方式處理表單元素 - 如果你想要的東西看起來一模一樣,我建議你嘗試Select2或類似的替換插件。

即使您的片段,例如,在Chrome OS X上10.8 <input>其實比<select>高,不會像你的截圖:

enter image description here

+0

我已經知道他們不會看起來完全一樣,但我確實認爲他們一直高。有趣的是,OS X中的選擇實際上更短。 –

+0

在Windows和Chrome瀏覽器中,Chrome和Firefox,以及Android/Chrome操作系統上的Chrome瀏覽器似乎都比Chrome123和Google Chrome瀏覽器中的「