2015-05-26 2 views
3

Мы разработали приложение со старой версией IE7.Css Expression не работает в IE11

И код содержит «выражение CSS», но это не работает в IE11.

Пример кода:

div#GridViewContainer 
     { 
      position: relative !important; 
      width: 1000px !important; 
      overflow: auto !important; 
     } 
     _:-ms-fullscreen, :root .staticHeader 
     { 
      position: relative !important; 
      top: expression(this.offsetParent.scrollTop); 
      z-index: 99 !important; 
     } 
     _:-ms-fullscreen, :root .StaticColumn 
     { 
      z-index: 90 !important; 
      border: 1px solid gray !important; 
      position: relative !important; 
      left: expression(document.getElementById("GridViewContainer").scrollLeft); 
     } 

Как сделать работу в IE11 и альтернативный способ сделать это?

Как изменить мой код?

+0

я хочу альтернативные решения вместо " выражение " – Arunraj

+0

И я также хочу работать в ie11, но не в более старой версии (Ie7) – Arunraj

ответ

3

ИЛИ

  • Если вы чувствуете ленивый или не хотят использовать JS, попробуйте установить режим документа:

    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 
    

    добавьте его в раздел <head>...</head>.

    Обратите внимание, что это может привести к поломке свойств, не поддерживаемых IE7, которые вы, возможно, использовали. не


Почему вы должны avoide с помощью CSS выражений:

Начиная с Internet Explorer 11, CSS выражения больше не включена для веб-страниц, загруженных в зоне Интернета. Выражения CSS: поддерживается для страниц, загруженных в другие зоны (например, зона интрасети) , когда страницы отображаются в режиме стандартов IE7 или в режиме IE5 quirks.

- CSS expressions no longer supported for the Internet zone

Кроме того,

К сожалению, снижение производительности налагаемые CSS выражений значительным, поскольку браузер переоценивает каждое выражение всякий раз, когда срабатывает любое событие, такое как окно изменение размера, движение мыши и так на. Низкая производительность выражений CSS является одной из причин, по которым они устарели в IE 8. Если вы использовали выражения CSS на своих страницах , вы должны сделать все возможное, чтобы удалить их и использовать другие методы для достижения той же функциональности

- Page Speed: Avoid CSS expressions (deprecated)

Условные комментарии должны несколько работать как предложено Лео Caseiroin в своем ответе, он будет реально сэкономить некоторую пропускную способность на IE7 +.

1

Я предлагаю вам разделить ваш файл с взломов и чем, вы можете использовать условные комментарии для IE, например, так:

<link href="css/ie11-without-hacks.css" rel="stylesheet"> 
<!--[if lt IE 7]> 
    <link href="css/ie7hacks.css" rel="stylesheet"> 
<![endif]--> 

Об условных комментариев: https://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx