2013-10-24 139 views
15

我在我的應用程序中有一個下拉列表,爲了居中它,我必須在Mozilla Firefox上添加padding-top 10px,但在谷歌瀏覽器上它不需要填充。我如何定位選擇列表來設置特定的瀏覽器。我希望我能做到以下幾點:Firefox瀏覽器特定的CSS填充

select { 
    -moz-padding-top: 10px; 
    -webkit-padding-top: 0px; 
} 

任何想法,我怎麼能得到這個?問題小提琴如下圖所示,如果你檢查這在Chrome中,然後火狐,我想它使文本始終是在中間

http://jsfiddle.net/uHDa6/

+0

填充是普遍的:P ...如果你需要它在Firefox中,但不是在鉻的問題是與另一個元素或屬性,請提供一些代碼或FIDDLE – DaniP

+0

小提琴添加到問題 – Jay

+3

+1的問題。我喜歡挑戰。但下一次,請描述_problem_(即firefox垂直不同,而vertical-align不做任何事情),而不是你如何試圖破解它。 –

回答

30

回答你的問題是:是的,這可能把Mozilla-樣式表中特定的CSS。 (不爲內嵌樣式屬性。)
在這種情況下,你會寫

@-moz-document url-prefix() { 
    select {padding-top:10px;} 
} 

這簡直是@document規則的Mozilla的前綴版本,即不被其他瀏覽器的認可。

但是,實際解決不匹配文本位置問題的方法是不設置高度,而只設置選區的填充。沒有黑客。

style="font-size: 14px; padding: 11px 0 11px 5px;" 

這對所有瀏覽器都有所期望的效果。見new fiddle

+0

謝謝李斯特先生填充獨自能夠解決我曾嘗試過,但由於高度設置搞亂了所以歡呼聲。 – Jay

+0

這正是我需要解決類似問題的方法。 Firefox顯示的Arial字體略窄於Chrome和IE,所以爲了保持適當的菜單項寬度,我不得不爲Firefox添加自定義填充。這個伎倆。謝謝! – DiMono