【发布时间】:2020-04-16 17:03:20
【问题描述】:
在我的应用中,我允许用户上传各种格式的自定义字体(如 ttf、otf 等)。
这些文件存储在服务器上,可通过简单的 GET 请求访问。
我建立了一个选择,其中包含这些字体,在选择时,一些元素的字体应该更改为该字体。
我应该如何改变元素的样式? 据我所知有两种方法:
遍历自定义字体并通过链接元素包含该字体。 但是,这种方法存在缺陷,因为我无法可靠地检测字体系列名称,因此我无法设置要设置样式的元素的字体系列样式。
使用 @font-face 注入 css 规则。 这种方法可行,但它存在一定的安全漏洞,因为我会将用户生成的 css 注入浏览器。
我使用 vuejs,所以我可以安全地将 css 附加到单个元素,但据我所知,@font-face 不能通过在每个元素处重新定义它来工作。是否有一些像 font: url(src) 这样的属性可以用来做这个?
提前致谢
【问题讨论】:
标签: javascript html css