2012-01-09 152 views
5

爲什麼Firefox不使用佔位符文本的填充。 看到這裏的例子http://jsfiddle.net/JfrfZ/Firefox輸入佔位符填充問題

如何解決它?

HTML

<form method="get" action="/search" id="search"> 
    <input name="q" type="text" size="40" placeholder="Search..." /> 
</form> 

CSS

#search input[type="text"] { 
      background: url(../img/search-icon.png) no-repeat 2.6% 50% #fcfcfc; 
       background-size: 6%; 
       border: 1px solid #d1d1d1; 
       font: normal 1.7em Arial,Helvetica,Sans-serif; 
       color: #bebebe; 
       width: 33%; 
       padding: 0.6% 2%; 
       border-radius: 3em; 
       text-shadow: 0 2px 3px rgba(0, 0, 0, 0.1); 
       box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) inset; 
       padding-left: 3.8%; 
       outline: 0; } 
+1

由於您使用的百分比作爲填充 - 這可以涉及:https://bugzilla.mozilla.org /show_bug.cgi?id=527459;) – madflow 2012-01-09 20:39:49

+0

百分比填充似乎不適用於Firefox的'input's。絕對值(例如px)正常工作。 – 0b10011 2012-01-09 20:40:09

+0

@madflow - 我在'em'中給出了填充,但仍然不起作用 – 2012-01-09 20:47:15

回答

4

可以使用text-indent

#search input[type="text"] { 
 
    background: url(../img/search-icon.png) no-repeat 2.6% 50% #fcfcfc; 
 
    background-size: 6%; 
 
    border: 1px solid #d1d1d1; 
 
    font: normal 1.7em Arial,Helvetica,Sans-serif; 
 
    color: #bebebe; 
 
    width: 33%; 
 
    padding: 0.6% 2%; 
 
    border-radius: 3em; 
 
    text-shadow: 0 2px 3px rgba(0, 0, 0, 0.1); 
 
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) inset; 
 
    padding-left: 3.8%; 
 
    outline: 0; 
 
    text-indent: 3.8% 
 
}
<form method="get" action="/search" id="search"> 
 
    <input name="q" type="text" size="40" placeholder="Search..." /> 
 
</form>

+0

我檢查你的榜樣,但鏈接它不起作用。 – 2012-01-09 20:43:37

+0

鏈接無效或解決方案無法正常工作?因爲對於我來說都是工作的。反正你可以把'text-indent:10%'放在你的CSS中,看看會發生什麼:) – 2012-01-09 20:44:46

+0

解決方案不起作用。在我的Firefox中仍然沒有從左邊的空間。 Firefox需要更多縮進。 – 2012-01-09 20:45:49

2

嘗試改變padding-left到:

text-indent:3.8%; 
+0

簡單,它的工作原理。 – Abram 2014-04-22 20:52:21

0

你只需要添加padding: 0.6% 2%;input { }