2010-02-12 3 views
11

Я только начал рассматривать использование HTML 5 api для проекта Rails/JQuery, поэтому я могу использовать этот отличный data- attribute для хранения значений.HTML 5 Browser Compatibility Chart - HTML 5 в старых браузерах?

Я беспокоюсь о проблемах с совместимостью с браузером. У меня есть два вопроса (основные вопросы):

  1. Для того, чтобы использовать HTML 5, нужно ли обновлять браузеры? Как это работает?

  2. Есть ли современный график того, какие функции поддерживает каждый механизм компоновки браузера, более современный, чем этот Wikipedia article on comparing HTML layout engines, а также эту страницу When can I use... HTML 5?

Будет ли проблема с людьми, использующими IE6, например? Множество не-компьютерных людей, с которыми я разговаривал, которые хотят самим использовать интернет-присутствие, а люди, с которыми они говорят, используют IE6!

Если это не проблема, и вы можете использовать HTML 5 в старых браузерах, как вы? Или какие документы я должен смотреть :)? Благодарю.

Обновление: я опубликую несколько интересных ссылок, поскольку я их найду ниже.

FindMeByIP: «Простое приложение, которое показывает поддержку браузеров для CSS3 и HTML5 в удобном для чтения формате с помощью Modernizr». - Browser Support for CSS3 and HTML5

+0

О атрибутах 'data-', см. Http://stackoverflow.com/questions/2412947/do-html5-custom-data-attributes-work-in-ie-6, http://stackoverflow.com/questions/5696464/are-html-data-attributes-safe-for-old-browsers-eg-ie-6 и другие дубликаты. –

+0

На HTML5 см. Http://diveintohtml5.org/introduction.html –

+0

URL-адрес для diveintohtml5 изменился - он отражен в http://diveintohtml5.ep.io – DanBeale

ответ

12

Нецелесообразно рассматривать HTML5 как единую сущность, которую браузеры «поддерживают» или «не поддерживают». HTML5 является:

  • попытка кодифицировать широко распространенную существующую практику за пределы того, что покрыли предыдущие стандарты W3 HTML и DOM, такие как IE и Firefox расширений, которые скопировали другие браузеры, и многолетняя " DOM Level 0 ", которые все воспринимали как должное, но ранее не были написаны в какой-либо спецификации.

  • случайный выбор новых расширений, еще не широко используемых, на что надеются производители браузеров. Некоторые из них уже преуспели, уже вошедшие во все новые браузеры; некоторые из них были выделены в свои собственные спецификации (что намного более доступно для всех), некоторые из них противоречивы, а некоторые вообще не заботятся о них.

Было, ИМО, огромная ошибка, чтобы попытаться покрыть эти две базы сразу. Я бы предпочел стандарт «догоняющего» стиля в формате HTML 3.2 и множество отдельных спецификаций расширения. Но сейчас ничего нельзя сделать.

HTML5 также:

  • Не закончил. Спецификация является массовой, сложной, неполной и, вероятно, будет изменяться в деталях (или, может быть, более того), прежде чем станет стандартом. Никто не может сказать, что они поддерживают HTML5, но пока никто не знает, что такое «HTML5».

В практическом плане: есть некоторые части HTML5, которые уже давно используются. Есть несколько частей, которые можно безопасно использовать в современных браузерах. Есть несколько частей, которые можно использовать в новых браузерах, кроме IE. Есть много частей, которые вы можете использовать с обходными обходами или «грациозным деградации». Есть некоторые части, которые вы никогда не сможете использовать. Пока вам придется изучать каждый отдельно, потому что не будет браузера, который поддерживает абсолютно все в HTML5 на протяжении многих-многих лет. Если даже. Добавляйте дополнительные функции, которые вам нравятся постепенно, когда вы идете вперед, и их поддерживает большая доля браузеров; не будет «большого взрыва», когда каждый обновит свой браузер сразу.

Что касается data- атрибутов, ну, да, вы можете уйти от их использования, поскольку большинство браузеров всегда позволяли любым старым атрибутам проходить в любом случае. Это типично для нескольких расширений HTML5, браузеру не нужно явно «поддерживать» его, чтобы он работал.

Но поскольку есть другие способы передачи данных (классы, комментарии, блоки скриптов и т. Д.), Я не полностью убежден, что стоит отказаться (универсально поддерживается, можно утверждать против фиксированного стандарта). Страницы HTML4/XHTML1 для это еще одна особенность.

10

Возможно, вы захотите зарегистрироваться diveintohtml5.ep.io и modernizr.com.

Modernizr это небольшая и простая библиотека JavaScript, которая позволяет вам воспользоваться преимуществами новых веб-технологий (CSS3, HTML 5), сохраняя при этом тонкий уровень контроля над старыми браузерами, которые, возможно, еще не поддерживают эти новые технологии.


Вот интерактивная карта поддержки HTML особенность: http://a.deveria.com/caniuse/

Как вы можете видеть, Есть много браузеров, которые поддерживают очень немногие из особенностей H5.

+0

+1 для отличных ссылок –

0

Мой ответ может быть не таким, как вы хотели бы, но я бы сказал - не надо. Не используйте HTML 5 еще.

+0

Я был вроде как думал, что:) спасибо за подтверждение –

+0

Окончательный «практический» набор функций HTML5 будет во многом зависеть от того, что поддерживает Internet Explorer 9. Это, в свою очередь, будет зависеть от того, сколько сайтов * уже * перемещено в HTML5 (например, если все популярные сайты поддерживают h5-видео, IE9 тоже придется его поддерживать). Итак, чем больше сайтов делает HTML5 как можно скорее, тем лучше в долгосрочной перспективе. http://wiki.whatwg.org/wiki/What_you_can_do. – Seth

+2

Если бы вы подождали завершения CSS, вы бы не начали использовать его до 2 лет назад. HTML5 не станет окончательным до двух полных реализаций. И ожидание IE означает, что вы никогда не увидите HTML5. Итак, используйте части поддержки современных браузеров HTML5 и пусть IE деградирует изящно. Те из нас, кто это делает, прекрасно ладят. В противном случае убирайтесь с дороги еще на 10 лет. – Rob

5

Если вы используете JQuery, обеспокоены совместимости, и единственная причина, вы исследуете HTML5 является использование набора data-* атрибутов, то я хотел бы рассмотреть вопрос о переходе обратно к более поддерживаемой DOCTYPE и используя $().data() метод JQuery, в который позволяет связывать произвольные фрагменты данных с узлами DOM, подобно тому, как это делает набор атрибутов data-.

Пример:

<button id="set">Click me!</button> 

$('button#set').click(function(){ 
    if($(this).data('name')){ 
     alert('Clickin\' again so soon, ' + $(this).data('name') + '?'); 
    }else{ 
     $(this).data('name', prompt('Hey good lookin\', what\'s your name?', '')); 
    } 
}); 

Try it out!

+0

Как это соотносится или интегрируется с данными? –

+0

Он выполняет примерно тот же конец, что и данные, за исключением использования JavaScript вместо HTML. В демонстрации вы заметите, что результаты prompt() сохраняются как $ ('button # set'). Data ('name'). Это примерно эквивалентно 2010-02-12 17:53:53

+2

Он фактически использует атрибуты данных, где они доступны, насколько я знаю. – Kzqai

0

Использование Protovis. Он использует javascript и HMTL5. Здесь нет Flash. Что еще более важно, Protovis имеет лицензию BSD. Таким образом, вы можете использовать его в коммерческих проектах. Хотя D3 - это более новый проект, над которым работают авторы Protovis.

0

Хотя этот вопрос является старым (ish), тема поддержки браузера всегда будет актуальной. Нет правильного пути или неправильного способа приблизиться к нему, но просмотрите одну из многих таблиц поддержки функций браузера, которые показывают, какой процент пользователей будет видеть определенную функцию, а затем быть жестокой.

Не пытайтесь угодить всем. Не убивайте себя, чтобы поймать несколько процентов Люддита, которые все еще используют IE7. В следующем году замените это для IE8. Лично я был бы рад потерять 8%, чтобы потратить это время на передовые методы мышления, а не на питание для тех, кто не знает, что такое обновление.

Возможно, ваш сайт заставит людей обновиться. Эти люди в конце концов придут.

Смежные вопросы