为什么Firefox没有为占位符文本添加填充。 请参阅此处示例http://jsfiddle.net/JfrfZ/
如何解决?
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; }
答案 0 :(得分:8)
您需要使用the ::-moz-placeholder
psuedo-element(以前为:moz-placeholder
)。
#search input::-moz-placeholder {
padding: <top> <right> <bottom> <left>;
}
曾经有a bug in Firefox that prevented padding from working on text inputs。因此,如果您需要使用百分比,text-indent
是可行的方法。
#search input:-moz-placeholder {
text-indent: 3.8%;
}
但该错误已在2012-08-28修复,并包含在Firefox 17中。不再需要使用text-indent
。
答案 1 :(得分: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>
答案 2 :(得分:3)
尝试将padding-left
更改为:
text-indent:3.8%;
答案 3 :(得分:0)
您只需将padding: 0.6% 2%;
添加到input { }