html - 垂直对齐一些字体

标签 html css fonts cross-platform

有些字体有问题。例如 Neo Sans W1G。在不同的平台上,它们有不同的垂直对齐方式。 在 Linux 和 Mac OS 上字体上升到顶部,但在 Windows 上它看起来不错。我在浏览器 chrome、safari 和 firefox 上进行测试。 也许其他人遇到过这个问题?

font-size: 48px;
line-height: 50px;

截图 http://imglink.ru/show-image.php?id=76735ce51bbdb8b7a11f4378c2e667c8

最佳答案

这是由字体格式历史和 Microsoft/Apple/Adobe 格式大战引起的,不同的字体格式包含不同的元数据字段来计算行高,并且通过允许在以后的格式中声明所有这些来“修复”这种情况。 (不同的元数据=具有不同定义的不同字段,而不是具有不同名称的相同字段)

基本上,只要字体中存在相应的元数据,任何软件都可以选择任何一种行高计算算法。除非字体创建者对他放入元数据中的值非常小心,否则所有算法都不会产生相同的值。大多数字体创作工具将尝试填充所有可能的元数据变体,以便在尽可能多的平台上“工作”。他们依靠字体作者来检查他们在发布前放在那里的值。由于大多数字体创建者仅测试特定平台,因此当您尝试在跨平台上下文中使用他们的字体时会发生奇怪的事情。

同样,根据其原始平台,出于遗留兼容性原因,应用程序会优先选择一种算法而不是其他算法。

一些 webfont 平台建议“修复”遗留字体,但您需要有许可证才能修改字体文件。

IIRC 排版 CSS 工作组希望用一种新的统一算法替换所有这些,我认为他们还没有完成,什么时候完成我不确定它是否真的会替换遗留方法而不是添加一个混合的可能性。

最好不要让您的设计依赖于此处的确切值。

关于html - 垂直对齐一些字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26716405/

相关文章:

javascript - 检查div是否有Elements和没有某些Elements

javascript - 使用 JavaScript 从页面中删除 div

javascript - Json 文件 curl php javascript

fonts - Inconsolata 字体在 VS 2013 中显示不正常

css - 字体加载不正确

javascript - 文件类型 "Required"不适用于 iPhone?

html - Visual Studio 2010 中没有 HTML 页面的新窗口?

c# - 无法从代码隐藏中调用 JS 函数

html - 在多个局部 View 中使用单个共享元素

html - CSS font-family 不同顺序