CSS-меню с блочной моделью различия между IE8 и Chrome / Firefox / Opera - PullRequest
0 голосов
/ 09 ноября 2011

Я думал, что IE7 и выше следовали той же блочной модели, что и Chrome / Firefox / Opera, но когда я запускаю следующий код в IE8, а затем в Chrome / Firefox / Opera, я получаю разные результаты.

В IE8 конец поля обнаруживается с небольшой губой, от которой я хочу избавиться. Можно ли использовать только CSS, чтобы исправить мою проблему, или мне нужно использовать Javascript, чтобы обнаружить браузер и затем изменить CSS?

Вот ссылка на код, с которым я работаю. Чтобы увидеть мою проблему, вам нужно использовать IE, а затем либо Chrome, Firefox или Opera.

http://jsfiddle.net/LsXTk/1/

1 Ответ

1 голос
/ 09 ноября 2011

IE7 имеет два режима: режим совместимости и режим стандартов.Еще одна из длинной серии блестящих шагов со стороны MS с IE.(Да, я с сарказмом):

http://blogs.msdn.com/b/chkoenig/archive/2008/08/28/ie8-standards-mode-and-ie7-compatibility-mode.aspx

Что обычно сбивает с толку людей, так это то, что по умолчанию IE8 возвращается в режим совместимости (то есть сломался), если страницазагружается локально или с сервера в вашей сети.Я предполагаю, что логика заключалась в том, что это должна быть страница в вашей интрасети, и поскольку 90% всего веб-программного обеспечения для интрасети ужасно закодированы чудовищами IE6, которые в значительной степени ломаются в любом стандартном браузере, лучше предположить, что код не работает, и вернуться в режим совместимости..

Что касается обнаружения IE8, вы можете сделать это без JavaScript через условные комментарии IE.Обычно я оборачиваю открывающий тег body в условные выражения и присваиваю каждому уникальный идентификатор:

<!--[if !IE]> -->
    <body>
<!--<![endif]-->
<!--[if gt IE 8]> 
<body id="IE9">
<![endif]-->
<!--[if IE 8]>
    <body id="IE8">
<![endif]-->
<!--[if IE 7]>
    <body id="IE7">
<![endif]-->
<!--[if lt IE 7]>
    <body id="IE6">
<![endif]-->

Затем в вашем CSS вы можете легко обслуживать отдельный CSS при необходимости:

.myStyle {for good browsers}
#ie7 .myStyle {fix for IE7}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...