中学理科1629033 views
ヒストリア287936 views
りんご203078 views
数学講師2873614 views
中学数学622753 views
中学社会667895 views
Computer366970 views
高校倫理1437640 views
小学算数1198604 views
世界の国562865 views

@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を利用して表示される。フォントの定義がカプセル化の対象外であり、ドキュメント全体で共有されるリソースであるため。