高校倫理1433840 views
LaTeX957673 views
中学英語809046 views
中学理科1626729 views
世界の国560930 views
英語608453 views
MathPython492025 views
高校国語785873 views
小学社会308762 views
りんご194232 views
Help
Tools

English

@font-face で定義されたフォントは Shadow DOM で利用可能

@font-faceルールで定義されたカスタムフォントは、CSSOM(CSS Object Model)ツリーに登録される。

CSSOMツリーはグローバルなスコープを持つため、ドキュメント全体で利用可能。

<style>
  @font-face {
    font-family: 'MyCustomFont';
    src: url('mycustomfont.woff2') format('woff2');
  }
</style>

<div id="host"></div>

<script>
  const host = document.getElementById('host');
  const shadowRoot = host.attachShadow({ mode: 'open' });
  shadowRoot.innerHTML = `
    <style>
      p {
        font-family: 'MyCustomFont', sans-serif;
      }
    </style>
    <p>このテキストはカスタムフォントで表示されます。</p>
  `;
</script>

Shadow DOM内のp要素は、グローバルに定義されたMyCustomFontを利用して表示される。フォントの定義がカプセル化の対象外であり、ドキュメント全体で共有されるリソースであるため。