fonts - 如何让单个字符在所有浏览器和操作系统中都居中?

标签 fonts cross-platform cross-browser css

我正在使用 CSS3 border-radius 在此网站上创建圆形按钮:

http://hexpreview.com/

但是,由于 Mac 和 Windows 之间(而非浏览器之间)的字体呈现差异,按钮文本在其边界圆内的居中不一致。按钮在 Windows 中所有支持 CSS3 的浏览器中都能正确呈现,但在 OS X 或 Linux 中却不能。

这里是一些更简单的代码,在某种程度上重现了这个问题:

<html>
<head>
<title>Rounded Buttons Example</title>
<style type='text/css'>
    div {padding:1em; margin:1em}
    a {text-decoration:none; color:#000;}
    #help_link, #add_link {
        display:block;
        height: 1.4em;
        width: 1.4em;
        text-align:center;
        line-height: 1.4;
        font-size:1.5em;
        padding:0;
        border:.1em solid #000;
        -moz-border-radius:.8em;
        -webkit-border-radius:.8em;
        border-radius:.8em;
    }

    #help_link:hover, #add_link:hover {
        border-width:.15em;
        margin:-.05em;
        -moz-border-radius:.85em;
        -webkit-border-radius:.85em;
        border-radius:.85em;
    }

</style>
</head>
<body>
<div>
    <a id='help_link' href='#'>?</a>
</div>
<div>
    <a id='add_link' href='#'>+</a>
</div>
</body>
</html>

我已经为此苦苦挣扎了一段时间,现在开始变得一团糟。如果这是与 CSS3 规范相关的问题,我可能会放手,但在我看来,这是一个跨浏览器的字体问题(居中在方形按钮中也不起作用)。有什么想法吗?

编辑

我想澄清一下,我希望按钮位于圆形边框的正中心。主要问题是垂直居中,因为即使指定了行高和字体大小,OS X 和 Windows 中的字体高度也不同。我可以接受涉及在按钮内手动定位 Angular 色的解决方案,但我已经尝试过,手动以一个操作系统为中心会对其他操作系统产生不利影响。

最佳答案

我发现了问题。原始页面中的字体声明为“Helvetica, sans-serif”。 Windows 没有 Helvetica,所以它用 Arial 呈现。所有 Mac 浏览器都在 Helvetica 中呈现,因此存在呈现问题。更改为“Arial, sans-serif”可解决此问题。

关于fonts - 如何让单个字符在所有浏览器和操作系统中都居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2137126/

相关文章:

asp.net - 如何让网站设计更加灵活

css - 在网络上,我应该使用什么字体来创建等效的跨平台体验?

java - jasperreports - pdf 字体粗体仅显示普通字体

css - 如何在 WordPress 中更改从右到左语言的字体

WPF 与 Silverlight 3.0

c++ - 如何使用 CMake 在 Windows 上将 C++ 应用程序入口点设置为 main()?

c++ - C/C++ - 查询依赖于平台的换行符(用于内存映射文件)

html - 如何使用 Safari 实现干净的文本选择?

pdf - 将True Type字体完全嵌入到PDF中

html - float 在 IE7 中导致行与行之间出现不需要的空格