1 回答
TA贡献1757条经验 获得超8个赞
我不知道你为什么在选项 2 中说“用户生成的 css”。它不会是用户生成的 css。您将自己生成此 css。比这更好的是,您可以从自己的 API 调用字体,因此用户与另一个用户之间的 css 的唯一区别是您可以保护的一些参数。
@font-face 允许您在属性中为字体指定任何名称font-family
。您可以为您的字体系列创建名称模式,并动态为您的元素提供这些字体名称。
function changeFont() {
// dynamic number. Create your own logic to generate this number
const i = 123;
// put your API path to the dinamic font file. I'm using a demo font
const fontsource = "https://fonts.gstatic.com/s/robotoslab/v11/BngbUXZYTXPIvIBgJJSb6s3BzlRRfKOFbvjoa4Omb2Rm.ttf";
const style = document.createElement('style');
style.innerHTML = `
@font-face {
font-family: customfont${i};
src: url(${fontsource});
}
`;
document.head.appendChild(style);
const p = document.getElementById('text');
p.style.fontFamily = 'customfont' + i;
}
<p id="text">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
<button onclick="changeFont()">Click me</button>
- 1 回答
- 0 关注
- 83 浏览
添加回答
举报