IE9在显示设置为125%时向元素添加内联宽度

时间:2012-09-24 14:31:18

标签: css internet-explorer-9 inline-styles

出于某种原因,当用户从“控制”面板将其显示设置为125%时,IE9将为元素添加额外的宽度,如下所示:

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

上面的内联样式(带宽度)是IE9添加的样式。 IE8没有这个问题,它肯定是通过将​​Windows显示设置设置为125%来触发的。 Chrome和Firefox在没有额外风格的情况下正确显示内容。不要以为任何人都有解决方法或修复此问题?无法控制用户拥有的设置,但我已经看到其他网站正常呈现。

2 个答案:

答案 0 :(得分:1)

好的,所以我用条件注释和一些jQuery来解决这个问题:

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

基本上,它检查IE是否在违规元素上放置了“样式”属性,如果是,则删除该属性。

答案 1 :(得分:0)

是的,或者如果你想对宽度和高度更具选择性

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

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

Is it possible to remove inline styles with jQuery?