【发布时间】:2015-03-28 00:51:20
【问题描述】:
问题
我正在尝试使用大字体大小的跨浏览器将字母垂直居中。看起来更困难,因为我尝试过的每一种方法(行高,显示:表格单元,转换:翻译......)都因大字体大小而失败。该问题仅存在于 OS X 中。
我已经尝试解决这个问题已经有一段时间了,这里有一个仅适用于 Safari 的解决方案:
div {
width: 200px;
height: 200px;
background: #2b2b2b;
text-align: center;
line-height: 200px;
color: #fff;
font-family: helvetica, arial, sans-serif;
font-size: 200px;
}
<div>O</div>
这是带有代码的Codepen。
这是 OS X 10.10 的结果屏幕截图,同时支持 Safari、Chrome 和 Firefox:
更新
经过数小时的广泛测试,我设法确定了问题的根源,即字体家族 helvetica。在 Windows 上,字体系列不存在,因此加载的字体只有 arial 或 sans-serif。在 OS X helvetica 上存在,但字体系列在三个浏览器中不同。当我删除字体系列时,字母与行高正确垂直对齐。但是现在,我很想知道为什么会出现这个错误。
这是一个带有新代码的代码笔:link
div {
width: 200px;
height: 200px;
background: #2b2b2b;
text-align: center;
line-height: 200px;
color: #fff;
font-family: arial, sans-serif;
font-size: 200px;
}
<div>O</div>
【问题讨论】:
-
刚刚查看了 Crome 和 FireFox(Windows 机器),但两者显示相同且对齐正确。
-
您好,首先感谢您上传图片。我刚刚编辑了这个问题:我在 XP 的虚拟机上进行了查找,看起来很好,但在 mac OS X 上描述了问题。
-
对我也有好处(FF 35.0.1 W7x64)
-
在我的 windows 7 chrome 上没问题。
标签: html css macos cross-browser vertical-alignment