Internet Explorer の CSS ルールの制限を読んだ後、Internet Explorer は 31 のスタイル シートしかロードせず、各スタイル シートには 4095 未満のルールを含める必要があるようです。
他のブラウザや異なるバージョンにはこのようなルールがありますか? もしそうなら、それらは何ですか? また、スクリプトや HTML ページ サイズなど、他の同様のルールはありますか?
ありがとう
Internet Explorer の CSS ルールの制限を読んだ後、Internet Explorer は 31 のスタイル シートしかロードせず、各スタイル シートには 4095 未満のルールを含める必要があるようです。
他のブラウザや異なるバージョンにはこのようなルールがありますか? もしそうなら、それらは何ですか? また、スクリプトや HTML ページ サイズなど、他の同様のルールはありますか?
ありがとう
これは確かに時代遅れのメカニズムのように見えますが、真実です. それぞれ 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