1

Internet Explorer の CSS ルールの制限を読んだ後、Internet Explorer は 31 のスタイル シートしかロードせず、各スタイル シートには 4095 未満のルールを含める必要があるようです。

他のブラウザや異なるバージョンにはこのようなルールがありますか? もしそうなら、それらは何ですか? また、スクリプトや HTML ページ サイズなど、他の同様のルールはありますか?

ありがとう

4

1 に答える 1

2

これは確かに時代遅れのメカニズムのように見えますが、真実です. それぞれ 1 つの css 属性を持つ 4500 のクラスを持つ 35 のスタイルシートを作成する非常に簡単なプログラムを作成しました。次に、簡単なスクリプトを使用して、これらのスタイルシートへのリンクを動的に作成しました。

$(document).ready(function() {
try
  {
    for(var i = 0; i<35; i++)
    {
        var el = document.createElement("link");
        el.type = "text/css";
        el.rel = "stylesheet";
        el.href = "style" + i + ".css";
        document.getElementsByTagName("head")[0].appendChild(el);
    }
  }
catch(e)
  {
      alert(e);
  }
});

これは Chrome と IE9 の両方で問題なく動作し、エラーはスローされません。次に、MSDN の createStyleSheet への参照を使用して IE9 で同じ数のシートをテストし、for ループ内のコードを次のように置き換えました。

document.createStyleSheet("style" + i + ".css");

確かにストレージ不足のエラーがスローされました。また、この関数は IE でのみ機能することにも注意してください。Chrome でこのスクリプトを実行しようとすると、「createStyleSheet」タイプの不明なオブジェクト エラーがスローされました。

コードの作業バージョンを次に示します: http://fluidev.com/cssMax/test.html

于 2012-10-02T02:52:47.030 に答える