1. ホーム
  2. html

[解決済み] <script>タグはいつ表示されるべきなのか、またなぜ表示できるのか?

2022-05-14 23:27:38

質問

A script という要素があり、それが display:block が表示されます。なぜそれが可能で、それが望まれる実際のユースケースがあるのでしょうか?

td > * {
  display: block;
}
<table>
  <tr>
    <td>
      <script type="text/javascript">
        var test = 1;
      </script>von 1
    </td>
  </tr>
</table>

どのように解決するのですか?

HTML5の仕様 はスタイルシートを定義しています。 を定義しており、ユーザーエージェント(ブラウザなど)が使用することが期待されています。 第10.3.1節 は、"Hidden elements"のためのスタイルをリストアップしています。

@namespace url(http://www.w3.org/1999/xhtml);

[hidden], area, base, basefont, datalist, head, link,
meta, noembed, noframes, param, rp, script, source, style, template, track, title {
  display: none;
}

embed[hidden] { display: inline; height: 0; width: 0; }

見ての通り、適用される display: none;script .

これは、ユーザーと隠されたユーザーとの間の唯一の障壁です。 script 要素との間の唯一の障壁です。 これは完全に問題なく、著者スタイルシート内で(もちろんユーザースタイルシート内でも)ユーザーエージェントスタイルシートからスタイルを上書きできるように意図されています。

なぜそれを使いたいのでしょうか? 一つの使用例として のような文字をエスケープすることなくコンテンツを表示することです。 < / > と同じように、古い xmp 要素に似ています。また script 要素はスクリプトだけでなく データブロックにも使えます。 (すなわち、MIME タイプを持つすべてのもの) にも使用できます。