[an error occurred while processing this directive]
Для разработки Internet/Intranet-приложений используется широкий спектр языков и средств программирования:
Гипертекст играет роль своеобразного клея, который соединяет различные информационные ресурсы.
Статический гипертекст, хранящийся на Web-сервере, отображается и служит для навигации, может поддержать диалог с пользователем - ввод данных по электронной форме с пересылкой на сервер.
Возможна генерация динамического гипертекста с использованием данных из других ресурсов (например, БД).
Для представления гипертекста служит язык разметки HTML, обеспечивающий независимость описания Web-структур от броузеров и их однозначная интерпретация на разных платформах.
3.1.1. Предшественники HTML
Начало истории HTML следует отнести к далекому 1986 году, когда Международная организация по стандартизации (ISO) приняла стандарт ISO-8879, озаглавленный "StandardGeneralizedMarkupLanguage" (SGML). Стандарт этот посвящен описанию SGML - обобщенного метаязыка, позволяющего строить системы логической, структурной разметки любых разновидностей текстов. Слово "структурная" означает, что управляющие коды, вносимые в текст при такой разметке, не несут никакой информации о внешнем виде документа, а лишь указывают границы и соподчинение его составных частей, т.е. задают его логическую структуру.
Создатели SGML стремились максимально абстрагироваться от проблем представления электронного текста в разных программах, на разных компьютерных платформах и устройствах вывода. Так, если с помощью SGML размечается документ, содержащий заголовки, идеология языка запрещает указывать, что такой-то заголовок должен набираться, скажем, шрифтом Times полужирного начертания кегля 12 пунктов. SGML в таком случае требует ограничиться указанием на уровень заголовка и его место в иерархической структуре документа.
Благодаря таким ограничениям размеченный текст сможет без труда интерпретировать любая программа, работающая с любым мыслимым устройством вывода. К примеру, при работе в графическом интерфейсе заголовок может действительно выводиться полужирным шрифтом повышенного кегля; программа, использующая текстовый интерфейс, выделит его пустой строкой сверху и снизу и, возможно, повышенной яркостью символов; синтезатор речи, читающий документ вслух, сможет отметить заголовок паузой и изменением интонации. Можно сказать, что SGML-разметка обнажает нематериальную "душу" текста, для которой впоследствии любая программа-интерпретатор сможет подобрать подходящее к случаю "тело".
Однако абстрактность SGML этим не исчерпывается. SGML представляет собой не готовую систему разметки текста, а лишь удобный метаязык, позволяющий строить такие системы для конкретных обстоятельств. Жизнь многообразна и непредсказуема: сегодня вам требуется выделять в текстах заголовки, а завтра, возможно, понадобится размечать подписи в письмах, математические формулы или имена действующих лиц в пьесе. Стандарт SGML определяет лишь синтаксис записи элементов разметки - тегов - и их атрибутов, а также правила определения новых тегов и указания структурных отношений между ними. Для практической же разметки документов нужно приложение SGML - набор определенных в соответствии со стандартом тегов, представляющий собой, по сути, формальное описание структуры документа.
Cам по себе SGML не получил сколько-нибудь заметного распространения - до тех пор, пока в 1991 г. сотрудники Европейского института физики частиц (CERN, http://www.cern.ch), занятые созданием системы передачи гипертекстовой информации через Internet, не выбрали SGML в качестве основы для нового языка разметки гипертекстовых документов. Этот язык - самое известное из приложений SGML - был назван HTML (HyperTextMarkupLanguage, "язык разметки гипертекста").
Справедливости ради стоит отметить, что на время появления HTML существовали (и были весьма распространены) и другие языки разметки текста, например TeX и RTF.
3.1.2. Контейнеры и теги HTML
Язык HTML позволяет определять структуру электронного документа с полиграфическим уровнем оформления; результирующий документ может содержать самые разнообразные элементы: иллюстрации, аудио- и видео- фрагменты и так далее. Язык включает в свой состав развитые средства для специфицирования нескольких уровней заголовков, шрифтовых выделений, различных групп объектов, например, словари, каталоги или меню для размещения иллюстраций и других фрагментов, а также множество других возможностей.
Теговая модель описания документа позволяет представить его в виде совокупности элементов, каждый из которых окружен тегом (управляющим HTML-кодом).
Документ HTML представляет собой не что иное, как обычный ASCII-файл, с добавленными в него управляющими HTML-кодами (тегами). Каждый тег начинается с левой угловой скобки "<" и заканчивается правой угловой скобкой ">". Между скобками записывается идентификатор тега и, если необходимо, дополнительные аргументы. Некоторые теги используются вместе с закрывающей парой, которая сигнализирует об окончании области действия соответствующего назначения. Закрывающая пара после левой угловой скобки содержит символ "/" (например, для тега наклонного шрифта <I> закрывающая пара представляет собой </I>, для тега заголовка <TITLE> закрывающей парой будет </TITLE>).
Иногда тег с закрывающей парой называют контейнером в том смысле, что внутри него можно поместить содержательную информацию определенного характера. Структура HTML-документа позволяет использовать вложенные друг в друга контейнеры.
Такой подход предполагает наличие еще одной компоненты технологии - интерпретатора языка. В WWW функции интерпретатора в основном выполняются клиентом-броузером.
Группы тегов HTML
Все теги HTML по их назначению и области действия можно разделить на следующие основные группы:
Структура HTML-документа
HTML-документ представляет собой иерархию элементов документа, заключенных в "теговые скобки" (рисунок 3.1). В секцию головы всегда помещается заглавие документа (не путать с именем файла), которое при просмотре HTML-страницы появляется в заголовке окна броузера. Заглавие показывает общий смысл HTML-страницы. Для определения заглавия HTML-страницы применяется теговый контейнер <TITLE>, например:
<TITLE>Моя любимая страница</TITLE> <HTML> <HEAD> Голова документа </HEAD> <BODY> Тело, Содержание документа </BODY> </HTML>
Рис. 3.1. Теговая структура HTML-документа
Кроме классической структуры простого гипертекстового документа, современные броузеры поддерживают кадры - не перекрывающиеся области окна броузера, в которых возможно одновременно отображать несколько документов.
Для формирования кадров используется контейнер набора кадров FRAMESET и тега FRAME. Альтернативное содержимое задается с помощью контейнера NOFRAMES:
<HTML> <HEAD> Голова документа </HEAD> <Frameset ...> <FRAME ...> Связывание кадров <FRAME ...> c документами </FRAMESET> <NOFRAMES> Часть документа только для старых броузеров </NOFRAMES> </HTML>
Начальный тег FRAMESET определяет разбиение окна по строкам и столбцам, например:
<FRAMESET ROWS="60%,*" COLS="60%,20%, *">.
Тег кадра FRAME устанавливает какой документ (атрибут SRC) первоначально выводится в кадре. Атрибут Name определяет имя целевого кадра для указания его в гиперссылках.
Одна из распространенных компоновок кадров содержит левый узкий кадр для оглавления в виде гиперссылок и правый кадр для показа документов по этим ссылкам. Другая компоновка предлагает разбиение на верхний и нижний кадры.
Посредством вложения контейнеров FRAMESET можно реализовать более сложные компоновки кадров, например, добавить верхний и нижний колонтитулы.
Оформление блоков гипертекста
Для придания большей выразительности HTML-страницам применяются следующие теги и их закрывающие пары:
В текст HTML-страницы могут быть добавлены заголовки и подзаголовки (с уровнем вложения до шести). Для этого применяются теги <H1>, <H2>, <H3>, <H4>, <H5>, <H6> с соответствующими закрывающими тегами.
Для форматирования строк и абзацев используют следующие теги:
<P> ... </P> - оформление отдельного абзаца,
<BR> - принудительный перевод строки,
<HR> - горизонтальная черта (разделитель),
<PRE> ... </PRE> - передача текста без дополнительного форматирования.
Это так называемые способы физического выделения, они не зависят от реализации броузера, а есть логические стили (<EMP>, <BIG> и др.), форматирующие текст по-разному в различных броузерах.
Для оформления перечней в гипертексте определены три типа списков: неупорядоченные <UL>, упорядоченные <OL> и списки определений <DL>. Пример оформления неупорядоченного списка:
<UL> <LI> Первый элемент <LI> Второй элемент <LI> Последний элемент </UL>
Списки определений служат для создания глоссариев и индексов:
<DL> <DT>Первый термин <DD>Определение первого термина <DT>Второй термин <DD>Определение второго термина </DL>
Совместно с механизмом ссылок перечни позволяют строить простые меню.
Описание таблиц
Таблица представляет собой расположенную на HTML-странице прямоугольную сетку строк и столбцов, в которую можно вводить разнообразную информацию, включая текст, числа, связи и даже изображения. Общий формат описания таблицы следующий:
<TABLE> Контейнер таблицы <CAPTION> Контейнер заголовка таблицы Заголовок таблицы </CAPTION> <TR> Контейнер строки таблицы <TH>Заголовок 1-го столбца</TH> Контейнеры заголовков столбцов <TH>Заголовок 2-го столбца</TH> . . . </TR> <TR> <TD>Первая ячейка</TD> Контейнеры ячеек <TD>Вторая ячейка</TD> . . . </TR> . . . </TABLE>
Все описание таблицы размещается в контейнере TABLE. Чтобы показать в таблице рамку применяют атрибут BORDER тега <TABLE>. Дополнительно задается заголовок таблицы - контейнер CAPTION:
<CAPTIONALIGN=выравнивание>Заголовок таблицы</CAPTION>
где выравнивание принимает значения: TOP - вверху, BOTTOM - внизу.
Таблица определяется по строкам с помощью контейнера TR, в который вложены контейнеры ячеек TD, разделенные по столбцам.
При этом в контейнере ячейки можно помещать не только текст, но и метки для форматирования текста (например, <B> или <I>), списки и даже изображения, а также вложенные таблицы.
<TABLE> <TR> <TD>One <TD><IMGSRC="picture.jpg" ALT=" "> <TD><FONTSIZE=5>W<FONTSIZE=3>Three </TR> </TABLE>
Обратите внимание, что в таблицах допускается смешивать текст и графику. Закрывающие теги </TR> и </TD> можно опускать.
Стандартным выравниваем ячеек таблицы является выравнивание влево ячеек с данными и центрирование ячеек надписей.
Кроме этого, внутри тегов <TD> и <TH> можно осуществлять выравнивание с помощью атрибута ALIGN со значениями: LEFT (влево), RIGHT (вправо) или CENTER (центрировать).
Кроме горизонтального выравнивания в клетках таблиц можно применять и вертикальное выравнивание текста. В этом случае в тегах <TD> и <TH> применяется атрибут VALIGN с выравниванием по верху (TOP), по низу (BOTTOM) и выравниванием по средине (MIDDLE).
Для перекрытия текстом нескольких строк или столбцов внутри тегов <TD> и <TH> используются специальные атрибуты: COLSPAN=m для перекрытия нескольких колонок (где m - число колонок), и ROWSPAN=n для перекрытия нескольких столбцов (где n - число столбцов).
Таблицы служат хорошим инструментом для упорядочения информации на Web-странице.
Формы для организации диалога
Форма FORM служит для организации диалога по выбору и вводу данных, по нажатию экранных кнопок. Обработка введенных данных осуществляется серверной программой, заданной в атрибуте ACTION. Обмен данными между броузером и сервером производится через интерфейс CGI с помощью методов GET (через переменные среды) и POST (через входной и выходной потоки), задаваемые атрибутом METHOD. В обмене участвуют пары "имя=значение" для диалоговых переменных.
При наличии нескольких форм на HTML-странице необходимо их именовать (атрибут NAME).
Основными элементами формы являются элемент ввода INPUT, многострочная область текста TEXTAREA и меню SELECT (рисунок 3.2).
<FORM NAME=форма ACTION=сервер_прогрMETHOD=метод_доступа <INPUTTYPE=тип NAME=перем...> Ввод данных ... <TEXTAREANAME=имя> многострочный текст </TEXTAREA> <SELECTNAME=имя> Выбор из меню (списка) <OPTION> Первое <OPTION> Второе <OPTION> Третье </SELECT> </FORM>
Рис. 3.2. Основные элементы HTML-формы
Элемент INPUT является наиболее универсальным, реализует наибольшее число диалоговых элементов, тип которых определяется атрибутом TYPE.
Поля ввода имеют типы:
Для полей выбора различают типы:
В формах поддерживаются экранные кнопки следующих типов:
Каждый элемент INPUT обязательно имеет имя переменной, задаваемое атрибутом NAME, оно служит для идентификации переменной при обмене данными с обрабатывающей программой.
Для полей ввода можно задавать значения по умолчанию с помощью атрибута VALUE. Этот же атрибут для текстовых кнопок определяет надписи на них. Начальное состояние полей выбора задается атрибутом CHECKED.
Атрибут SIZE определяет размер видимой части поля ввода, а MAXLENGTH - максимальное число символов, которое можно ввести в поле. С помощью атрибута ALIGN обеспечивается выравнивание введенного значения.
Специальный тип HIDDEN позволяет скрыть элемент диалога, а также может служить для хранения значений рабочих переменных.
Для графических кнопок атрибут SRC задает адрес изображения.
Элемент TEXTAREA предназначен для ввода строк длинного текста. Каждая область поименована (атрибут NAME) и имеет два параметра для определения ее размера: число видимых строк ROWS и ширина области COLS. Текст внутри контейнера TEXTAREA отображается на экране.
Элемент SELECT с вложенными элементами OPTION предназначены для организации меню разных типов: выпадающих, с множественным выбором и графических (определяется атрибутом TYPE).
В некоторых броузерах поддерживаются дополнительные атрибуты, упрощающие контроль данных. Так параметры MIN и MAX позволяют контролировать вводимое числовое значение по диапазону допустимых значений. В атрибуте ERROR приводится текст сообщения об ошибке при неправильном вводе. Для создания нередактируемых полей вывода или запрета редактирования используется атрибут DISABLE.
3.1.3. История развития HTML. Диалекты и стандарты
Изначально HTML, как и положено SGML-приложению, разделял все особенности идеологии SGML. Из сорока с небольшим тегов HTML версии 1.2 (датированной июнем 1993 г.) всего три, да к тому же и не рекомендованных к использованию, тега осмеливались намекать на физические параметры представления документа. Вся разметка была чисто логической, и лишь в описательной части стандарта, сопровождающей формальное определение тегов, можно было прочесть что-нибудь вроде "в графических броузерах действие этого тега может передаваться курсивным начертанием".
А первым (и долгое время единственным) графическим броузером в те далекие времена была программа Mosaic, разработанная, как и собственно WWW, в научном учреждении - Национальном центре суперкомпьютерных приложений США (NationalCenterforSupercomputerApplications, NCSA; http://www.ncsa.uiuc.edu). Так что нет ничего удивительного в том, что в этот "золотой век" никаких противоречий между официальными стандартами и их реализацией в броузерах еще не существовало. HTML неторопливо развивался, оставаясь в рамках парадигмы структурной разметки, и в апреле 1994 г. началась подготовка спецификации следующей версии языка - 2.0. Этим занимался образованный в том же году Консорциум W3 (W3 Consortium, сокращенно W3C; http://www.w3.org/pub/WWW), унаследовавший от CERN верховную власть и авторитет в мире WWW.
В настоящий момент консорциум, имеющий статус "международной некоммерческой организации", объединяет свыше 150 организаций-членов, в том числе фирмы Netscape, Microsoft и множество других. Однако в 1994-1995 г.г. его членами были почти исключительно университеты и научные учреждения. Столь "академический" состав W3C сказывался как на самих документах, публикуемых консорциумом, так и на процедуре (и особенно на сроках) их принятия. Достаточно сказать, что окончательный вариант HTML 2.0 (http://ds.internic.net/rfc/rfc1866.txt), единственным серьезным усовершенствованием в котором был механизм бланков (форм) для отсылки информации с компьютера пользователя на сервер, был официально утвержден лишь в сентябре 1995 г., когда в W3C уже полным ходом шло обсуждение HTML 3 (или, как его называли поначалу, "HTML+").
Пожалуй, проект HTML 3 (http://www.w3.org/pub/WWW/MarkUp/html3/) - самая яркая и неоднозначная страница в истории языка. Работа над ним началась в марте 1995 г., и первоначальный вариант стандарта включал в себя много интересных нововведений - теги для создания таблиц, разметки математических формул, вставки обтекаемых текстом рисунков, примечаний и др. Но самое главное - HTML 3.0 был попыткой разрешить уже достаточно очевидное к тому времени противоречие между идеологией структурной разметки и потребностями пользователей, заинтересованных в первую очередь в гибких и богатых возможностях визуального представления.
Чтобы разрешить это противоречие, не оскверняя заветов отцов-основателей HTML, авторы версии 3 ввели в ней поддержку нового средства - так называемых иерархических стилевых спецификаций (CascadingStyleSheets, CSS; http://www.w3.org/pub/WWW/TR/REC-CSS1). Система CSS формально независима от HTML, имеет совершенно иной синтаксис (более того, HTML 3 можно стыковать с разными реализациями CSS, обладающими разным синтаксисом и возможностями), не наследует никаких идеологических ограничений и позволяет, уже в совершенно иных терминах, задавать параметры визуального представления для любого тега HTML. С помощью CSS автор может наконец с чистой совестью указать, каким шрифтом какого кегля набирать заголовки такого-то уровня. И, что самое важное, достигнуто это было не введением новых тегов, а разработкой механизма, позволяющего влиять на интерпретацию уже существующих тегов логической разметки, причем с учетом контекста их употребления. Броузеры с текстовым интерфейсом или с синтезатором речи смогут с легкостью проигнорировать эту дополнительную информацию и использовать для оформления свои обычные средства.
Слово cascading в названии системы CSS служит напоминанием о том, что в действительности на вывод каждого тега в документе могут оказывать влияние сразу несколько стилевых спецификаций, образующих иерархическую систему: например, поверх спецификаций, относящихся к конкретному документу, может действовать стилевой файл, общий для всех документов на сервере. Кроме того, пользователь броузера, поддерживающего CSS, может указать свои собственные параметры вывода для тех или иных тегов. Конфликты, которые при этом возникают, разрешаются в пользу более частных, узких спецификаций: то, что указано для конкретного документа, берет верх над спецификациями для всего сервера, а параметры вывода тега в данном контексте имеют преимущество перед параметрами для того же тега "вообще", без учета контекста. В случае же конфликта спецификаций, заданных пользователем, с установками автора страницы побеждают последние, хотя пользователь может при желании изменить эту ситуацию на обратную.
Нет сомнения, что CSS - почти идеальное средство избавить HTML от наследственных дефектов и перевести его развитие на принципиально новые рельсы. Тем досаднее то, как сложилась судьба этого замечательного изобретения. Поскольку спецификацию CSS увязали с другими нововведениями HTML 3, W3C долго не утверждал ее в качестве официального стандарта; задерживалось доведение до более или менее завершенного вида, при котором стала бы возможной ее реализация в коммерческих продуктах.
А между тем коммерческое освоение WWW не заставило себя долго ждать. В начале 1994 г. группа разработчиков броузера Mosaic под предводительством Джеймса Кларка, который за несколько лет до того создал и "вывел в люди" компанию SiliconGraphics, основала корпорацию NetscapeCommunications и вскоре выпустила первую версию коммерческого броузера NetscapeNavigator. Вскоре после этого начался экспоненциальный рост WWW, продолжающийся по сей день. Не менее впечатляющие темпы показала при этом и Netscape, которая в конце 1995 г. объявила, что достигнутые результаты делают ее самой быстрорастущей компанией в мировой истории (!). Чтобы закрепить лидерство (на которое, впрочем, тогда еще мало кто покушался) и привлечь новых пользователей, Netscape, увы, вводила в HTML все новые и новые усовершенствования, - и эти усовершенствования поддерживались только броузером NetscapeNavigator.
Практически все новые теги, в изобилии предлагавшиеся Netscape, были направлены на улучшение внешнего вида документа и расширение возможностей его форматирования. Причины этого понятны: чтобы убедить, скажем, бизнесмена, что ему пора обратить внимание на новое средство коммуникации и рекламы, прежде всего нужно показать ему это средство в привлекательном, "товарном" виде. Поставив себе целью завоевание корпоративного рынка, разработчики Netscape не могли (да и не хотели, по-видимому) уделять должное внимание сложившимся традициям развития языка. В результате тот вариант HTML, который поддерживала выпущенная в январе 1996 г. версия NetscapeNavigator 2.0, представлял собой довольно странную смесь старых логических тегов с беззастенчиво вломившимися новыми, ориентированными на графическое экранное представление документа и затрудняющими его воспроизведение на других устройствах вывода.
Такая политика компании, с одной стороны, принесла ей быстрый и впечатляющий успех (одно время версии NetscapeNavigator составляли более 90% всех используемых броузеров), а с другой - вызвала ожесточенное сопротивление наиболее сознательной части HTML-сообщества. Энтузиасты неустанно разъясняли каждому, кто согласен был их слушать, что HTML по природе своей не имеет права зависеть от какого-то конкретного броузера и что заявления типа, "эту страницу лучше всего смотреть в NetscapeNavigator", являются насмешкой над здравым смыслом. Движение "борцов за чистоту HTML" существует и сейчас, однако ощутимого влияния не имеет.
Многие Web-дизайнеры, даже признавая справедливость аргументации "HTML-пуристов", считают использование новых тегов практически оправданным. Неудобства при этом будут испытывать лишь несколько процентов пользователей других броузеров, для которых страницы с этими тегами будут выглядеть совсем не так, как задумал автор (хотя текст в большинстве случаев все равно останется читабельным). Вероятно, аргументы противников Netscape звучали бы более убедительно, если бы сам по себе "официальный" HTML не был столь неимоверно беден изобразительными возможностями. Меня, к примеру, пробирает дрожь при мысли, что для миллионов страниц в современной "паутине", путешествие по которой способно порой принести подлинное эстетическое наслаждение, были бы доступны лишь возможности HTML 2.0.
Помимо использования "плохих" Netscape-ориентированных тегов, широко распространена также практика "злоупотребления" средствами HTML ради сопутствующих им визуальных эффектов. Скажем, вместо того чтобы использовать тег TABLE только для оформления настоящих ("логических") таблиц, Web-дизайнеры сплошь и рядом применяют таблицы без рамок для управления размещением обычного текста и иллюстраций, регулируют с их помощью ширину полей и т.п. Нет нужды объяснять, что оформление в виде таблицы того, что по сути своей таблицей совсем не является, есть прямое нарушение идеологии структурной разметки. "Борцы за чистоту HTML" сломали немало копий, доказывая недопустимость этого и многих других дизайнерских приемов. Но времена постепенно меняются, и теперь любой желающий может увидеть пример такого "злоупотребления" прямо на заглавной странице сервера W3C (http://www.w3.org/pub/WWW).
В конце 1995 г. ситуация в мире HTML была довольно смутной. Популярность броузера Netscape неуклонно росла; программисты этой фирмы готовили к выпуску версию 2.0, которая должна была утвердить господство Netscape на вечные времена благодаря неслыханному набору новшеств, таких как интерфейс подключаемых модулей, поддержка языка Java, встроенный язык сценариев JavaScript, возможность разбивки окна на кадры (frames) и многое другое. К этому времени W3C окончательно завяз в своем проекте HTML 3, который был слишком сильно оторван от реального мира, и на завершение которого у консорциума попросту не хватало ни сил, ни средств. HTML 3 по сравнению с HTML 2.0 был важным шагом вперед, однако он развивался по-прежнему в рамках идеологии структурной разметки, а инструмент, дающий возможность выйти за эти рамки, - система CSS - был еще далек от завершения.
В этот переломный момент в игру вступил новый участник - всемогущая корпорация Microsoft. Долгое время эта компания, привыкшая монопольно владеть своим сектором рынка, недооценивала перспективы Internet и не собиралась как-либо участвовать в развитии этой информационной среды, считая ее, по-видимому, слишком демократичной и непредсказуемой. Однако невероятный взлет Netscape (число копий броузера Navigator измерялось к этому времени уже десятками миллионов) заставил Microsoft изменить мнение.
И именно на броузерном фронте, где господство Netscape оставляло меньше всего шансов конкурентам, корпорация Microsoft нанесла свой главный удар. Поначалу мало кто верил, что броузер MicrosoftInternetExplorer, который тогда существовал в версии 2.0 и не представлял собой ничего выдающегося, сможет составить конкуренцию Netscape. Тем не менее, выпущенная летом 1996 г. версия InternetExplorer 3.0, которая поддерживала почти все расширения Netscape и обладала оригинальным и привлекательным интерфейсом, вызвала настоящий бум и очень быстро утвердилась в качестве "второго главного броузера". Сейчас Microsoft и Netscape делят рынок броузеров почти поровну, и окончательный исход их битвы не берется предсказать никто.
Одновременно с разработкой конкурентоспособного броузера Microsoft решила "навести порядок" и в мире HTML. Взяв под свою опеку W3C, она напитала его денежными и людскими ресурсами и тем самым заработала право едва ли не решающего голоса в этой организации. Проект HTML 3 был заморожен, а вместо него в сжатые сроки создан стандарт HTML 3.2, который, по сути, всего лишь описывает большинство расширений Netscape (с тем же успехом их можно назвать теперь "расширениями Microsoft"). Пройдя обычный в W3C процесс обсуждения и внесения поправок, спецификация HTML 3.2 (http://www.w3.org/pub/WWW/TR/REC-html32.html) была утверждена совсем недавно (в январе этого года) и является, таким образом, последним на настоящий момент официальным стандартом языка. Спираль развития HTML завершила свой первый виток - как и в "золотой век", расхождения между предписаниями стандарта и реализацией HTML в броузерах вновь сведены к минимуму.
Однако HTML сегодня уже совсем не тот, что вначале. Становится все более очевидным, что язык этот в его теперешнем состоянии практически исчерпал перспективы развития, и что добавление новых тегов вряд ли выведет его на принципиально иной уровень. Это особенно понятно тем, кто занимается практическим дизайном: из-за того, что HTML с самого начала не ориентировался на описание внешнего вида документа, он не в состоянии удовлетворительно выполнить эту задачу даже сейчас, при наличии множества визуально-ориентированных тегов. Прямым следствием этого является огромное количество расхождений в интерпретации тегов броузерами. Как бы строго вы ни следовали стандарту, HTML-файл приходится обязательно тестировать по меньшей мере в двух броузерах - NetscapeNavigator и InternetExplorer, и чаще всего такое тестирование не обходится без неприятных сюрпризов: отступы, пробелы, размеры элементов оформления и логика их размещения на странице даже для простейших тегов различаются довольно сильно.
Назад | Содержание | Вперед
[an error occurred while processing this directive]