1

JS を使用して新しいドキュメントを追加した後<link rel="stylesheet">、ブラウザーが新しいスタイルシートを要求してそのスタイルを適用することを期待していますが、IE 9 はそれを実行します。ただし、IE 9 はドキュメント内の他のスタイルの優先順位を尊重しません。後続のスタイル ブロックで。

blue.css次のようなスタイルシートがあるとします。

.box { background-color: blue; }

..そしてこのような文書..

<!DOCTYPE html>
<html>
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
    </script>
    <!--- The JS below inserts a stylesheet <link> here --->
    <style>.box { background-color: red; }</style>
  </head>
  <body>
    <div class="box">hello</div>
    <script>
      $(function(){
        $('<link rel="stylesheet" href="blue.css" type="text/css" />')
          .insertBefore($('style'));
      });
    </script>
  </body>
</html>

すべてが完了したら、IE 9 では青いボックスが表示され、FF 12 や Chrome 19 などの他のブラウザーでは赤いボックスが表示されます。

IEはここで怠けているだけですか?怠け者はいい言葉ですか?thisまたはthisのようなハックを使用して、IE にすべてのスタイルを再計算させる必要がありますか?

4

0 に答える 0