我的博客上的搜索提交按钮上的文本位置在Firefox 4中非常低,但不是Chrome 10或IE9.我已经尝试了几乎所有的东西,除了降低文本的字体大小之外什么也没有用,这不是最佳解决方案,因为文本太小了.
Windows 7上的Firefox 4:
Windows 7上的Google Chrome 10.0.648.204:
相关的HTML:
<form method="get" class="searchform" action="http://eligrey.com/blog">
<input type="search" placeholder="search" name="s" />
<input type="submit" value="🔍" title="Search" />
</form>
Run Code Online (Sandbox Code Playgroud)
相关的CSS规则(来自http://eligrey.com/blog/wp-content/themes/eligrey.com/style.css):
.searchform input[type="submit"] {
font-family: "rfhb-lpmg";
color: #ccc;
font-size: 3em;
background-color: #959595;
text-align: center;
border: 1px solid #888;
height: 34px;
width: 42px;
line-height: 34px;
-webkit-border-bottom-right-radius: 4px;
-webkit-border-top-right-radius: 4px;
-moz-border-radius-bottomright: 4px;
-moz-border-radius-topright: 4px;
border-bottom-right-radius: 4px;
border-top-right-radius: 4px;
-webkit-background-clip: padding-box;
-moz-background-clip: padding-box;
background-clip: padding-box;
-webkit-transition-property: border, background-color, box-shadow;
-webkit-transition-duration: 0.2s;
-moz-transition-property: border, background-color, box-shadow;
-moz-transition-duration: 0.2s;
}
Run Code Online (Sandbox Code Playgroud)
rfhb-lpmg只是我制作的一个自定义字体,它实现了U + 2767旋转花心心和U + 1F50E右指向放大镜,带有简单的字形.
Nic*_*ole 37
我推断出主要的麻烦是line-height
财产.
两种浏览器都试图垂直居中按钮上的所有文本.在与组合height
属性,但是,如果没有足够的空间来呈现完整的标准行高(字形填充显得相当大的大字体大小),这两个浏览器将针字形到按钮的顶部,修剪底部.
通常情况下,这line-height
会有助于调整此功能,而在Chrome中,在您的示例中,这是成功的.但是,在button
和input type="submit"
元素的情况下,Firefox 完全忽略行高,因此不能以这种方式使用它来"修复"字符的位置.使用下面的极端示例,我们可以看到Chrome中的文本已被推出可见性,而它仍然保留在Firefox的(垂直)中心.
<!doctype html>
<html>
<body>
<style type="text/css">
input {
border:1px solid black;
line-height:1000px;
height:40px;
}
</style>
<input type="submit" value="Test"/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Firefox:
Chrome:
当一个按钮元素留给本机样式(删除border
)时,line-height
两个浏览器都会忽略(奇怪的是,Chrome也忽略了高度,但Firefox没有).只要按钮是自定义样式,Chrome就会选择,line-height
但Firefox不会.
所以,你可以做什么?
如果你还想使用CSS字体......
H
.(看起来你已经完成了大部分工作,因为你的页面看起来比问题中的截图要好得多.)button/submit
元素,以使角色到位.替代选择
我不确定你使用CSS字体的目标是什么,但通常是用于某种形式的渐进增强/优雅降级.在这种情况下,虽然(如你在评论中所说)特殊字符是标准化的Unicode"右指向放大镜",但如果它不呈现,它对用户仍然没有任何意义.
鉴于优雅降级的好处是允许更简单的技术显示您的网站而不会出现损坏,使用此字符似乎是可疑的 - 如果没有CSS字体或具有此字符的本机字体,它将呈现为?a ?
,或者只是空白框.
考虑到这个问题,优雅降级的更好选择是简单地使用背景图像.制作"搜索"按钮的文本,隐藏文本(通过CSS),然后应用背景图像,然后实际优雅降级,以及更好的浏览器的奇特角色.
背景图像也可以(显然取决于文件本身)具有其他好处,例如更快的加载和渲染时间(例如,如果开发人员想要使用全字符集字体中的单个字符).
FF4在输入元素上设置自己的样式.如果将其粘贴到URL字段中,则可以检查所有这些内容:
resource://gre-resources/forms.css
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用Firebug instaled检查从样式选项卡下拉列表中显示用户代理CSS,则可以看到此样式.
在此处检查解决方案:如何在Firefox 4 +中重置默认按钮样式
归档时间: |
|
查看次数: |
34866 次 |
最近记录: |