Давайте разделим кроссбраузерную совместимость на две части: новые HTML5 элементы / атрибуты и HTML5 API .
Элементы : браузерыкоторые не поддерживают новые элементы HTML5 (например, <section>
), например, более старые версии IE, будут просто печатать содержимое и игнорировать стили.Вы можете использовать небольшой JavaScript-хак для создания элементов, которые можно стилизовать в IE: HTML5shim .
Атрибуты : Использование новых атрибутов HTML5 также вполне нормально.Браузеры, которые их не понимают, просто игнорируют их.С Modernizr вы можете проверить, доступна ли функция HTML5 / CSS3, а если нет, просто предоставить запасной вариант с JavaScript.
Чтобы обеспечить поддержку новых HTML5 APIs , выможно использовать полифиллы для добавления поддержки отсутствующих функций.Вот хороший список: https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills
Кстати: хорошая идея использовать некоторые API-интерфейсы HTML5, такие как localStorage
, в качестве прогрессивного усовершенствования.Если это всего лишь небольшая функция, предназначенная для улучшения взаимодействия с пользователем, то можно сделать это с HTML5 и позволить старым браузерам просто иметь нормальную версию.