如何在 CSS 中应用默认 OS 系统的“中等”字体

Posted

技术标签:

【中文标题】如何在 CSS 中应用默认 OS 系统的“中等”字体【英文标题】:How to apply the default OS system's "medium" font in CSS 【发布时间】:2015-10-14 07:55:18 【问题描述】:

我正在尝试使用 CSS 在各种操作系统上显示默认系统“中”(或“半粗”,如果您愿意)字体,例如:

在窗口上:Segoe UI 半粗体 在 android 上:Roboto Medium 在 ios 上:...有吗?

我尝试过使用:

font-family: Segoe UI, -apple-system, sans-serif;
font-weight: 600;

但我得到的字体比 Android 上的 Roboto Medium 更胖。

如果我改用这个:

font-family: Segoe UI, -apple-system, sans-serif-medium, sans-serif;
font-weight: 600;

我在 Android 上获得了比普通 Roboto Medium 字体更粗的字体。

最好的跨操作系统解决方案是什么?请注意,如果“中等”字体不可用,我想回退到比普通字体更粗的字体(因此字体粗细:600)。该解决方案至少需要在 Windows、iOS 和 Android 上运行,并且可以优雅地回退到其他地方。

【问题讨论】:

【参考方案1】:

我认为,如果您想实现这一点,您需要检查哪个操作系统正在调用您的网站。因此,检查您的用户代理是实现特定操作系统的一种方法。

我会推荐你​​使用这个 JS 代码:

var doc = document.documentElement;
doc.setAttribute('data-useragent', navigator.userAgent);

然后在你的 CSS 中你会有这样的东西:

html[data-useragent*='Mac OS X'] 
  font-family: "Segoe UI", sans-serif;
  font-weight: 600;


html[data-useragent*='Android'] 
  font-family: "Roboto Medium", sans-serif; 
  font-weight: 600;

我会说 iOS 的默认字体是:Lucida Grande。但我不确定,所以也许你可以搜索一下

【讨论】:

【参考方案2】:

您是否考虑过使用来自 Google Fonts 的中等粗细的免费 Roboto 字体?它的支持非常好,您可以将它的权重全局设置为 600,使其在大量设备上看起来一致。

但请注意,对于不支持 svg/woff/ttf 字体的设备(幸好目前使用的字体不多),您将无法使用这种字体并且必须选择备用字体.

【讨论】:

以上是关于如何在 CSS 中应用默认 OS 系统的“中等”字体的主要内容,如果未能解决你的问题,请参考以下文章

设置默认启动 OS

在默认的 Xcode OS X 应用程序模板中,File's Owner == NSApplication?

Swift:OSLog / os_log未显示在控制台应用中

历史回顾:微软当年如何让IE成为Mac OS X默认浏览器的?

复制 OS 磁盘后如何在 Azure ASM 中保留/设置默认管理员密码

白鹭的资料100字?