5

CSS 有一个@font-face规则允许我们“使用”自定义字体。

JavaScript 有这个功能吗?

更具体地说,是否可以在不使用 CSS@font-face规则的情况下“使用”自定义字体?

4

5 回答 5

4

如果您知道 CSS,您可以使用它document.write来动态附加样式表......我想这会算作使用 CSS,但它会起作用

于 2011-04-07T22:31:22.063 回答
3

除了使用@font-face规则外,没有其他方法可以使浏览器从网络加载字体。如果您使用CSS Object Model ,理论上您可以从 JavaScript创建该@font-face规则而无需使用document.write(或等) ;但目前我不会指望它在任何浏览器中实现。document.createElement("style")

于 2011-04-07T23:21:23.667 回答
1

不,没有。Javascript 可以操作 DOM,但它不关心格式。

于 2011-04-07T23:10:25.297 回答
0

是的你可以:

document.body.style.fontFamily = '...';

这是一个小提琴:http: //jsfiddle.net/maniator/QMZ8N/

这只会向元素添加预定义的字体。

这不会页面添加字体样式。为此,您可能必须使用 CSS

于 2011-04-07T20:17:11.907 回答
0

有一项实验性技术“CSS Font Loading API”允许在 javascript 中加载和使用字体。目前在 chrome 和 firefox 工作。

fetch('/static/media/ProximaNova-Regular.otf')
        .then(resp => resp.arrayBuffer())
        .then(font => {
            const fontFace = new FontFace('Proxima-Nova', font);
            document.fonts.add(fontFace);
            document.body.style.fontFamily = '"Proxima-Nova", Arial';
        })
于 2019-04-11T07:54:57.927 回答