Знаете ли вы какие-либо различия в обработке тегов / свойств HTML в разных браузерах? Например, однажды я увидел страницу с тегом ввода, в котором поле maxlength установлено в «2o». Firefox и Opera игнорируют «o» и устанавливают максимальную длину 2, а Internet Explorer вообще игнорирует поле. Вы знаете больше?
(Примечание: учитывая, что это, вероятно, будет список, было бы замечательно, если бы общее название разницы было выделено жирным шрифтом, например: Обработка различных ошибочных значений в свойствах тегов )
Проверьте http://www.quirksmode.org/
Если вы программируете на javascript, лучший совет, который я могу дать, - это использовать библиотеку javascript вместо того, чтобы пытаться свернуть свою собственную. Библиотеки хорошо протестированы, и наиболее вероятные случаи встречаются в большинстве случаев.
Scriptalicious - http://script.aculo.us/
jQuery - http://jquery.com/
Microsoft AJAX - http://www.asp.net/ajax/
Dojo - http://dojotoolkit.org/
Прототип - http : //www.prototypejs.org/
YUI - http://developer.yahoo.com/yui/
То, что меня действительно раздражает, это испорченная функция JavaScript document.getElementById в IE - в большинстве браузеров это даст вам то, что имеет указанный вами идентификатор, IE с удовольствием предоставит вам что-то, что имеет значение в атрибуте name, даже если есть что-то позже в документе с идентификатором, который вы просили.
Списки ошибок
Веб-разработчики уже составили несколько довольно полных списков; Я думаю, что лучше составить список ресурсов, чем дублировать эти списки.
- http://www.positioniseverything.net/
- http://www.richinstyle.com/bugs/table.html
- http://www.quirksmode.org/ (как упомянуто Кристофером Джонсоном )
Javascript
Я согласен с Крейгом - лучше всего программировать Javascript, используя библиотеку, которая обрабатывает различия между браузерами (а также упрощает такие вещи, как пространство имен, обработка событий AJAX и контекст). Вот прыжок к ответу Крейга (на этой странице).
Сброс CSS
Сброс CSS может действительно упростить веб-разработку. Они переопределяют настройки, которые немного различаются в разных браузерах, чтобы дать вам более общую отправную точку. Мне нравится Yahoo YUI Reset CSS .
Знаете ли вы какие-либо различия в обработке тегов / свойств HTML в разных браузерах?
Этот вопрос запрашивает информацию обо всех различиях, включая DOM и CSS? Немного большой темы. Я думал, что ОП спрашивает о поведении HTML, а не обо всем этом ...
Однажды я увидел страницу с тегом ввода с полем maxlength, установленным на «2o».
В данном конкретном случае вы говорите о неверном коде. Атрибут maxlength не может содержать буквы, только цифры.
То, что браузеры делают с неверным кодом, сильно варьируется, как вы можете убедиться сами.
Если вы действительно спрашиваете: «Что делают все разные браузеры, когда сталкиваются с кодом HTML, который по любой из бесконечных причин не работает?», То это безумие.
Мы можем значительно уменьшить проблемное пространство, используя правильный код.
Итак, используйте правильный HTML. Тогда вам остается две основные проблемные области:
- ошибки браузера - как браузер следует стандарту HTML и что он делает неправильно
- Различия в настройках браузера по умолчанию, такие как количество отступов / полей, которые оно дает телу
Несовместимый синтаксический анализ XHTML в режиме HTML
HTML-парсеры не предназначены для обработки XML.
Если документ XHTML представлен как «text / html» и рекомендации по совместимости не соблюдаются, вы можете получить неожиданные результаты.
Пустые теги являются одним из возможных источников проблем. <tag /> и <tag> </ tag> эквивалентны в XML. Однако анализатор HTML может интерпретировать их двумя способами.
Например, Opera и IE обрабатывают <br> </br> как два <br>, а Firefox и WebKit рассматривают <br> </br> как один <br>.