Jump to content
  • 0

Включить режим совместимости только для ие7, как?


Zverushka
 Share

Question

Возникла такая проблема, в верстке есть 3 резиновые колонки, из-за наличия у них еще и паддингов, пришлось включить блочную модель типа border-box, но только вот эту модель не понимает ие7 и ие6(на 6 пофиг). Но он ее использует в режиме квиркс мода.

Можно ли как-то включить этот режим только для ие7?

И еще, я так поняла, что средствами jQuery я не смогу обнаружить, что у меня ие7? Только с помощью чистого javascript?)

Edited by Zverushka
  • Like 1
Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0
Возникла такая проблема, в верстке есть 3 резиновые колонки, из-за наличия у них еще и паддингов, пришлось включить блочную модель типа border-box, но только вот эту модель не понимает ие7 и ие6(на 6 пофиг). Но он ее использует в режиме квиркс мода. Можно ли как-то включить этот режим только для ие7?

можно условными комментариями для IE7 и

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

Link to comment
Share on other sites

  • 0

Есть информация, что Мета тег X-UA-Compatible управляет режимом отображением страниц в браузерах IE8+. И в родном ие7 ничего не изменится. Так ли это?

Edited by Zverushka
Link to comment
Share on other sites

  • 0

Че-то я запарилась, написала скрипт, делающий бордер-бокс, только вот не могу его затестить нормально (с виду работает в режиме эмуляции из 10го осла, но у меня подозрения, что может не работать). Пыталась поставить virtual pc на виндовс 8, да чет не ставится (.

Кстати jquery не может вычленить свойство css width ($(this).css('width)) в процентах? а то выдает пиксели, хотя в стилях задано в процентах.

Link to comment
Share on other sites

  • 0

Есть информация, что Мета тег X-UA-Compatible управляет режимом отображением страниц в браузерах IE8+. И в родном ие7 ничего не изменится. Так ли это?

К сожалению, так. Сам когда-то искал варианты, думал в сторону условного коммента перед доктайпом и т.п., но рабочего решения так и не нашел...

Link to comment
Share on other sites

  • 0

Страшные вещи вы какие то говорите...

Это не помогает http://habrahabr.ru/sandbox/47979/ (сам не читал)

И не лучше ли выложить макет? Может всё можно решить совсем другими способами.

Link to comment
Share on other sites

  • 0

Я правильно понимаю, если не будет доктайпа, то браузер уйдет в quirk mode?

тогда так..


<?PHP
if ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 7.0'))
{ echo '';}else
{echo '<!DOCTYPE HTML>';}
?>

<HTML>
<HEAD>
<title></title>
</HEAD>

Edited by Николя223
Link to comment
Share on other sites

  • 0

Страшные вещи вы какие то говорите...

Это не помогает http://habrahabr.ru/sandbox/47979/ (сам не читал)

И не лучше ли выложить макет? Может всё можно решить совсем другими способами.

Да вот уже собственно готовый сайт с резиновыми колонками в ие7 за счет скрипта.

http://vtest.uphero.com/4/rubber_layout/

То есть по идее все работает и помощь не нужна.

  • Like 1
Link to comment
Share on other sites

  • 0

А вот сейчас, кажется, подумал и нашел решение:

Алгоритм:

1) Ставим перед доктайпом HTML-коммент. Это сбросит IE6-7-8-9 в Quirks, другим браузерам не помешает.

2) Ставим <meta http-equiv="X-UA-Compatible"content="IE=Edge">. Это заставляет IE8-9 переключаться в стандартный режим независимо от доктайпа и всего с ним связанного, на IE7- это не влияет.

3) Таким образом, в IE7 (и ниже) по построению имеем Quirks, во всём остальном — стандартный режим. И значит,

4) PROFIT!

:)

P.S. Как всегда оказалось, что моя мысль запоздала года этак на полтора: http://t.co/impFmNIE0m — эх...

  • Like 1
Link to comment
Share on other sites

  • 0
И еще, я так поняла, что средствами jQuery я не смогу обнаружить, что у меня ие7? Только с помощью чистого javascript?

Свойство $.browser было удалено в jQuery с версии 1.9, в более ранних версиях можно использовать это свойство для определения браузера и его версии.

Кстати jquery не может вычленить свойство css width ($(this).css('width)) в процентах? а то выдает пиксели, хотя в стилях задано в процентах.

Только в пикселях. Для получения значения в процентах сравнивайте с шириной у родителя, относительно которого вам надо получить ширину в процентах. Математика в помощь.

И да, ширину получать лучше через $(this) .width() или $(this).outerWidth()

Edited by antonKar
Link to comment
Share on other sites

  • 0

Проще. Но зачем, если >97% браузеров в этом не нуждаются? Кстати, скрипт автора темы (как и большинство др. полифиллов для box-sizing) именно это и делает :)

Зачем использовать скрипт, когда и без него можно обойтись? 7-й осел и так тормознутый, а еще и лишний скрипт на него навешивать, тем более, что действительно он делает ровно тоже самое.

К тому же я считаю, что в данном случае лишняя обертка и не помешает.

В принципе обертку для ИЕ7 можно сделать и без скрипта, чисто условными комментариями.

п.с. И вообще мне box-sizing почему-то не очень нравится. :D

Link to comment
Share on other sites

  • 0
7-й осел и так тормознутый, а еще и лишний скрипт на него навешивать

Те, кто сидит на нем в 2013-м (именно на 7-м, а не на 8-м в Compat. View при надобности) это заслужили ;)

в данном случае лишняя обертка и не помешает

Она практически никогда не мешает (кроме случаев, когда она рвет цепочку 100% высоты), это да. Но обидно же: прогресс идет, повсюду вокруг всё такое адаптивно-отзывчивое, анимированное, переливающееся, высокотехнологичное — а тут мы такие с дедовскими приемами эпохи прощания с 98-й виндой, с необходимостью поддерживать обе боксовые модели. При том, что «волшебного пинка» просят от силы пара-тройка процентов аудитории (в смысле, браузеров, а не пользователей, конечно... хотя... ;)), для остальных задача решается просто и естественно...

И вообще мне box-sizing почему-то не очень нравится

Привычка. Столько лет ее внедряли как «единственно верную» в противовес «старой кривой IEшной» (хотя у Нетскейпа было аналогично). Но по гамбургскому-то счету border-box же удобнее, неужели нет? ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy