2013-10-24 62 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