【发布时间】:2011-01-09 09:02:30
【问题描述】:
我正在使用 CSS3 边框半径在这个网站上创建圆形按钮:
但是,由于 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 中的字体高度不同,即使指定了 line-height 和 font-size 也是如此。我对涉及在按钮内手动定位字符的解决方案感到满意,但我已经尝试过,手动居中在一个操作系统上会对其他操作系统产生不利影响。
【问题讨论】:
-
一个音符,位置:固定; IE6 不支持。不过我不会关注这一点,因为使用您网站的人肯定会使用 Firefox 或 Safari(网络开发人员和图形艺术家)。
标签: fonts cross-platform cross-browser css