You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用insertRule()添加CSSStyleSheet后style元素为空,如何显示@font-face规则?

解决方法

你直接修改styleElement的文本内容即可,无需通过sheet.insertRule,这样规则就会直接显示在<style>标签内部:

const styleElement = document.createElement('style');
document.head.appendChild(styleElement);

const rule = `@font-face {
  font-family: '${fontIdentifier}';
  src: url('${font.url}');
}`;

// 直接设置style元素的文本内容
styleElement.textContent = rule;

console.log(styleElement); // 此时能看到@font-face规则已显示在<style>标签中

如果一定要使用sheet.insertRule方法,需要注意:这种方式添加的规则会生效,但浏览器不会将其同步到styleElement的innerHTML或textContent中(属于浏览器内部样式表的处理机制),所以你看不到标签内的规则文本,但样式依然正常工作。如果核心需求是让规则显示在<style>标签里,直接设置文本内容是最直接的方案。

内容的提问来源于stack exchange,提问作者pailhead

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:52:09