Современный Интернет предоставляет множество функций, таких как обмен мгновенными сообщениями, электронная почта, потоковое видео. Однако основой, на которой держится сеть интернет являются сайты. На сегодняшний момент количество сайтов в сети более 10 миллиардов, и каждый день число увеличивается. В основе практически всех сайтов сети лежат три технологии, которые позволяют обеспечить представление информации в различных ее видах:
- технология HTML — отвечает за структурирование информации и выделение логических блоков на странице сайта
- технология CSS — используется для оформления и позиционирования, представления информации на странице
- технология JavaScript — используется для реализации динамики и интерактивного взаимодействия с пользователем.
Появление технологии HTML было обусловлено необходимостью создания простого средства разметки документов для облегчения навигации по информации, которым бы могли воспользоваться люди не имеющие специальных технических знаний без которой представить современную сеть невозможно. Давайте приступим к изучению HTML более подробно.
Введение в язык разметки. Язык разметки гипертекста HTML
Язык разметки гипертекста — HTML (hyper text markup language), это набор правил и знаков (тегов), которые используются для структурирования (разметки) текстовой информации, добавления в текст внешних изображений, создания таблиц, списков и т.д. Текст, размеченный с помощью HTML интерпретируется браузером, в результате чего, пользователи видят не исходный код с элементами разметки, а итоговый результат обработки страницы.
Одной из особенностей HTML является возможность создавать в коде ссылки на сторонние файлы (документы) или определенные места в файлах, что значительно упрощает, как навигацию между страницами, так и повышает удобство использования документов. Подобная связь между документами в формате HTML называется гиперссылками, а использование гиперссылок позволяет организовывать удобную и простую связь между файлами.
Развитие HTML, версии. Текущие используемые версии HTML и XHTML
Удобство использования и простота освоения позволили HTML выйти за пределы инструмента для научного использования и определили его как основу сети Интернет.
В ходе становления и развития HTML принято выделять следующие этапы (версии):
- HTML 0.9 — описывал основы языка и протоколов использования, принят в 1991 году
- RFC 1866 (иначе HTML 2.0) — принятый в ноябре 1995 года содержал подробное описание языка, правил написания, тегов, атрибутов, ввел описание версий в документе HTML. В данной версии вводятся большинство современных тегов, без которых немыслимо применение HTML на данный момент: заголовки, параграфы, изображения, гиперссылки и списки.
- HTML 3.2 (принят в январе 1997 года) — главной особенностью версии стала поддержка ее производителями браузеров (Microsoft и Netscape), что в дальнейшем заставило разработчиков придерживаться существующего стандарта. В данной версии вводятся таблицы, обтекание текстом элементов, верхние и нижние индексы.
- HTML 4.0 (декабрь 1997 года) — является не стандартом, а набором рекомендаций W3C, включал в себя три вида рекомендаций: строгий, транзитный и frameset. Основной задачей рекомендаций 4.0 были уменьшение кроссбраузерной несовместимости, легализация тегов, которые самовольно вводили в использование производители браузеров.
- HTML 4.01 (декабрь 1999 года) — вначале выпущен как набор рекомендаций, а спустя два года как международный эталон организации по стандартизации. Утвердил основные правила использования тегов и атрибутов.
- HTML5 (2014 год) — основное направление действий стандарта это появление “семантических” тегов, ориентировка на системы автоматической обработки страниц. Появляется большое количество новых тегов, некоторые теги меняют первоначальный смысл.
- HTML 5.1 — на текущий момент в разработке. Ориентировочное время выпуска осень-зима 2016 года.
Параллельно с HTML долгое время существовал XHTML (extensible hypertext markup language — расширяемый язык гипертекстовой разметки) — язык разметки на основе XML.
Файлы написанные на XHTML имели более строгий синтаксис повторяющий XML правила, и обрабатывались парсером XML, при этом исправления ошибок не производилось. Данный формат был внедрен для расширения возможностей HTML и совместимости с различными сервисами сети.
Следствием большой схожести синтаксиса HTML и XHTML приводило к путанице правил написания и появлению огромного множества некорректно написанных документов.
С появлением стандарта HTML5 работа над XHTML прекращена, таким образом HTML5 вобрал в себя два стандарта.
Вопросы межбраузерной совместимости. Война браузеров
Как видно из версий HTML и принятия стандартов, первое время, усилия контролирующих органов были направлены на согласование правил отображения, которые реализовывались в различных браузерах по разному. Более того, наличие всего нескольких игроков на рынке, а долгое время господствовали браузеры от Microsoft и Netscape, позволяло данным игрокам не ориентироваться на стандарты, а навязывать правила отображения и обработки страниц пользователям.
Подобная ситуация, когда страница отображалась в браузерах по разному, усложняет написание страниц и приводила к кроссбраузерной несовместимости.
Популяризация и развитие сети Интернет, увеличение количества пользователей, привело к необходимости создания удобных инструментов для навигации по страницам, что обусловило появление альтернативных браузеров.
Одной из задач, которые стояли перед созданными альтернативными браузерами являлась задача завоевания популярности, что было возможно только поддержкой стандартов.
Отток пользователей на альтернативные браузеры, которые чаще всего работали значительно быстрее и адекватнее браузеров от основных игроков рынков усилила конкуренцию за пользователей, что привело к повышению качества браузеров, внедрением новых функций для завоевания симпатий пользователей.
Гонки технологий между браузерами, причиной которых явилась конкуренция, называется война браузеров. Данная “война” — позволила создать большое количество популярных на сегодняшний момент браузеров, которые в своем развитии значительно ушли вперед от простого отображения страниц.
На сегодняшний момент, существует множество решений для просмотра страниц, как на desktop, так и на mobile платформах, что вынуждает разработчиков, реализовывать кроссбраузерную совместимость, как выполнением стандартов, так и реализаций совместимости, за счет использования JavaScript, или подгрузкой стилей CSS предназначенных для конкретного браузера.
W3C
Популярность языка разметки HTML и использование его в качестве основы сети Интернет, привело к необходимости управления стандартами HTML. Разработчик идеи гипертекста Тим Бернерс-Ли основал в 1994 году и возглавил организацию которая занимается развитием HTML и ее стандартов. Данная компания получила название World Wide Web Consortium, или сокращенно W3C.
Основной задачей консорциума является обеспечение открытости стандартов сети Интернет и ее интернационализации. В соответствии с этой идеей вся документация по регулированию принципов работы сети носит статус “рекомендаций”, и является открытой. Любой разработчик имеет право на реализацию стандартов, без каких-либо ограничений и отчислений W3C.
Подход открытости и рекомендаций, а не обязательств является основной идеей развития сети Интернет. Однако открытость стандартов, имеет и отрицательную сторону, так как не обязывает разработчиков придерживаться данного стандарта, что усложняет реализацию сайтов под браузеры разных разработчиков.
Учитывая идеи открытости, W3C отказалось от идей сертификации, т.е. не осуществляет соответствие проверки стандартов и выдачи сертификатов. С другой стороны любой разработчик может проверить правильность написания логики html документов и правильность использования тегов путем прохождения валидации на сайте W3C, абсолютно бесплатно.
Валидация — это проверка соответствия html документов заявленному в них стандарту HTML. В результате валидации разработчик либо проходит валидацию, либо получает список рекомендованных исправлений.
Валидатор — программа, которая проверяет соответствие загруженного файла стандартам HTML. В ходе работы валидатор проверяет следующие пункты:
- правильное написание тегов;
- актуальность тегов и возможность их применения в данной версии HTML;
- правильность закрытия и вложения тегов;
- правильность использования атрибутов и многое другое.
Результат, выводится в виде списка ошибок и предупреждений.
Пример валидатора от разработчика стандартов для сети Интернет: The W3C Markup Validation Service
Разработчик должен стараться создавать страницы таким образом, чтобы они проходили валидацию.
В ходе работы W3C над стандартами HTML все рекомендации проходят следующие этапы: черновик, рабочий проект, последний созыв, возможная рекомендация и предполагаемая рекомендация. В ходе каждого этапа содержимое рекомендаций может изменяться полностью. После прохождения данных этапов, появляется официальная рекомендация W3C.
В ходе эксплуатации рекомендаций, часто вносятся исправления и дополнения, которые публикуются на сайте. Так, например тег hgroup введенный в стандарте HTML5 спустя некоторое время было рекомендовано не использовать в документах.
Все рекомендации доступны на сайте W3C и содержат большое количество примеров.
Теги — основные элементы структуры HTML
Понятие тегов и атрибутов
Для управления отображением документа, язык HTML использует управляющие структуры (иногда встречается название дескрипторов) — теги. Для выделения тегов среди остального текста документа, используются специальные символы — угловые скобки (angle brackets). Пример тега:
1 |
<p>Hello</p> |
Теги можно разделить на две категории:
Парные теги — теги, состоящие из открывающего тега (например
) и закрывающего тега (для примера выше это
). Парные теги оборачивают код, позволяя изменять его свойства или вид отображения. Внутри парных тегов могут присутствовать другие теги.
Парными тегами в документе являются теги:
1 2 3 4 |
<html> </html> <head> </head> <title> </title> <body> </body> |
Непарные теги — теги состоящие из одного элемента. Непарные теги создают один элемент на странице, либо служат для изменения свойств документа, подключения файлов и т.д.
В приведенном выше примере непарными тегами являются:
1 2 |
<!DOCTYPE html> <meta> |
Часто, функции парных и непарных тегов изменяются за счет атрибутов, которые указываются внутри угловых скобок после имени тега. Например, атрибутами в примере являются:
1 2 |
lang=”en” charset=”utf-8” |
Количество атрибутов в теге не ограничено.
По умолчанию все теги можно разделить по способу отображения на две большие группы:
- блочные элементы — элементы которые занимают всю строку при отображении, даже если их содержимое меньше ширины окна браузера. По умолчанию блочные элементы не могут располагаться на одной строке, т.е. растягиваются на всю ширину окна браузера. Заголовки (h1, h2, h3, h4…) и параграфы — блочные элементы;
- строчные элементы — элементы отображаются в одной строке друг за другом.
Рассмотрим назначение тегов.
Рассмотрим теги используемые в пустом HTML документе:
<!DOCTYPE html> — непарный тег, который находится в начале документа. Указывает браузеру какой стандарт необходимо использовать для интерпретации файла. Данный тег указывает на использование современного стандарта HTML 5. Указание на стандарт ставит ограничения на используемые теги, правила верстки. Стандарты версий 4.01, 4.0, 3.2 на сегодняшний момент считаются устаревшими и не рекомендуются к применению;
1 |
<!DOCTYPE html> |
<html> — тег, который открывает и закрывает страницу HTML. Парный тег. Указывает область файла, которая обрабатывается браузером как HTML документ. Закрывающий