Comments 66
У меня статья посвящена именно проблемам с Ineternet Explorer. Решается баг innerHTML и даются уже готовые скрипты.
Это все из-за того, что есть дофига корпоративных приложении, написанных через жопу, чтобы работать в ИЕ6.

Теперь мс приходится поддерживать стиль через жопу… Так, что не надо ругаться, не только ИЕ виноват=)

В данном случае корпоративные приложения не причём. Скорее какая-то удивительная способность разработчиков IE делать недосказанные места спецификация самыми неожиданными способами. Кажется это продолжение страстной любви MS к созданию своих форматов, а не стандартизации существующих.
Хотя данные проблемы с HTML 5 конечно сам по себе хак на IE, так как он и не говорил что поддерживает HTML 5.
Кто пытается делать?
ИЕ в данном случае просто сделали поддержку HTML4
Это веб-разработчики и другие браузеру бегут вперед и в разные скорости, а майкрософт и тихо мирно ждет утверждения стандартов, и потом все сделает. Взять хотя бы, как браузеры решали какой кодек будет в, одни один формат, другие другой. А МС сделали превью 9ой версии, с теми функциями, о которых успели договорится…
Лично для себя, я пока не вижу смысла ХТМЛ5… возможно чуть позже пойму… (новое — конечно круто, но надо найти истинную причину переходить на ХТМЛ5, а не просто дань моде)
Так другие браузеры тоже новые теги не держат, просто в IE не очень продуманная на будущее обработка ошибок.
WebGL и WebSocket — волшебные штуки.
Жаль, что их стандарты еще в разработке и поддержка медленно появляется.
UFO landed and left these words here
Да от этого даже просто сайты не всегда застрахованы, к сожалению.
Знаете я с вами полностью согласен, но это встречается редко, всё к тому же сожалению (
JS, к сожалению, единственное решение. Или придёться делать так:
<div id="header">
  <header>
    …

И уже вешать стили на #header.
честно говоря это даже решением сложно назвать, этакий костыль.
Решение не лучшее, ИМХО.
Т.к. дейтсвительно, выключен JS — и все, трындец.
Конечно, многие сайты итак развалятся без скрипта (я и сам порой этим грешен), но для желающих этого избежать я вижу другой способ… Он громоздкий, но тем не менее:

<!--[if IE]><div class="header"><!--[if !IE]><![endif]--><header><!--[if IE]><![endif]--><![endif]-->
content
<!--[if IE]></div><!--[if !IE]><![endif]--></header><!--[if IE]><![endif]--><![endif]-->

в принципе, на стороне сервера такое можно автоматизировать, думаю…

спасибо за комплимент)))
вообще, изначально я эту конструкцию закрутил для выдачи svg/vml, но в итоге забил в том случае и вставил флешку (из-за совершенно идиотского ресайза svg-рисунков в webkit, а нужен был тянущийся рисунок)
но конструкция осталась)
На стороне сервера проще выполнить подмену на div class, так как uiser agent уже известен.
Тогда нужно ставить Vary: User-agent, а это сильно ухудшит качество кэша.
А все ли браузеры понимают доктайп HTML5? Я в GoogleAnalytics помимо IE вижу еще множество старых версий FF, Оперы, Сафари. Может быть, кто-нибудь поделится ссылочкой, где посмотреть, с какой версии в браузерах появилась поддержка HTML5?
И как особая поддержка новых тегов выглядит в этих браузерах ;-)
ну для тех примеров, что вы привели в посте — да, прост тег.
но помимо них есть и другие. аудио, видео, контент-едитбл, и еще куча всякой хрени, традиционно ранее реализуемая на жс/флеш.
Полностью спецификацию HTML5 никто не поддерживает. В Интернете есть сводные таблицы поддержки новых API.
… которые в большинстве случае взяты от балды, кстати, и совершенно не проверены.
ну так, к слову, что и тем таблицам особо доверять нельзя.
увы.
FF 3.5 если ничего не путаю любые теги понимал. хоть хоть , главное стили прописать — всё отображалось вполне кошерно.
Так никакой специальной поддержки и не нужно — даже для современных браузеров это просто тег.
UFO landed and left these words here
О боже мой: «но новые удобные теги»…
Чем же они удобнее, не откроете нам секрет? )
семантикой.
хотя, если честно, по-моему и этот плюс не особо весомый, потому что, если я ничего не путаю, гуглы-яндексы итак понимают, что если id=«nav», то это навигация и т.п.
Я специальный раздел о преимуществах написал ;-). Лично мне нравится краткость кода.
и да, веб-разработчики плачут от счастья отнюдь не по поводу тех тегов, о которых речь в сабже.
а те, по которым плачут — будет много сложнее эмулировать в недобраузере средствами js/flash.
хотя, верю, надеюсь и жду, что кто-то сделает либу, которая это сама будет делать (сам, увы, не потяну такое написать. хотя… надо подумать). Т.е. заменять тег video/audio на флеш, canvas на vml, остальное через яваскрипт эмулировать…
Я про другие функции и писал эту фразу. Новые теги — это приятный бонус.
UFO landed and left these words here
Решение также старым браузерам «отдать» сайт с шаблоном в html4, а остальным в html 5. Можно использовать скрипты типа browserdetect.php.
Это удобно для визиток. Встречаются же сайты в версиями html и flash ?!
Скорее бы официальную поддержку… как же все же надоело костылями и хаками сайт для ослика снабжать…
официальная поддержка сразу не решит вопрос, а как же ие7,8 (о 6-ом не хочу и сказать).
UFO landed and left these words here
Ну да ну да, все так и побежали ставить. Более вероятный сценарий — пользователь просто закроет ваш сайт. Особенно, если ему корпоративными стандартами запрещено юзать что-либо, кроме IE.
UFO landed and left these words here
А если вам во время путешествия по Индии нужно срочно отправить фотографии родственникам, а в интернет-кафе только IE? Ситуации бывают разные — так что работать сайт должен во всех браузерах. А вот анимация, красивости, градиенты в IE надо отключать — и этого будет достаточно чтобы люди начали переходить. Когда им скажут, что в нормальных браузерах «В Контакте» гораздо красивее они и поставят нормальные браузеры.
Ну и изврат. Мало того, что требует Яваскрипт, так еще и использует не принятый пока стандарт.
Я бы это делал на сервере. Для ИЕ заменял бы строку на … Версия с джаваскриптом мне очень не нравится ввиду хаканутости.
Это не очень надёжно, так как HTML код будет отличаться и могут быть проблемы. Придётся тогда писать что-то типа $('.header, header') или делать хелперы. Тоже решение, но хакности там тоже достаточно. Лично я считаю, что пользователей IE жалеть не надо — работает и ладно. Хотя без JS для других браузеров должно работать.
Надежность этого решения зависит тока от разработчика. Чего не скажеш про решение при помощи JS, когда вся отввенность ложится на клиента. Я бы такое не хотел перекладывать на клиента. Например представьте себе клиента которому надо сграббить контент. Решением на JS вы его заставляете еще JS выполнять. Curl уже не прокатит.

Лично я считаю, что пользователей IE жалеть не надо — работает и ладно

А это уже несусветная глупость, несовместимая с заботой о пользователе.
Клиент которому надо сграбить контент никакой JS не нужен. Фактически JS просто исправляет ошибку IE, а не «включает» JS. Так что используя curl можно без проблем получить html5-документ и распарсить новые теги.
Я предполагаю, что если сайт будет одинаково хорошо работать во всех браузерах, то не будет мотивации для их обновления. Поэтому чем современнее браузер, тем красивее должен работать сайт.
насколько я помню браузеры должны игнорировать незнакомые теги, а не позволять навешивать на них рюшечки. а к утверждению html 5 версия IE будет уже больше десяти.
Поэтому я и говорил, что это не ошибка. Если я не ошибаюсь, то выхода HTML 5 не будет — W3C объявило его динамическим стандартом, которые не будет фиксироваться ради быстрого внедрения инноваций.
Но лично я считаю, такое игнорирование тегов не очень продуманным для обратной совместимости следующих версий стандарта.
это как раз очень полезно для стандартов, а то каждый начнёт свои теги придумывать. w3c в этот момент какой-то дурьё мается и вместо заботы о стандартах думает о необозримом будущем. вот и натыкаемся мы на камни на дороге, пока задрав голову смотрим на звёзды.
XHTML и семантика были взглядами в необозримое будущее, HTML 5 — как раз наоборот возвращение на землю.
ели это возвращение наступит, но вроде w3c в приземлении не заинтересованы.
Ну они и созданы чтобы думать о долгосрочной перспективе, как архитекторы. А-то как показала война браузеров, корпорациям о долгих планах думать не выгодно.
Главная проблема с HTML5 состоит не в том, что там просто теги новые — с этим нормальные браузеры справляются т.к. с самого начала были умнее IE и новые теги в них являются просто инлайн-элементами. Главная проблема — это тру-HTML5-парсер, который работает по принципам, описанным в спецификации. Сейчас такого нет ни у одного из браузеров. Кто напишет и внедрит — будет молодцом.
UFO landed and left these words here
IE прочно утвердился на позиции «самый популярный говнобраузер».
сколько еще лет пройдет прежде чем верстальщики и (веб-разработчики вообще) перестанут плеваться при упоминании его имени.

IE! я проклинаю тебя до третьего колена! (версии 8, 7, 6)
Ну не скажи, в IE 8 используется новый движок, который полностью поддерживает CSS 2.1, не то что в 6 и 7. Вот их можно проклянуть ;)
Почему все тупо повторюшничают и пишут DOCTYPE заглавными, а сокращение (html) прописными? Глупо. Вообще-то теги регистронезависимые.
Тебя не заставляют писать так же, можешь писать HTML.

На yandex.ru, например HTML, на Хабре html

Видимо этакие негласные соглашения и манеры написания тех или иных вещей, типа как константы заглавными называют
Only those users with full accounts are able to leave comments. Log in, please.