gpt4 book ai didi

html - 文本在提交按钮中的位置

转载 作者:技术小花猫 更新时间:2023-10-29 12:12:29 26 4
gpt4 key购买 nike

文本在 my blog 上搜索提交按钮上的位置在 Firefox 4 中非常低,但在 Chrome 10 或 IE9 中则不然。我几乎尝试了所有方法,但除了降低文本的字体大小外没有任何效果,这不是最佳解决方案,因为文本会太小。

截图

Windows 7 上的 Firefox 4:

Firefox 4 screenshot

Windows 7 上的谷歌浏览器 10.0.648.204:

Google Chrome screenshot

相关的 HTML:

<form method="get" class="searchform" action="http://eligrey.com/blog"> 
<input type="search" placeholder="search" name="s" />
<input type="submit" value="&#128269;" title="Search" />
</form>

相关的 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;
}

rfhb-lpmg 只是我制作的自定义字体,它实现了 U+2767 旋转花卉心形子弹和 U+1F50E 右指放大镜,带有简单的字形。

最佳答案

我推断主要的问题是 line-height 属性。

两种浏览器都试图将按钮上的所有文本垂直居中。然而,结合 height 属性,如果没有足够的空间来呈现完整的标准行高(字形填充随着字体大小变得相当大),两种浏览器都会将字形固定到按钮的顶部,修剪底部。

通常,line-height 会帮助调整这一点,在 Chrome 中,在您的示例中,这是成功的。然而,对于 buttoninput type="submit" 元素,Firefox 完全忽略了 line-height,所以它不能以这种方式用于“固定” Angular 色的定位。使用下面的极端示例,我们可以看到文本在 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>

火狐:FirefoxChrome:Chrome

当一个按钮元素保留为原生样式(移除 border)时,line-height 会被两种浏览器忽略(奇怪的是,Chrome 也会忽略高度但Firefox 没有)。一旦按钮被自定义样式,Chrome 就会选择 line-height 但 Firefox 不会。


那你能做什么?

如果你还想使用 CSS 字体......

  1. 首先,确保您的字体以与标准字体显示基本全高字符(如 H)相同的垂直对齐方式呈现字形。 (看来您已经完成了大部分工作,因为您的页面看起来比问题中的屏幕截图好得多。)
  2. 其次,您会注意到,如果您使用像 Arial 这样的字体,并显示一个 H(以相同的字体大小),它也会很低。这是因为字体的内置标准行高 使其在字符上方有相当大的空间。这表明如果您可以编辑字体以修剪它,从而为字符提供足够的空间,使其不会在底部被浏览器修剪,您可能会取得一些成功。
  3. 对您来说可能不太理想,但仍然是一个选择,您可以使用其他元素,结合或代替 button/submit 元素,使 Angular 色就位。<

备选方案

我不确定您使用 CSS 字体的目的是什么,但通常是为了某种形式的渐进增强/优雅降级。在这种情况下,虽然(正如您在评论中所说)特殊字符是标准化的 Unicode“右指放大镜”,但如果它不呈现,它对用户仍然没有任何意义。

鉴于优雅降级的好处是允许更简单的技术来显示您的网站而不会出现破损,使用这个字符似乎值得怀疑 - 如果没有 CSS 字体或带有此字符的 native 字体,它将呈现为 🔍 ?,或者只是一个空白框。

考虑到这个问题,优雅降级的更好选择是简单地使用background-image。制作“搜索”按钮的文本,隐藏文本(通过 CSS),并应用背景图像,然后您将实际优雅地降级,并为更好的浏览器提供一个花哨的字符。

背景图像还可以(显然取决于文件本身)还有其他好处,例如更快的加载和渲染时间(例如,如果开发人员想要使用完整的单个字符-字符集字体)。

关于html - 文本在提交按钮中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5599343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com