Поддержка устаревших браузеров

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

Кроссбраузерность, несомненно, важна. Но любые требования должны иметь под собой рациональную основу.

Многие крупные интернет-проекты (например, Google, Яндекс, YouTube, VK) или полностью отказались от поддержки устаревших версий Internet Explorer или поддерживают их лишь частично и выводят пользователям сообщения с рекомендацией обновить свой браузер. Доля пользователей устаревших IE сейчас составляет меньше 1%, поэтому такое решение является вполне обоснованным.

Если же поддержка устаревших браузеров всё же требуется, то есть две популярные методики её реализации — progressive enhancement (прогрессивное улучшение) и graceful degradation (изящная деградация). В первом случае сайт делается под устаревшие браузеры, а затем к нему добавляются современные элементы. Во втором случае — сначала делается современный сайт, а затем для старых браузеров отключаются неподдерживаемые ими функции. Оба этих подхода позволяют создавать качественные и сопровождаемые решения, так как учитывают тот факт, что не все современные функции можно заставить корректно работать в браузере, которому больше 10 лет. Тем не менее, часто встречается требование абсолютной идентичности в работе сайта на всех платформах. Как правило, это приводит к существенному урезанию функционала сайта и к созданию трудносопровождаемых решений (программисты такой подход красноречиво называют «костылями»: это, конечно, тоже способ передвижения, но не самый эффективный и грациозный).

Cтатьи по теме:

Все технологии фронтенд-разработки: язык разметки HTML, таблицы стилей CSS и язык программирования JavaScript
Содержание и внешний вид каждой страницы сайта определяется HTML-кодом и содержанием таблицы стилей CSS, а поведение интерфейса — скриптами JavaScript.
Валидность и семантичность HTML
Валидность и семантичность HTML кода определяет качество сайта с точки зрения поисковых систем.
Адаптивный и отзывчивый дизайн
​Для обеспечения хорошего отображения сайтов на мобильных устройствах (планшетах и смартфонах) обычно создаётся отзывчивый или адаптивный дизайн. Суть подхода заключается в изменении размера и расположения блоков, коррекции размера шрифтов, а также в отключении не самых важных блоков в случае, если пользователь заходит на сайт с устройства с небольшим экраном.
Кроссбраузерность — корректная работа сайта в разных браузерах
Браузеров много и они несколько по-разному отображают страницы. Способность сайта корректно отображаться в разных браузерах называется кроссбраузерность.
HTML5 — новая версия стандарта
HTML — это язык для структурирования и представления содержимого, HTML5 (HyperText Markup Language, version 5) — это пятая версия стандарта, которая ещё находится в разработке, но уже является вполне рабочей. Цель разработки HTML5 — улучшение уровня поддержки мультимедиа-технологий при сохранении удобочитаемости кода для человека и простоты анализа для парсеров (в частности, поисковых систем).
Twitter Bootstrap — фронтенд-фреймворк
Клиентский html-, css- и js-фреймворк, использование которого позволяет существенно ускорить разработку клиентской части сайта или веб-приложения. Из основных возможностей — динамический дизайн по сетке, типографика, множество компонентов (веб-формы, таблицы, навигационные элементы, кнопки и прочие контролы), javascript-плагины (выпадающие меню, слайдеры, оповещения и прочее)...
Увеличиваем скорость работы сайта при помощи оптимизации JavaScript
Сайт может работать быстрее, если выполнены следующие рекомендации по оптимизации JS-кода. Если же этого не сделать, то сайт будет недостаточно быстро отображаться на стороне клиента.

Тематические технологии:

Язык разметки HTML
CSS — каскадные таблицы стилей
Язык программирования JavaScript
Библиотека React
Библиотека MobX
Библиотека MobX State Tree
Система сборки WebPack
Платформа NodeJS