有没有办法在Safari中设置*默认*等宽字体?


11

我有一个使用浏览器默认等宽字体的Web应用程序。设置方式使用户可以自己选择。在Chrome中,此设置效果很好,因为可以轻松设置默认字体,但在Safari中,他们删除了该选项。

用户可以通过某种方式在Safari中设置默认字体吗?

Answers:


2

从Safari 12开始,已删除所有这样做的选项:

  • 外观面板消失了很久
  • defaults密钥不再受到尊重
  • CSS @font-face定义仅限于值的内置白名单local(),而忽略系统上安装的任何其他字体,这是一系列广泛的反指纹措施的一部分

综上所述,这意味着无法更改默认值,例如Times for serif,Helvetica for sans-serif和Courier for monospace


您仍然唯一能做的就是创建一个用户样式表来直接设置各种元素的样式。因此,例如,您可以将默认字体系列从更改serifsans-serif

body { font-family: sans-serif }

或者,您甚至还可以命名本地安装的特定非系统字体:

body { font-family: 'Open Sans' }

不幸的是,尽管这对于更改默认文档字体相当有效,但是使用相同的方法来重新设置默认为等宽字体的每个元素的样式非常复杂。我不确定CSS甚至完全可以完全模仿此类元素的默认行为-以前通过使用defaults或用户样式表中的@font-face规则可以轻松做到这一点monospace(该规则只需重新定义monospace含义,而无需触摸默认样式本身,因此允许将默认行为应用于该其他字体)。

我非常讨厌阅读Courier中设置的大量文本,因此将来看起来我将不得不使用其他浏览器来阅读RFC


感谢您的更新,亚里斯多德。尽管Lri的回答很好,但年龄还不够长,因此,我已经将支票移到您的回答中,以指导未来的访问者了解最新信息。
卡尔·史密斯

谢谢。是的,我使用Lri的答案已经好几年了;不幸的是,音乐现已停止。至少可以说,这令人遗憾,但这就是事实。
亚里斯多德·帕加尔齐斯

12

以下信息在发布时是正确的,但现在仅适用于Safari的过时版本。


没有用于更改默认字体和字体大小的偏好设置:

defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2StandardFontFamily Georgia
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DefaultFontSize 16
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2FixedFontFamily Menlo
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DefaultFixedFontSize 14

另一个选项是编辑定义默认样式的CSS文件(在Preferences> Advanced> Stylesheet中查看 ),添加如下所示的内容,例如:

@font-face {
   font-family: monospace;
   src: local('Menlo');
}

该规则使得使用任何元件font-family: monospace(以及类似的元件<pre><code>由默认),使用万络。只需将字体名称更改为您喜欢的字体名称(请注意保留引号)即可。


1
突然,它不通过字体簿安装在莫哈韦其他字体工作(10.14.2)
伊利亚Vassilevsky

参见亚里斯多德·帕加尔茨(Aristotle Pagaltzis)的新答案(上)。这不是好消息。
卡尔·史密斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.