1

何らかの理由で、ユーザーがコントロール パネルからディスプレイを 125% に設定している場合、IE9 は次のように要素にインラインで余分な幅を追加します。

<div class="container" id="main" style="width: 1500px">
<!-- Code goes here-->
</div>

上記のインライン スタイル (幅あり) は IE9 で追加されたものです。IE8 にはこの問題はなく、Windows のディスプレイ設定を 125% に設定すると確実に発生します。Chrome と Firefox は、余分なスタイルがなくても適切に表示されます。誰かがこれに対する回避策や修正を持っているとは思いませんか? ユーザーの設定を制御することはできませんが、他のサイトが適切にレンダリングされるのを見てきました。

4

2 に答える 2

1

わかりましたので、条件付きコメントと少しのjQueryでこれを解決しました:

<!--[if IE 9]>
  <script type="text/javascript">
      window.onload = function () {
        if ( $('#main').attr('style') !== 'undefined' ) {
          $('#main').removeAttr('style');
        }
      }
  </script>
<![endif]-->

基本的に、IE が問題のある要素に「スタイル」属性を設定しているかどうかをチェックし、そうであれば属性を削除します。

于 2012-09-25T13:43:57.787 に答える
0

うん、または幅と高さをより選択したい場合

jQuery(document).ready(function () {
    removeInlineWidthHeightElements($('#main'));
});

function removeInlineWidthHeightElements(element) {
    element.attr('style', function (i, style) {
        return style.replace(/width[^;]+;?/g, '').replace(/height[^;]+;?/g, '');
    });
}

jQueryでインラインスタイルを削除することは可能ですか?

于 2014-05-15T09:12:32.003 に答える