javascript - Shadow DOM 导入行为

标签 javascript html css shadow-dom

我正在学习 ShadowDOM 并面临这个奇怪的导入问题。如果没有 shadowDOM,我的图标会出现在屏幕上,但在 shadowDOM 内部它会显示为框。我不确定我做错了什么。请指导我。

这有效。

<style>
    @import url("https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css");
</style>

<i class="fa fa-arrow-left" aria-hidden="true"></i>

这不是。

<div id="root">root</div>

<script>
    let root = document.getElementById('root').createShadowRoot();
    root.innerHTML = `
        <style>
            @import url("https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css");
        </style>

        <i class="fa fa-arrow-left" aria-hidden="true"></i>
    `;
</script>

最佳答案

要定义导入的字体,您必须在主文档标题中包含 CSS 文件:

<link rel="stylesheet" href="font-awesome.css">

请参阅 this answer on SO 中的工作示例.

关于javascript - Shadow DOM 导入行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40007705/

相关文章:

javascript - 保存模型时 Backbone 1.2 发出的 Json 无效?

javascript - 鼠标滚轮的水平滚动按钮

javascript - 有没有办法从 NativeScript 应用程序通过 SSL 与 WebSocket 通信?

html - CSS table nth child() last td 不显示边框

html - 在可滚动的 div 中绝对定位页脚

javascript - jQuery - 观察元素高度变化

html - Bootstrap 悬停移动所有链接

javascript - 如何为 Twitter Bootstrap 添加覆盖到视差部分

html - 如何在 html 中的图标上显示简单的工具提示?

javascript - Bootstrap 列没有并排出现并且宽度都相同