【发布时间】:2011-12-07 18:46:24
【问题描述】:
搜索框中的光标在 Firefox 中显示太靠左,但在 Chrome 和 Safari 中看起来不错。 CSS 使用Modernizr 在可能的情况下显示边界半径,因此问题与提供普通方形框的 IE 无关。
这是 HTML:
<form action="/search-results/" id="search" role="search">
<input type="search" placeholder="Search this site here" name="q" results=5 id="q" autocomplete="off" size="31"/>
</form>
CSS如下:
input::-webkit-input-placeholder {
color: #999;
}
input:-moz-placeholder {
color: #999;
显示占位符和
.borderradius #search input#q {
width: 180px;
height: 20px;
font: 11px "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
margin: 0;
padding: 0;
background: #fcfcfc;
border: 1px solid #d1d1d1;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
text-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) inset;
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) inset;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) inset;
-webkit-transition: all 0.7s ease 0s;
-moz-transition: all 0.7s ease 0s;
-o-transition: all 0.7s ease 0s;
transition: all 0.7s ease 0s;
}
.no-borderradius #search input#q {
border: 1px solid #ccc;
background: #eee;
font: inherit;
width: 170px;
height: 20px;
padding: 0 0 0 8px
}
设置框的样式。
我还添加了这个:
/* Remove default input type="search styling */
input[type="search"] {
-webkit-appearance: textfield; /* You could also use none */
}
(我在this article 中看到)具有移除 Webkit 搜索框的“强制”样式的效果——这意味着它可以在 Mozilla 中以正确的样式一致地呈现。
在输入标签中添加results=5attribute,虽然目前没有验证,但在Webkit中显示一个放大镜。
以上代码也可以在my site在线查看。
搜索框显示如下:
Safari
铬
火狐
Firefox 不显示放大镜,但没关系。另一方面,虽然调整框上的边距和/或填充可以纠正错误的(太左)Firefox 光标显示,但这样做的代价是在 Webkit 浏览器中将其推得太右(不可接受)。在这种情况下,我还没有找到只针对 Mozilla 的方法。欢迎任何建议...
【问题讨论】: