本記事(記事カラム)には広告が含まれています。

StrategyTester.htm のこのコメント、CSSは本当に効いているのか?

ハッシュタグバナー
「#fxなぜ勝てない」人気ブログランキング「#FXで勝てない人」人気ブログランキング「#FXで負けている人」人気ブログランキング「#FXで損切できない人」人気ブログランキング
EAライフWeb技術
記事内に広告が含まれています。

MT4 の StrategyTester.htm を開いたとき、私はひとつの違和感を覚えました。

<style type="text/css" media="screen">
<!--
    td { font: 8pt Tahoma,Arial; }
    //-->
</style>

どう見てもコメントの中に CSS が入っています。 普通ならコメントの中身は無効になるはずです。 しかし、StrategyTester.htm の画面では、この CSS がしっかり効いています。

これは一体何がおきているのでしょうか。検証してみました。

結論:StrategyTester.htm では、このCSSは普通に効いています

まず、StrategyTester.htm の取引履歴テーブルは、 フォントが小さく整った形で表示されます。

これはまさにこの CSS の効果です。

td { font: 8pt Tahoma,Arial; }

つまり、コメントのように見えても、 StrategyTester.htm の中では CSS として解釈されています。

では、なぜこの書き方で CSS が効くのでしょうか。

StrategyTester.htm が「古いIE互換HTML」で作られているからです

StrategyTester.htm は、MT4 が 2005 年頃に設計したテンプレートで、 内部構造は IE6 時代の HTML仕様(MSHTML互換HTML) を前提にしています。

そのため、次のような古い構文がそのまま残っています。

  • <!-- ... //-->(IE専用CSSハック)
  • mso-number-format:(Excel+MSHTML専用)
  • <body topmargin=1>(IE独自属性)
  • Shift‑JIS 固定(IE文化)

これらは MSHTML(IEのレンダリングエンジン)で正しく動く仕様です。

StrategyTester.htm はこの古い仕様を前提に作られているため、 コメントに見える CSS が今でも機能しているわけです。

具体的にどう動いているのか

● 古いブラウザ(IE以前)

<!-- ... //--> をコメントとして扱い、CSSを無視します。

● IE(MSHTML)

<!-- と //--> を無視し、 中身を CSS として解釈します。

● 現代ブラウザ(Chrome、Firefox、Edge)

互換性維持のために、 <!-- や //--> を無視して CSS を解釈します。

つまり、StrategyTester.htm の中では、

コメントに見えても、実際には CSS として機能する。

という挙動になります。

まとめ

結論
  • コメントに見えるが、StrategyTester.htm では CSS として解釈される
  • 理由はテンプレートが IE6 時代の MSHTML互換仕様で作られているため
  • 現代ブラウザでも互換性のために動作する
  • 将来サポートが打ち切られる可能性はあるが、現時点では問題なし

StrategyTester.htm は、現代のWebとは違う歴史的背景を背負ったテンプレートです。 そのため、こうした「古いけれど今も動く」構文が残っているのです。