Z jakiegoś powodu, gdy użytkownik ma swój wyświetlacz ustawiony na 125% z panelu sterowania, IE9 doda dodatkową szerokość w linii do takich elementów jak:

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

Powyższy styl wbudowany (z szerokością) jest dodany przez IE9. IE8 nie ma tego problemu i jest to zdecydowanie spowodowane ustawieniem ustawień wyświetlania systemu Windows na 125%. Chrome i Firefox wyświetlają rzeczy poprawnie bez dodatkowego stylu. Nie przypuszczasz, że ktoś ma obejście lub rozwiązanie tego problemu? Nie mogę kontrolować, jakie ustawienia mają użytkownicy, ale widziałem, jak inne strony renderują się poprawnie.

1
Matt Waldron 24 wrzesień 2012, 18:31

2 odpowiedzi

Najlepsza odpowiedź

Ok, więc rozwiązałem to za pomocą komentarza warunkowego i odrobiny jQuery:

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

Zasadniczo sprawdza, czy IE umieścił atrybut „style” na naruszającym elemencie, a jeśli tak, usuwa ten atrybut.

1
Matt Waldron 25 wrzesień 2012, 17:43

Tak lub jeśli chcesz być bardziej selektywny w odniesieniu do szerokości i wysokości

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

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

Czy można usunąć style inline za pomocą jQuery?

0
Community 23 maj 2017, 14:57