В целом, как лучше всего исправить ошибку макета в IE6? Каковы наиболее распространенные ошибки или проблемы, на которые следует обратить внимание, пытаясь выяснить, почему ваша страница внезапно выглядит так, как будто ее закодировала обезьяна?






Коробочная модель обычно является виновником. В основном это означает, что любой div, который вы пытаетесь разместить и использовать неподдерживаемый CSS, вызовет эту проблему.
Вы можете обнаружить, что это происходит, если вы используете min- {width, height} или max- {width, height}.
это отличный справочник для проверки совместимости с разными версиями.
http://www.aptana.com/reference/html/api/CSS.index.html
Джим, это действительно коробочная модель. Возможно, вам не нравится это слово, но это лучшее слово, используемое для описания проблем. Как еще вы это называете, когда IE 6 обрабатывает общий размер окна иначе, чем другие браузеры?
Также очень трудно сказать, что это ошибка, ошибка означает, что что-то было неправильно закодировано, я не верю, что это так, Microsoft очень последовательна в сохранении своего макета, «блочной модели».
http://www.positioniseverything.net/ обязательно решит вашу проблему.
Он предоставляет исчерпывающие и подробные описания ошибок браузера, а также варианты их обхода. Обязательно прочтите, на мой взгляд,
Также приятно, что обсуждаются не только ошибки IE, но и ошибки, обнаруженные в Opera и других браузерах.
Хороший способ начать изучение того, как IE искажает страницу, - это включить красные границы на разных элементах с помощью CSS (border: 1px solid red;). Это сразу скажет вам, проблема ли это маржи или проблема заполнения, насколько широк элемент В самом деле и т. д.
У нас была проблема с плавающим div, которая была очевидна только в определенной версии IE6. Это было исправлено загрузкой последнего пакета обновления.
Гм ... это не решение. Это только скрывает проблему на вашем компьютере ... она все равно будет отображаться для всех, у кого нет этого пакета обновления.
Да, Беска, вы, конечно, правы, я больше говорил о том, что это все еще то, о чем нужно помнить при исследовании подобных ошибок.
как вы определяете ошибку макета? Самая разочаровывающая реализация макета (я не знаю, следует ли это определять как ошибку) в IE - нам нужно всегда указывать style = "display: inline" в теге HTML <form>, чтобы пустая строка не мешала макету формы.
Купите себе Панель инструментов разработчика Internet Explorer. Это спасатель жизни и отлично работает с IE6 и / или IE7. Это не замена панели инструментов веб-разработчика или Firebug для Firefox, но лучше, чем ничего.
Прочтите об особенностях IE, особенно о hasLayout, переполнение и т.п. Также есть много тонкостей CSS, которые вам нужно будет либо делай без, либо найти альтернативы. Посмотрите, сколько популярных JavaScript наборы инструментов / рамки / библиотеки обходят разные вопросы.
Чем больше вам придется с ним работать, тем больше вы запомните, и вам не придется так часто искать. В этом нет замены опыту. Однако, как отметили некоторые, в сети есть отличные ресурсы. Позиция - это все определенно там.
Я считаю, что этот вопрос имеет слишком большой объем.
Подтвердите свой код, и, если боль не исчезнет, удачи.
Единственные реальные решения, как и в случае с любыми другими приблизительными ошибками, - это поиск решения в Google или вопрос у кого-нибудь, кто знает (то есть: сообщить нам точную проблему здесь, в stackoverflow).
Вы можете использовать панель инструментов IE Dev, чтобы почерпнуть идею, но многие ошибки являются случайными, необъяснимыми и эзотерическими. IE: ошибка гильотины, ошибка случайного дублирования элементов и т. д., Список можно продолжать, и вы можете часами буквально валять дурака с глупыми переменными везде и ничего не добиться.
Теоретически используйте CSS, совместимый с ошибками макета IE6, используйте только хорошо известные обходные пути (фильтры css и html) и кодируйте их таким образом, чтобы не нарушать совместимость вперед, проверьте наличие причуд / строгий режим.
На самом деле прибегают к таблицам.
У меня есть простая стратегия, которая работает каждый раз.
Во-первых, я разрабатываю сайт с использованием общепринятого CSS, чтобы он хорошо выглядел в Safari и Firefox 3. См. w3schools.com для получения подробной информации о поддержке браузером.
Затем я перехожу в IE6 и IE7 и изменяю CSS с помощью условно включает.
Это не требует взлома и позволяет работать с разными браузерами (IE6 и IE7 имеют отдельные проблемы).
Большинство проблем, которые вы обнаружите, возникают из-за неподдерживаемых функций в IE (например, min-width), ошибок в блочной модели (IE добавляет невидимые дополнительные отступы (3 пикселя) в некоторые поля) или проблем с позиционированием. Выбирайте их первыми, поскольку они часто являются проблемой.
Распространенная проблема заключается в том, что отступы не добавляются к ширине блочного элемента. Поэтому для макетов div избегайте использования отступов и вместо этого используйте элементы внутри них для определения отступов.
Я использую Селектор браузера Рафеля Лимы, когда мне нужно настроить различия между браузерами IE / Standards. Это значительно сокращает количество "хаков" в вашем HTML для решения типичных проблем.
Вы можете настроить таргетинг операторов CSS для разных браузеров или даже для разных версий браузеров (Hello IE 6). Это очень просто реализовать, но требует, чтобы у пользователя был включен JavaScript (в большинстве случаев).
.вещь { ....}
.ie .thing {....}
.ie6 .thing {....}
Заметил, что пост Марка находится на -2 = D. Он всего лишь говорит «прибегать к таблицам», даже если они взрываются, потому что в отстойных браузерах, таких как IE6, некоторые из неработающих команд CSS работают только в таблицах (кто знает, почему ... черт возьми, Билл Гейтс !!!). Вот хороший справочник, чтобы узнать, что работает, а что не работает в отношении CSS. http://www.quirksmode.org/css/contents.html. Это отличный справочник, чтобы узнать, какие классные эффекты работают / не работают в различных широко используемых браузерах. Кроме того, всегда имейте план действий для пользователей, которые используют IE6 (даже если он почти такой же старый, как механическая грязь), поскольку многие компании по-прежнему используют старые браузеры (включая некоммерческие организации / страны третьего мира и т. д.). , создайте выпадающее меню с ошибками, которое выглядит НАМНОГО лучше, чем стандартное горизонтальное меню, но создайте дополнительное меню специально для IE6, которое становится по умолчанию, когда страница получает запрос от браузера IE6.
Коробочная модель вряд ли когда-либо виновата. По какой-то причине люди ухватились за фразу «коробочная модель» и используют ее как волшебный талисман, чтобы объяснить все, что не так с Internet Explorer. нет означает «неподдерживаемый CSS в div». Основные проблемы вызваны ошибками, см. Ответ Ядына.