Я люблю HTML5. Так же как и Вики Ху и ее недавняя статья « 5 вещей , которые я люблю в HTML5» . Но не все так радужно в саду HTML5. Итак, чтобы восстановить баланс во вселенной SitePoint, вот мои пять любимых мозолей:
1. Лишние метки
HTML5 (технология) предоставляет 30 новых тегов, хотя вы никогда не будете использовать половину из них. Это хорошо, но рассмотрим, как мы кодировали списки навигации в HTML4 / XHTML1:
<ul id="nav"> <li><a href="link1.html">link 1</a></li> <li><a href="link2.html">link 2</a></li> <li><a href="link3.html">link 3</a></li> </ul>
Вот эквивалент HTML5:
<nav> <ul> <li><a href="link1.html">link 1</a></li> <li><a href="link2.html">link 2</a></li> <li><a href="link3.html">link 3</a></li> </ul> </nav>
У этого есть небольшое семантическое преимущество, но действительно ли это имеет значение в реальном мире? Нет.
Недостатком также является увеличение веса страницы и добавление ненужных элементов DOM. Я использую новый синтаксис, но после многих лет превознося преимуществ чистого кода и избегая DIVitis, я чувствую себя немного грязно.
2. Плохие инструменты разработчика
Ваш IDE или редактор полностью поддерживают HTML5, CSS3 и новые API JavaScript? Бьюсь об заклад, это не так.
В старые времена я любил использовать расширения Firefox, такие как HTML Validator, которые выделяли проблемы в разметке при просмотре страницы. Сегодня у нас есть несколько инструментов проверки HTML5, но они, как правило, содержат бета-версии с ошибками, и вам нужно отправить свой код в онлайн-сервис. Это медленно и громоздко — я редко беспокоюсь.
3. Мультимедийное безумие
Новые video
и audio
теги великолепны. К сожалению, продолжающиеся сражения с поставщиками означают, что ваше видео должно быть закодировано в WebM, H.264 и Ogg Theora для работы в браузерах HTML5. О да, тогда вам потребуется резервный Flash для IE6 / 7/8 — и если вы делаете это, зачем беспокоиться о video
теге?
4. Поддержка браузера
Я мог бы разглагольствовать о том, что IE6 / 7/8 и IE9 / 10 не были выпущены в Windows XP. Однако, на мой взгляд, меня больше всего раздражает разнообразие уровней реализации. Если вы хотите использовать функцию HTML5, вы должны постоянно просматривать документацию и тщательно проверять код.
Рассмотрим что-то такое простое, как поле ввода даты. Опера показывает прекрасный календарь выбора. Firefox, Chrome и Safari знают обязательную дату, но предлагают элементарный контроль и проверку. IE9 возвращается к тупому текстовому полю. По иронии судьбы, вы, вероятно, захотите отключить реализацию Opera и вернуться к решениям JavaScript.
5. Обман и путаница
Средства массовой информации набросились на термин «HTML5», и он применяется к любому классному веб-эффекту. Даже если это анимированный GIF. Хотя это не обязательно проблема, когда вы разговариваете с клиентами, это вызывает замешательство у разработчиков:
- Некоторые считают, что HTML5 радикально отличается от HTML4, когда это действительно эволюция.
- Некоторые думают, что эффекты достигаются с помощью HTML, когда это API CSS3 или JavaScript.
- Некоторые не будут касаться HTML5, потому что спецификации W3C все еще находятся на стадии разработки.
- Некоторые не будут рассматривать HTML5, потому что им нужно поддерживать устаревшие браузеры.
- И давайте не будем забывать о проблеме, вызванной префиксами вендора CSS3, и о том, почему мы должны это исправить .
Эти концепции могут быть очевидны, если вы работали в торговле несколько лет, но кто бы хотел стать новичком?
Давайте будем ясны: преимущества HTML5 перевешивают проблемы. Я использую его и рекомендую вам переключиться как можно скорее. Но помните, что вы платите цену, чтобы использовать передовые методы; Не думайте, что код будет работать так, как вы ожидаете, в каждом браузере с поддержкой HTML5!