Что бы вы хотели знать, прежде чем часами пытались исправить ошибку в IE6

У меня должны быть ошибки с плавающей запятой и маржой ...

Если вы разместите элемент с плавающей запятой, а затем укажете для него поле, он удвоит размер поля.

Чтобы решить эту проблему, добавьте к элементу display: inline. Это остановит двойное поле, и все другие браузеры проигнорируют его, потому что могут быть перемещены только объекты уровня блока.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
16
0
1 671
23
Перейти к ответу Данный вопрос помечен как решенный

Ответы 23

Ответ принят как подходящий

Хотел бы я знать, что я буду часами пытаться исправить ошибку в IE 6 снова и снова в течение многих лет, и я действительно был бы счастливее, доставляя пиццу.

ха-ха. Что ж, каждый раз, когда это происходит, это происходит только один раз. Многие веб-разработчики являются постоянным указателем ошибок IE6. Интересно, сколько денег было потеряно веб-компаниями, пытающимися исправить проблемы в IE6.

alex 28.10.2008 08:10

Я не знаю, но должен быть коллективный иск.

eyelidlessness 28.10.2008 08:13

Представьте, какой будет жизнь, когда IE8 выйдет, и он будет соответствовать стандартам, как они утверждают. Добавьте несколько лет, и IE6 мощь практически исчезнет. IE7 - это немного легче для разработки, в любом случае с CSS.

alex 28.10.2008 08:15

@alex: Следующая Windows Mobile будет включать движок IE 6. Так много, что это скоро уйдет.

eyelidlessness 28.10.2008 08:27

Кроме того, честно говоря, в то время как IE 8 исправляет множество очевидных проблем с CSS, они мало что делают для исправления DOM, Крис Уилсон в значительной степени это признал: ajaxian.com/archives/ie-8-and-the-user-features#comment-2663‌ 39

eyelidlessness 28.10.2008 08:30

@eyelidlessness: Ты серьезно? Какая это будет заноза в заднице. Что не так с DOM IE8? Проблема с кешированием javascript?

alex 28.10.2008 08:55

Почти все, что не так с DOM IE 7, и все, что не так с DOM IE 6. Это огромная часть спецификации, включая все, от неправильной реализации Range до полного отсутствия событий Mutation и полностью сломанной самой системы событий.

eyelidlessness 28.10.2008 09:00

Ах. Может ли jQuery абстрагироваться от этого? Я влюбился в этот фреймворк, хотя чувствую, что не должен на него полагаться.

alex 28.10.2008 09:06

jQuery не касается диапазона и не может (без больших накладных расходов или необходимости использовать только методы манипуляции с DOM jQuery) имитировать события мутации; он абстрагирует модель событий, но по-прежнему не поддерживает захват событий. Есть и другие проблемы, но на самом деле это были мои самые большие головные боли.

eyelidlessness 28.10.2008 09:09

Что же значат эти недостатки IE для меня как разработчика? Извините, я не так хорошо разбираюсь в Javascript. Кажется, ты разбираешься в своем деле!

alex 28.10.2008 09:12

О, я забыл об этом. По крайней мере, в IE 7 Trident не поддерживает свою внутреннюю структуру DOM в виде дерева, а это означает, что вы можете фактически получить ерунду, например, один узел DOM, охватывающий два соседних родительских узла. Вы можете подумать, что innerHTML - единственный способ сделать это, но это может случиться и с MSHTML.

eyelidlessness 28.10.2008 09:13

Проблемы с диапазоном делают работу с выделенным текстом (особенно с богатым текстом) чрезвычайно болезненной. Отсутствие событий мутации означает, что опрос на предмет изменений DOM стоит дорого, хотя браузер должен делать это внутренне и может раскрыть его. Последствия модели событий не так велики, но могут вызвать проблемы.

eyelidlessness 28.10.2008 09:14

(Это не соответствовало последнему комментарию.) По сути, это действительно затрудняет использование Интернета в качестве серьезной прикладной платформы.

eyelidlessness 28.10.2008 09:16

Я вижу сейчас. Если бы это было сделано внутренне, я бы предположил, что не будет слишком сложно предоставить события для Javascript, чтобы подключиться к ним? Я предполагаю, что это делают Gecko / Webkit / Presto? Почему злоумышленник не может просто предоставить принудительное обновление Firefox 3: P

alex 28.10.2008 09:21

Судя по всему, нет никаких мошенников из MS, только XUL. Подождите, это неправильная строка. Я спросил Криса Уилсона (думаю, в ссылке, которую я разместил выше), почему они просто не встраивают Webkit в стандартном режиме, и он сообщил мне, что это нарушит ActiveX (продолжение) ...

eyelidlessness 28.10.2008 09:28

Поэтому я спросил, почему бы не включить ActiveX в качестве плагина для браузера, и все остались довольны? "ActiveX не может быть выполнен другим плагином" Орли? Затем, через несколько недель, Google выпускает бета-версию Chrome, которая выполняет именно это.

eyelidlessness 28.10.2008 09:30

И чтобы ответить на ваш вопрос, Gecko 1.9 (FF3) и, по крайней мере, текущий выпуск Webkit поддерживают (большинство) этих событий. Престо - нет. Но дело в том, что движок должен внутренне обрабатывает события, как указано, или перекомпоновка / перерисовка с манипуляциями CSS / DOM никогда не сработает.

eyelidlessness 28.10.2008 09:33

ха-ха. Похоже на Microsoft! У меня не было никаких проблем, пока я не стал веб-разработчиком в Microsoft. Ну что ж. Кто знает, что они могут реализовать в последнюю минуту.

alex 28.10.2008 09:42

Чтобы было ясно, Крис Уилсон, о котором я упоминал ранее, который в значительной степени признал, что DOM получает вал в IE 8, является «архитектором платформы группы разработчиков платформы Internet Explorer в Microsoft» (со страницы «О проекте»).

eyelidlessness 28.10.2008 09:48

Они должны сделать то, что сделал Google ... выбросить Trident и включить Gecko и, как вы сказали, использовать подключаемый модуль ActiveX. И они могут сделать свой дурацкий маленький графический интерфейс. И все были бы счастливы :)

alex 28.10.2008 09:53

Извините, это должен был быть Webkit. Но Gecko будет работать так же хорошо.

alex 28.10.2008 09:54

Webkit определенно лучше подходит для их целей. Но можете ли вы представить, что Microsoft использует проект Apple с открытым исходным кодом в своем самом популярном программном обеспечении?

eyelidlessness 28.10.2008 10:02

Ха-ха. Ну, это было изначально от Konquerer, не так ли? Может быть, они смогут захватить его на этапе Konquerer и как-то обновить его, не превращая его в следующий Trident. Они включили jQuery в свой следующий .NET, не так ли? Я думаю, они начинают чувствовать запах кофе.

alex 29.10.2008 02:20

Чтобы было ясно, KHTML был заменен на Webkit в Konquerer.

eyelidlessness 29.10.2008 06:08

Я думаю, они сочтут использование Webkit неприятным. «Привет, ПК, что это за новый браузер ты используешь?» Но мне бы очень понравилось видеть, как они используют Gecko. И им не пришлось бы терять столько лица.

Nathan Long 11.11.2008 19:28

О, давайте проясним. Команда IE гораздо больше враждебна Mozilla, чем Microsoft к Apple. Я уверен, что Apple скорее объявит о таком сотрудничестве как о партнерстве, чем как о бесполезном приеме. Я уверен, вы слышали, что Баллмер упомянул, что Webkit может появиться в будущем IE?

eyelidlessness 14.11.2008 09:35

Я слышал это на конференции в Австралии. Но вы действительно думаете, что они это сделают? Apple и Microsoft хорошо играют? возможно ... кстати, я доставил пиццу, и это было почти так же напряженно, как css для IE6 (почти!)

alex 04.12.2008 04:12

Прозрачный PNG должен был поддерживаться ...

И взлом javascript / propriety очень уродлив ... Почему они не могут хотя бы добавить обновление в пакет обновления для поддержки альфа-каналов 24-битного PNG.

alex 28.10.2008 08:11

Тем не менее, поддерживаются одноцветные прозрачные png. Я использовал это для веб-сайта с большим количеством 4-битных изображений и одноцветной прозрачностью, поскольку они обычно были меньше, чем их аналог в формате gif.

Martin Kool 28.10.2008 10:51

Да, но альфа-прозрачность намного круче !!! Одноцветные (я австралиец: P) прозрачные пленки в PNG такие же, как и в формате GIF, не так ли?

alex 29.10.2008 02:22

Возможно, элементы SELECT не отображаются с правильным z-порядком.

Например, если у вас есть плавающий DIV с более высоким z-порядком, наложенный поверх элемента select, элемент SELECT все равно будет отображаться поверх DIV.

Бесить.

Я думаю, единственный способ исправить это с помощью IFRAME? фу! IE6 должен просто нарисовать этот контроль формы прямо над всем

alex 28.10.2008 08:56

Я написал код, который установит стиль для отображения: none для выбранных элементов, расположенных под плавающим div. Что-то вроде взлома, и вы можете увидеть, как он исчезает, когда он покрывается лишь частично. Но намного лучше, чем выбор, скрывающий ваши плавающие меню.

Kibbee 18.12.2009 05:12

Это не проблема IE6, это проблема нескольких браузеров. вам просто нужно указать его в сбросе или по умолчанию

albert 31.12.2010 10:58

http://www.pushuptheweb.com/ или один из многих других сайтов, стремящихся отказаться от поддержки IE6. Я знаю, что правильная визуализация веб-страниц для посетителей IE6 является основой многих веб-предприятий, но рано или поздно что-то должно дать. Я просто не понимаю, почему MS не принудительно обновляет>. <

Номер один: hasLayout Если бы я знал об этом с самого начала, большинство моих опасений было бы решено. Я даже считаю это более серьезной проблемой, чем тупая коробочная модель IE6.

Хотел бы я знать о quirksmode.org. Таблицы совместимости, отчеты об ошибках, примеры javascript - все это очень полезно.

ссылка ведет на quirksmode.org, но в тексте написано quriksmode.org.

Ray 01.12.2008 05:08

@Ray: это точно ошибка IE.

eyelidlessness 11.12.2008 04:02

@eyelidlessness, я называю это ИК-ошибкой

Jimmy 11.12.2008 04:13

Хотел бы я знать о

  • условные комментарии для включения таблиц стилей только для IE
  • xhtml, чтобы IE отображался в совместимом режиме
  • проблема блочной модели, чтобы я знал, что добавить в мою таблицу стилей IE

После того, как я узнал об этих вещах, я действительно не тратил много времени на устранение проблем в IE6.

.Hauge

Вам не нужны «заголовки xhtml» (IE не поддерживает XHTML совсем). Стандартный режим запускается некоторыми DOCTYPE, включая HTML4 Strict DOCTYPE. Убедитесь, что DOCTYPE, который вы используете, имеет URL.

Kornel 20.11.2008 02:50

Хотел бы я знать о Позиция - это все, но именно ошибка пикабу всегда меня привлекал.

Запрещено У вас нет разрешения на доступ к / explorer / на этом сервере.

Chris Porter 28.10.2008 17:08

Думаю, это ссылка, которую вы хотели: positioniseverything.net/explorer.html

Chris Porter 28.10.2008 17:09

Хотел бы я знать, что мой код не прошел проверку. Или что объявление XML в XHTML переводит IE в режим причуд.

Что если вы действительно анальный и тратите на это дерьмо кучу времени, это окупается, и тогда вы становитесь гуру IE, не боясь ничего, кроме того грустного себя, которым вы стали ...

Хотя приятно удивлять людей своими удивительными способностями исправлять ошибки IE ...

  1. Большинство ошибок IE можно избежать, используя другие (как правило, лучшие) методы CSS и супер чистый логический xhtml.
  2. Всегда очищайте свои поплавки со скрытым переполнением (или просто hasLayout для IE)
  3. Поймите, что такое hasLayout (в основном, CSS-свойство, которое дает IE пинок под зад)
  4. Когда вы начинаете разрабатывать сайты, проверяйте IE6 все время, пока не станете профессионалом; ¬P

К сожалению, и я обучаю небольшую команду из 6 разработчиков, опыт - это единственное, что действительно помогает в решении этих проблем. Сохраняйте спокойствие, хорошо исследуйте Google и опубликуйте свою проблему в сообществе, если вы действительно застряли в хорошем. демонстрация проблемы.

Хорошие ссылки>

  1. http://css-tricks.com/ie-css-bugs-thatll-get-you-every-time/ (хотя я рекомендую исправление PNG Боба Осолы / -0)
  2. http://www.gtalbot.org/BrowserBugsSection/ (потрясающе и смешно ... отлично!)

Удачи!

Использование overflow: hidden для очистки числа с плавающей запятой удобно, но не во всех ситуациях. Иногда вам нужно что-то (скажем, изображение или наведение курсора), чтобы «вылиться» из div, в котором оно находится, но overflow: hidden будет обрезать его.

Andy Ford 28.10.2008 21:52

Не программируйте сначала для IE6. Это путь к безумию.

Аминь. Я разрабатываю все в основном с использованием Firefox 3 (и IE7 с использованием IE Tab) в качестве испытательного стенда, а затем, когда все работает и хорошо выглядит, я начинаю пытаться заставить его выглядеть так же в IE6 (и, в меньшей степени, FF2), не нарушая Это. Делать это по-другому - отстой.

CMPalmer 28.10.2008 17:17

Я согласен, Firefox кажется лучшим выбором для разработчиков. Разработайте для Firefox 3, а затем сделайте его совместимым с другими браузерами. Кажется, это лучший способ сохранить рассудок.

Liam 28.10.2008 17:34

Вы можете добавить туда Webkit (Chrome или Safari) и Opera для тестирования. Стоя на высокой лошади «FireFox - стандарт WC3» может привести к довольно болезненному падению. FireFox имеет много ошибок рендеринга CSS, особенно в отношении элементов управления пользовательского интерфейса (например, 'input type = button' игнорирует блочную модель WC3, что может вызвать проблемы с выравниванием с другими элементами управления при просмотре в браузерах, совместимых со стандартами). В настоящее время ни один браузер не работает полностью так, как диктует стандарт WC3 (не заставляйте меня начинать с забоя Opera атрибутов печати CSS2), и я сомневаюсь, что они когда-либо будут.

David 24.08.2009 22:16

Я полностью согласен. Реальный вывод: не просто кодируйте, используя 1 браузер. Любой браузер (но особенно IE). Вы должны переключаться и постепенно тестировать все.

Ben Scheirman 25.08.2009 00:29

Основная проблема, с которой мы столкнулись, - это планирование достаточного времени для «исправления в IE6». Это, а также склонность дизайнеров придумывать вещи, которые легко сделать во Flash и сложно реализовать в CSS, стоили нам многих дней дополнительной работы.

Что даже со всеми хаками в мире PNG, если вы используете PNG в качестве фона в своих div (чтобы сделать, например, панель с закругленными границами), вы попадаете в мир боли. (Ссылки и другие элементы не доступны для кликов, происходит сбой IE6 в более ранних версиях библиотеки png dll и т. д.)

В итоге: не используйте PNG с прозрачным фоном, если хотите, чтобы он работал в IE6.

в дополнение к другим спискам ошибок IE, которые Росс и Локе дали выше (gtalbot.com, какой красивый сайт!

http://css-discuss.incutio.com/?page=InternetExplorerWinBugs

http://webbugtrack.blogspot.com/search/label/IE7

http://www.enhanceie.com/ie/bugs.asp

http://channel9.msdn.com/wiki/internetexplorerprogrammingbugs/ (как и gtalbot, прокрутка этого


и, привет, IE 8 beta 2

http://css-class.com/test/bugs/ie/ie-bugs.htm


наконец, кукла вуду IE!

http://www.flickr.com/photos/chisa/1349759901/

Важность DOCTYPES в IE и

Отслеживание веб-ошибок

Хотел бы я знать, почему Microsoft так меня ненавидит.

Если бы IE6 был человеком - он получил бы от меня очень-очень медленную, унизительную и мучительную смерть. Я бы наслаждался каждой секундой.

DMin 13.06.2010 15:40

Хотел бы я знать, что многие номера строк ошибок IE 6 отличаются на единицу.

трюк с подчеркиванием

если вы поместите _ перед атрибутом css, он будет прочитан только ie6.

т.е. _border: 1px solid # 000000; создает границу только в ie6

Хотел бы я знать, что Internet Explorer - новый Netscape Navigator 4.7.x

Итак, мы продвинулись от «сбоев при одном взгляде на CSS или любой другой стандарт WC3» к «Отображает содержимое CSS, за исключением тех случаев, когда это не так, и добавляет дополнительное пространство в любом месте»?

David 24.08.2009 21:59

Причуда рендеринга, которая приводит к появлению небольшого пробела под изображением в ячейке таблицы, если между концом тега img и закрывающим тегом td есть пробелы.

Это правильно:

<td><img src = "myimage.jpg"></td>

Это неправильно:

<td>
<img src = "myimage.jpg">
</td>

какое лучшее решение для этого?

Simon_Weaver 21.01.2009 12:29

1

hasLayout и это отличное объяснение: http://www.satzansatz.de/cssd/onhavinglayout.html

У меня появилась новая жизнь, когда я обернулся вокруг нее! Обеспечение того, чтобы содержащий элемент hasLayout решал подавляющее большинство моих проблем.

2

jQuery !! Написание CSS для IE достаточно плохо, поэтому я рад, что мне больше не приходится беспокоиться о JS.

Хотел бы я знать об инструментах разработки, таких как Firebug Lite и HttpWatch, которые значительно упрощают отладку.

* {маржа: 0; отступ: 0; граница: нет}

клянусь богом, эта строчка все изменила. presto! все одного размера! А потом я нырнул в кроличью нору, в которой ты меня сейчас найдешь. чудесный.

Другие вопросы по теме