WKWebView 和动态类型 + 自定义字体

WKWebView and Dynamic Type + Custom Fonts

我无法让 WKWebView 同时使用自定义字体和动态类型,但它是分开工作的。

我对这部分的 CSS 非常简单:

body {
    font-family: 'MyCustomFont';
    font-size: 15px;
}

为了允许动态类型,我将其更改为:

body {
    font-family: 'MyCustomFont';
    font: -apple-system-body;
}

我有一个观察者监听通知 UIContentSizeCategory.didChangeNotification 以重新加载 webview,它会优雅地更改字体大小,但使用系统字体,而不是自定义字体。

知道如何同时使用这两种东西吗?

font shorthand property 覆盖了您的 font-family 属性,只将系统字体应用于您的选择器。

您不能为同一个选择器同时使用两种字体,但您可以尝试使用系统字体作为备用字体,如下所示:

font-family: 'MyCustomFont', -apple-system-body;

虽然我不确定这是否是您要找的答案...

我终于设法解决了,只需将此块添加到 CSS

html {
    font: -apple-system-body;
}    

然后像这样离开 body,没有 font-size:

body {
    font-family: 'MyCustomFont';
}

有了这个,两样东西都会起作用。