WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Спецификация HTML 3.2

Спецификация HTML 3.2


Дата публикации: 16-03-2013

Введение в язык HTML 3.2

Стандарт HTML 3.2 является спецификацией языка разметки гипертекста, предложенной организацией W3C и разработанной в начале 1996 года в кооперации с такими поставщиками, как IBM, Microsoft, Netscape Communication Corporation, Novell, SoftQuad, Spyglass, и Sun Microsystems. Версия 3.2 языка HTML дополнена такими широко распространенными элементами, как таблицы, апплеты и обтекание текстом изображений. При этом обеспечивается полная обратная совместимость с ныне существующим стандартом HTML 2.0.

W3C совместно с упомянутыми фирмами продолжает работу над расширением возможностей элементов языка HTML, таких как feagures, объекты мультимедиа, скрипты, типы стилей, разметка (layout), формы, математические символы, и над интернационализацией языка. W3C планирует включить результаты этой работы в следующие версии языка HTML.
HTML как частный случай SGML

Язык HTML 3.2 является реализацией SGML - стандартного обобщенного языка разметки (Standard Generalized Markup Language), отвечающей требованиям международного стандарта ISO 8879. Являясь реализацией SGML, синтаксис документа HTML 3.2 определяется комбинацией деклараций SGML и определений для типов документов (DTD). Данная спецификация дает определенную интерпретацию для элементов HTML 3.2, а также накладывает новые ограничения на допустимый синтаксис самого языка, что вызвано трудностями его формализации в DTD.

В языке SGML используются довольно сложные правила для границ записей (records). В частности, конец записи, следующий сразу за стартовым тэгом, должен игнорироваться. Например, разметка:

<P> 
Текст

эквивалентна:

<P>Текст

Аналогично, должен игнорироваться конец записи, стоящий непосредственно перед завершающим тэгом. Например:

Текст 
</P>

эквивалентно:

Текст</P>

Если не осуществляется разметка специального текста (например, текста с элементами PRE), в языке HTML последовательность из нескольких следующих друг за другом пробелов считается эквивалентной одному пробелу (в ASCII его десятичный код - 32). Подобные правила оставляют за авторами значительную свободу при внесении изменений в уже размеченный текст. Заметим, что в дальнейшие реализации языка HTML будет включена интерпретация для символа горизонтальной табуляции (в ASCII десятичный код 9), связанная с внесением в ассоциированную таблицу стиля некого правила для табуляций.

Объекты SGML, встречающиеся в контексте PCDATA или в атрибутах CDATA, должны адекватно расшифровываются анализатором языка. Например, &#233; должно заменятся на символ из набора ISO Latin-1 с десятичным кодом 233 (прописная буква e со знаком акцента). Данный символ могло также представить в виде записи, содержащей его название, например &eacute;. Даже сам символ & можно включить в текст, воспользовавшись записью с его названием: &amp;.

Спецификация HTML позволяет не ставить в кавычки атрибуты CDATA, если в них содержатся только буквы (от a до z и от A до Z), дефисы (в ASCII десятичный код 45) и точки (в ASCII десятичный код 46). В общем же случае значение атрибута может быть записано внутри двойных или одинарных кавычек (в ASCII их десятичные коды - 34 и 39 соответственно). Внутри атрибута, помещенного в двойные кавычки, можно ставить символы одинарных кавычек, и наоборот.

Заметим, что некоторые браузеры конечных пользователей требуют использования сокращенной записи для следующих атрибутов: COMPACT, ISMAP, CHECKED, NOWRAP, NOSHADE и NOHREF. Эти программы не воспринимают синтаксис типа COMPACT=COMPACT или ISMAP=ISMAP, хотя такая возможность и допускается в спецификации HTML 3.2 DTD.

Декларации SGML и DTD, используемые в спецификации HTML 3.2, даются в приложениях к данному документу. Остальные основополагающие принципы лексического анализа языка HTML даны в статье Дена Коннолли WD-html-lex.
Структура документов HTML

Документы в языке HTML 3.2 начинаются с декларации <!DOCTYPE>, затем следует элемент HTML, внутри которого содержатся HEAD и затем BODY:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
  <HTML> 
  <HEAD> 
  <TITLE>Изучение динамики популяций</TITLE> 
  ... другие элементы заголовка 
  </HEAD> 
  <BODY> 
  ... тело документа 
  </BODY> 
  </HTML>

На практике же при разметке элементов HTML, HEAD и BODY начальный и конечный тэги могут быть опущены, поскольку они всегда могут быть восстановлены анализаторами, подчиняющимися требованиям стандарта HTML 3.2 DTD.

Каждый документ, отвечающий требованиям HTML 3.2, должен начинаться с декларации <!DOCTYPE>, которая необходима для того, чтобы отличить документ, составленный по спецификации HTML 3.2, от документов, написанных для других версий языка HTML. Спецификация HTML не конкретизирует объекты хранения. Как следствие, отсутствует ограничение, чтобы декларация для типа документа находилась в том же самом элементе хранения, что и сам документ (то есть находилась в том же файле). Web сайт может автоматически дополнять предоставляемые HTML-файлы такой декларацией для типа документа, если известно, что все имеющиеся на сайте HTML файлы соответствуют спецификации HTML 3.2.

Каждый документ, согласно спецификации HTML 3.2, должен также содержать описательный элемент title. В итоге, минимальный документ HTML 3.2 выглядит следующим образом:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> 
  <TITLE>Изучение динамики популяций</TITLE>

Замечание: Теперь в декларации слово "Final" заменяет "Draft", поскольку спецификация языка HTML 3.2 была одобрена организациями-членами W3C.
Элемент HEAD и его производные

Данный элемент HEAD содержит заголовок документа, однако у него Вы всегда можете опустить и начальный и конечный тэги. Формируемый элементом заголовок документа может состоять из набора следующих элементов (в произвольном порядке):

    Элемент TITLE
    Элемент STYLE
    Элемент SCRIPT
    Элемент ISINDEX
    Элемент BASE
    Элемент META
    Элемент LINK

<!ENTITY % head.content "TITLE & ISINDEX? & BASE?"> 
<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK"> 
<!ELEMENT HEAD O O  (%head.content) +(%head.misc)>

Запись %head.misc используется для того, чтобы позволить соответствующим элементам многократно возникать в произвольных позициях в пределах элемента HEAD.

Итак, в состав заголовка документа могут входить следующие элементы:

TITLE определяет заголовок документа, необходим во всех случаях.
ISINDEX используется при простом поиске по ключевому слову, см. атрибут PROMPT.
BASE определяет базовый адрес URL, используемый относительными ссылками (relative URLs).
SCRIPT зарезервировано для использования в будущем в описательных языках.
STYLE зарезервировано для использования в будущем таблицами стилей.
META используется для предоставления некой метаинформации (парные конструкции типа "название/значение").
LINK используется для создания связей с другими документами.

Элементы TITLE, SCRIPT и STYLE являются контейнерами, а потому для них необходимо указывать как начальный, так и конечный тэги. Остальные элементы из приведенного списка не являются контейнерами, так что для них нельзя указывать закрывающий тэг. Заметим, что браузеры, подчиняющиеся требованиям спецификации, будут игнорировать содержимое элементов SCRIPT и STYLE.
TITLE

<!ELEMENT TITLE - -  (#PCDATA)* -(%head.misc)>

Согласно спецификации HTML 3.2, каждый документ обязан иметь ровно один элемент TITLE в поле HEAD. С его помощью программе конечного пользователя сообщается название-уведомление данного документа, которое может быть выставлено в заголовке над окном соответствующей программы и т.д. Модель используемого контекста - PCDATA. Следовательно, в контексте могут использоваться объекты, обозначающие символы из второй половины кодовой таблицы, а также заменяющие такие специальные символы, как & и <. Внутри TITLE нельзя использовать элементы разметки.

Пример элемента TITLE:

    <TITLE>Изучение динамики популяции</TITLE>

STYLE and SCRIPT

<!ELEMENT STYLE  - - CDATA -- место под информацию стиля  --> 
<!ELEMENT SCRIPT - - CDATA -- место под описания скриптов  --> 

Данные элементы разметки оставляют в документе место под запись стилей (в будущих версиях HTML), а также скриптов, которые будут выполняться на компьютерах конечных пользователей. Браузеры не должны выводить на экран содержимое этих элементов.

Тип контекста для данных элементов определяется как CDATA. Поэтому эти элементы могут содержать внутри себя только объекты-символы SGML. Все элементы разметки или разделители браузером игнорируются и передаются приложению как исходные данные. Исключение составляют разделители ETAGO ("</"), за которыми сразу следует какая- либо буква из названия [a-zA-Z]. Это значит, что распознается завершающий тэг соответствующего элемента (или тэг того элемента, в который он был вложен), однако фиксируется ошибка, если разделитель ETAGO был указан неправильно.
ISINDEX

    <!ELEMENT ISINDEX - O EMPTY> 
    <!ATTLIST ISINDEX 
        prompt CDATA #IMPLIED -- текст сообщения -->

Элемент ISINDEX указывает на то, что браузер должен выделить отдельное текстовое поле для ручного ввода строки запроса. Не имеется никаких ограничений на количество символов, которые можно было бы ввести таким образом. Чтобы выбрать сообщение, изначально записываемое самим браузером в такое поле, можно воспользоваться атрибутом PROMPT, например

    <ISINDEX PROMPT="Искомая фраза">

Семантика элементов ISINDEX в настоящее время хорошо разработана только для тех случаев, когда базовый адрес для текущего документа - URL, построенный на протоколе HTTP. В таком случае, как правило, как только пользователь нажимает клавишу Enter, серверу посылается строка запроса, составной частью которой является базовый адрес URL текущего документа. Например, если в строку запроса введена фраза "десять зеленых яблок" и документ имеет базовый URL:

    http://www.acme.com/

то генерируемый запрос имеет вид:

    http://www.acme.com/?десять+зеленых+яблок"

Заметим, что при этом символы пробела отображаются в символы " + " и что в адресе URL используются стандартные символы-ограничители. Остальные подробности см. в спецификации HTTP .

Примечание На практике, конструируемая таким образом строка запроса ограничивается символами из набора Latin-1, поскольку в настоящее время не существует какого-либо механизма, позволяющего в URL указать, какой набор символов был использован для составления запроса.
BASE

    <!ELEMENT BASE - O EMPTY> 
    <!ATTLIST BASE 
        href %URL  #REQUIRED 
        >

Элемент BASE указывает для данного документа базовый адрес URL, который затем будет использоваться при переопределении относительных адресов URL с использованием правил, задаваемых соответствующей спецификацией URL. Например, в случае разметки

    <BASE href="http://www.acme.com/intro.html"> 
     ... 
    <IMG SRC="icons/logo.gif">

соответствующее изображение будет соотнесено с источником

    http://www.acme.com/icons/logo.gif

В отсутствии элемента BASE для преобразования относительных адресов в абсолютные должен использоваться URL самого документа. Заметим, что не обязательно это будет тот же самый адрес URL, который использовался для вызова документа, поскольку его базовый URL может быть переопределен заголовком HTTP, сопровождающим в сети рассматриваемый документ.
META

<!ELEMENT META - O EMPTY    -- Общая метаинформация --> 
<!ATTLIST META 
        http-equiv  NAME    #IMPLIED  -- имя заголовка ответа HTTP  -- 
        name        NAME    #IMPLIED  -- название метаинформации    -- 
        content     CDATA   #REQUIRED -- соответствующая информация -- 
        > 

Элемент META может использоваться для записи парных элементов "название/значение", которые описывают свойства данного документа. Например, это может быть имя автора, дата истечения срока действия, список ключевых слов и т.д. Атрибут NAME определяет название определенного качества, в то время как CONTENT указывает соответствуще ему значение, например.

    <META NAME="Author" CONTENT="Dave Raggett">

Вместо атрибута NAME может использоваться атрибут HTTP- EQUIV, что имеет особое значение, если документы возвращаются по Протоколу Передачи Гипертекста (HTTP). Сервера HTTP могут использовать название свойства, указываемое атрибутом HTTP-EQUIV, для создания в HTTP-ответе особого заголовка в стиле RFC 822. Однако такой механизм оказывается неприменим, если используются некоторые типы HTTP-заголовков. Детали см. в спецификации HTTP. Например,

    <META HTTP-EQUIV="Expires" CONTENT="Tue, 20 Aug 1996 14:25:27  
GMT">

при передаче приведет к появлению в HTTP заголовке дополнительного сообщения:

    Expires: Tue, 20 Aug 1996 14:25:27 GMT

К примеру, такая возможность может использоваться промежуточными сетевыми кэшами при определении момента, когда возникает необходимость в получении новой копии соответствующего документа.
LINK

Элемент LINK предоставляет документу независимый от среды метод создания взаимосвязей с другими документами и ресурсами сети. Элемент LINK был составной частью языка HTML начиная с самих первых дней, однако до сих пор лишь некоторые браузеры используют его преимущества (большая же часть продолжает игнорировать элементы LINK).

В принципе элементы LINK могут использоваться для:

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

    <!ELEMENT LINK - O EMPTY> 
    <!ATTLIST LINK 
        href    %URL    #IMPLIED    -- URL привязанного ресурса     -- 
        rel     CDATA   #IMPLIED    -- типы прямых связей           -- 
        rev     CDATA   #IMPLIED    -- типы обратных связей         -- 
        title   CDATA   #IMPLIED    -- строка заголовка для справки -- 
        > 

href
    Задает некий адрес URL, указывающий на ассоциированный ресурс.
rel
    Прямая связь, известная также как "тип связи". Вводит определенное взаимоотношение между текущим документом и ресурсом, на который указывает атрибут HREF . Типы связей в HTML пока еще нестандартизированы, хотя некоторые соглашения в этом плане и были достигнуты.
rev
    Данный элемент определяет обратные отношения. Например, если есть привязка документа A к документу B, выраженная параметром REV=отношение, то в документе B то же самое отношение фиксируется с помощью атрибута REL=отношение. Так в некоторых случаях может использоваться отношение REV=made для того, чтобы указать имя автора данного документа, адрес его электронной почты (посредством URL типа mailto), либо установить связь с личной страницей данного человека.
title
    Заголовок ассоциированного ресурса, указываемый для справки.

Некоторые из рекомендованых типов взаимосвязей:

rel=top
    Данная связь указывает на вершину в некой иерархической структуре, например на первую, либо титульную страницу в неком наборе документов.
rel=contents
    Данная связь указывает на некий файл, где приводится оглавление к данному документу.
rel=index
    Данная связь указывает на другой документ, который можно использовать в целях индексного поиска по текущему документу.
rel=glossary
    Данная связь указывает на некий документ, где содержится глоссарий терминов, относящихся к текущему документу.
rel=copyright
    Данная связь ссылается на текст, где указаны авторские права на данный документ.
rel=next
    Данная связь указывает на следующий документ в неком заранее предопределенном маршруте просмотра. Например, она может использоваться для упреждающей автоматической загрузки браузером следующей страницы.
rel=previous
    Данная связь ссылается на предыдущий документ в неком предопределенном маршруте просмотра.
rel=help
    Данная связь указывает на документ, предлагающий некую помощь, например это может быть текст, дающий более развернутое описание и предлагающий ссылки на другие документы по этой теме. Назначение этой связи - оказание помощи тем читателям, кто потерял свой путь в Web.
rel=search
    Данная ссылка ведет к поисковой странице, контролирующей некий набор страниц, связанных общей темой.

Примеры элементов LINK:

    <LINK REL=Contents HREF=toc.html> 
    <LINK REL=Previous HREF=doc31.html> 
    <LINK REL=Next HREF=doc33.html> 
    <LINK REL=Chapter REV=Contents HREF=chapter2.html>

Элемент BODY и его производные

Данный элемент содержит собственно тело (текст) документа. При этом и начальный и конечный тэги элемента BODY могут быть опущены. В теле документа может содержаться достаточно большой набор элементов:

    Заголовки (H1 - H6)
    Элемент ADDRESS
    Блочные элементы
    Элементы на уровне текста

Ключевые атрибуты данного элемента - BACKGROUND, BGCOLOR, TEXT, LINK, VLINK и ALINK - могут использоваться для того, чтобы задать повторяющееся фоновое изображение, дополнительный цвет фона и цвет, который будет использоваться при печати на экране обычного текста и гипертекстовых связей.

<!ENTITY % body.content "(%heading | %text | %block | ADDRESS)*"> 
<!ENTITY % color "CDATA" -- a color specification: #HHHHHH @@ details? --> 
<!ENTITY % body-color-attrs " 
        bgcolor %color #IMPLIED 
        text %color #IMPLIED 
        link %color #IMPLIED 
        vlink %color #IMPLIED 
        alink %color #IMPLIED 
        "> 
<!ELEMENT BODY O O  %body.content> 
<!ATTLIST BODY 
        background %URL #IMPLIED  -- texture tile for document background -- 
        %body-color-attrs;  -- bgcolor, text, link, vlink, alink -- 
        >

Пример:

 <body bgcolor=white text=black link=red vlink=maroon alink=fuschia>

bgcolor
    Определяет цвет фона для тела документа. См. ниже синтаксис для кодировки таких цветов.
text
    Определяет цвет, используемый при выводе на экран текста из данного документа. Обычно используется, когда Вы меняете фоновый цвет с помощью атрибутов BGCOLOR или BACKGROUND.
link
    Определяет цвет, который будет использоваться при выводе на экран текста из еще не выбранных вами гипертекстовых связей.
vlink
    Определяет цвет, который будет использоваться при выводе на экран текста из уже проверенных вами гипертекстовых связей.
alink
    Задает цвет, которым будут выделяться в тексте гипертекстовые связки в тот момент, когда пользователь щелкает по ним клавишей мыши.
background
    Определяет адрес URL, откуда будет браться изображение для подготовки фона к текущему документу.

В языке HTML цвета задаются по схеме RGB шестнадцатеричными числами (например как COLOR="#C0FFC0"), либо одним из 16 общепринятых названий для цвета. Первоначально эти цвета были выбраны в соответствии со стандартными 16-ю цветами, которые использовала VGA палитра в системе Windows.

Названия цветов и соответствующие значения RGB
Black = "#000000"     Green = "#008000"
Silver = "#C0C0C0"     Lime = "#00FF00"
Gray = "#808080"     Olive = "#808000"
White = "#FFFFFF"     Yellow = "#FFFF00"
Maroon = "#800000"     Navy = "#000080"
Red = "#FF0000"     Blue = "#0000FF"
Purple = "#800080"     Teal = "#008080"
Fuchsia = "#FF00FF"     Aqua = "#00FFFF"
Элементы на уровне блоков и текста

Большинство элементов, которые могут появляться в теле документа, подпадают под одну из двух категорий: элементы на уровне блоков, инициирующие переход к следующему параграфу, и элементы на уровне текста, которые этого не делают. Основные элементы на уровне блоков - заголовки (от H1 до H6), параграфы (P), элементы списков (LI), и горизонтальные линейки (HR). Основные элементы на уровне текста - элементы выделения (EM, I, B и FONT), связи для гипертекста (A), вложенные объекты (IMG и APPLET) и концы строк (BR). Заметим, что элементы на уровне блоков обычно выступают как контейнеры для материалов и элементов на уровне текста, а также для других элементов уровня блоков (исключение составляют заголовки и элементы адресации). В то же время внутри элементов текстового уровня могут содержаться лишь элементы того же уровня. Конкретная же модель разметки у каждого элемента своя.
Заголовки

<!-- 
  There are six levels of headers from H1 (the most important) 
  to H6 (the least important). 
--> 
<!ELEMENT ( %heading )  - -  (%text;)*> 
<!ATTLIST ( %heading ) 
        align  (left|center|right) #IMPLIED 
        > 

Элементы H1, H2, H3, H4, H5 и H6 используются в документе для разметки заголовков. Всегда нужно указывать как начальный, так и конечный тэги. При этом заголовки, размеченные элементами H1, главенствуют над заголовками, размеченными элементами H2, и так далее вплоть до элементов H6, определяющих в документе заголовки самого нижнего уровеня. В общем случае более главные заголовки и печатаются соответственно большее крупным шрифтом, чем остальные. Для выравнивания текста в рамках заголовка вы можете использовать атрибут ALIGN, например.

  <H1 ALIGN=CENTER> ... центрированный заголовок ...  
</H1>

По умолчанию заголовки в документе выравнивается по левому краю листа, однако это правило можно переопределить посредством включения в документ элементов DIV или CENTER.
ADDRESS

    <!ENTITY % address.content "((%text;) | P)*"> 
    <!ELEMENT ADDRESS - - %address.content>

При внесении в документ элемента ADDRESS необходимо указывать как начальный, так и конечный тэги, а также такую информацию, как авторство и сведения, необходимые для контакта с автором этого документа. Браузеры конечных пользователей должны воспроизводить содержимое этого элемента в виде отдельного параграфа (или группы параграфов). Заметим, что внутри этого элемента могут содержаться элементы параграфов, простой текст и элементы текстового уровня (имеющие в HTML3.2 DTD запись %text).

Пример:

<ADDRESS> 
Newsletter editor<BR> 
J.R. Brown<BR> 
8723 Buena Vista, Smallville, CT 01234<BR> 
Tel: +1 (123) 456 7890 
</ADDRESS>

Блочные элементы разметки

P параграфы
    Для этого элемента разметки параграфов необходимо указывать начальный тэг, однако при этом конечный тэг может быть всегда опущен. Для выравнивания текста в рамках одного параграфа используйте атрибут ALIGN, например <P ALIGN=RIGHT>
UL неупорядоченные списки
    В данном случае обязательно указывать как начальный, так и конечный тэги, а также один или несколько элементов LI, представляющие отдельные пункты списка.
OL упорядоченные (т.е. нумерованные) списки
    Здесь также требуется указывать как начальный, так и конечный тэги, а также один или несколько элементов LI, представляющие в списке отдельные пункты.
DL списки определений
    Требуется указывать начальный и конечный тэги. В таком списке элементом DT размечается термин, а элементом DD - соответствующее ему определение.
PRE преформатированный текст
    Для данного элемента необходимо указывать начальный и конечный тэги. Внутри такого элемента текст печатается шрифтом фиксированной ширины и при этом сохраняется разметка оригинала (пробелы и символы конца строк).
DIV деление документа на отдельные блоки
    Для данного элемента необходимо указывать как начальный, так и конечный тэги. Элемент DIV обычно используется с атрибутом ALIGN, указывающим способ выравнивания текста внутри тех блочных элементов, которые его содержат. Элемент ALIGN может иметь одно из следующих значений: LEFT, CENTER или RIGHT.
CENTER выравнивание текста
    Для этого элемента необходимо указывать начальный и конечный тэги. Используется для центрирования стоящего между ними текста. Более радикальное решение проблемы выравнивания текстов см. в DIV.
BLOCKQUOTE разметка цитат
    Необходимо указывать как начальный, так и конечный тэги. Данный элемент используется при разметке протяженных цитат, текст которых при этом обычно печатается со сдвинутыми краями.
FORM заполняемые формы
    Необходимо указывать и начальный, и конечный тэги. Используется для создания заполняемой формы, которая будет обработываться на HTTP сервере. Атрибутами этого элемента могут быть ACTION, METHOD и ENCTYPE. Заполняемые формы не могут быть вложены друг в друга.
ISINDEX примитивные формы HTML
    Данный элемент не является контейнером, так что конечный тэг для него использовать нельзя. Подменяет элемент FORM и используется для создания простых форм, имеющих единственное поле под ввод текста. В документе может использоваться только один элемент ISINDEX, появляющийся в заголовке, либо основном тексте.
HR горизонтальные линейки
    Не является контейнером, так что использовать конечный тэг нельзя. Может иметь атрибуты ALIGN, NOSHADE, SIZE и WIDTH.
TABLE таблица, может быть вложенной
    Требуется указывать начальный и конечный тэги. Каждая таблица начинается с необязательного элемента CAPTION, за которым следует один или несколько элементов TR, формирующих строки таблицы. Каждая строка имеет одну или несколько ячеек, задаваемых элементами TH или TD . Элемент TABLE может иметь атрибуты WIDTH, BORDER, CELLSPACING и CELLPADDING.

Параграфы

    <!ELEMENT P     - O (%text)*> 
    <!ATTLIST P 
        align  (left|center|right) #IMPLIED 
        >

Элемент P используется для разметки параграфов. Он является контейнером и для него всегда нужно указывать начальный тэг. Конечный же тэг указывать необязательно, поскольку он всегда может быть поставлен в нужное место самой программой просмотра гипертекста. Если где-либо в документе стоит элемент P, то браузер должен в этом месте завершить текущий абзац и/или, соответственно, инициировать новый. При этом алгоритм разметки оставляется на усмотрение браузера, однако в большинстве таких программ абзацы оказываются отделены друг от друга полосой свободного пространства.

Пример:

    <P>Первый параграф. 
    <P>Второй параграф.

Обычно параграфы выравниваются по левому краю листа. Указать же другой тип горизонтального выравнивания можно с помощью атрибута ALIGN:

align=left
    Параграф, выровненный по левому краю.
align=center
    Центрированный параграф.
align=right
    Параграф, выровненный по правому краю.

Например:

<p align=center>Это центрированный параграф. 
<p align=right>А это параграф, выровненный по правому краю.

По умолчанию текст документа выравнивается по левому краю листа, изменить этот режим разметки можно с помощью элементов DIV или CENTER.
Списки

Пунктами списка в HTML могут быть блочные элементы, элементы на уровне текста, и даже другие списки. Однако в списки не могут быть занесены заголовки и элементы address. Данное ограничение накладывается в HTML 3.2 DTD в записи %flow.
Неупорядоченные списки

    <!ELEMENT UL - -  (LI)+> 
    <!ENTITY % ULStyle "disc|square|circle"> 
    <!ATTLIST UL -- unordered lists -- 
        type    (%ULStyle)   #IMPLIED   -- bullet style -- 
        compact (compact)    #IMPLIED   -- reduced interitem spacing -- 
        > 
    <!ELEMENT LI - O %flow -- list item --> 
    <!ATTLIST LI 
        type   (%LIStyle)    #IMPLIED   -- list item style -- 
        > 

Неупорядоченные списки имеют вид:

    <UL> 
      <LI> ... первый пункт списка 
      <LI> ... второй пункт списка 
      ... 
    </UL>

Итак, элемент UL используется для создания неупорядоченных списков. Причем для этого элемента всегда необходимо указывать и начальный и конечный тэги. Для маркировки отдельных пунктов списка используется элемент LI. Конечный же тэг для элемента LI может быть всегда опущен. Заметим, что элементы LI могут содержать вложенные списки. Для того, чтобы заставить программу пользователя печатать списки в более компактном стиле, может дополнительно использоваться атрибут COMPACT.

В элементах UL и LI может использоваться атрибут TYPE, устанавливающий стиль разметки для данного списка. Допустимые значения атрибута - "disc", "square" и "circle". Стиль разметки в общем случае зависит от уровня вложенности данного списка. Примеры значков, предшествующих каждому элементу в списке:

    в случае <li type=disc>
    в случае <li type=square>
    в случае <li type=circle>

При выборе такого списка ставилась цель обеспечить совместимость с разметкой, которая изначально использовалась в 1993 году программой Mosaic.
Упорядоченные (нумерованные) списки

    <!ELEMENT OL - -  (LI)+> 
    <!ATTLIST OL -- ordered lists -- 
        type      CDATA      #IMPLIED   -- numbering style -- 
        start     NUMBER     #IMPLIED   -- starting sequence number -- 
        compact  (compact)   #IMPLIED   -- reduced interitem spacing -- 
        > 
    <!ELEMENT LI - O %flow -- list item --> 
    <!ATTLIST LI 
        type      CDATA      #IMPLIED   -- list item style -- 
        value     NUMBER     #IMPLIED   -- set sequence number -- 
        > 

Упорядоченные (или нумерованные) списки имеют следующий вид:

    <OL> 
      <LI> ... первый пункт списка 
      <LI> ... второй пункт списка 
      ... 
    </OL>

В элементе OL может использоваться атрибут START, задающий первое число, с которого начнется нумерация пунктов в таком списке (по умолчанию нумерация начинается с первого номера - 1). Вы можете в любой момент изменить порядок нумерации, записав другой атрибут VALUE в любом из элементов LI. Предполагается, что оба из эти атрибута будут иметь значением целое число. Вы не можете запрограммировать разметку так, чтобы каким-либо образом автоматически продолжить текущую нумерацию в следующем списке, либо пропустить несколько номеров (т.е. не задавая явным образом в элементах OL или LI требуемый номер).

Для того, чтобы заставить программу пользователя печатать списки в более компактном стиле, можно воспользоваться атрибутом COMPACT. Атрибут TYPE в элементе OL дает вам возможность выбрать стиль, каким будет осуществляется нумерация списка:
Тип     Стиль нумерации
1     арабские числа     1, 2, 3, ...
a     прописные буквы     a, b, c, ...
A     заглавные буквы     A, B, C, ...
i     маленькие римские числа     i, ii, iii, ...
I     большие римские числа     I, II, III, ...
Списки определений

<!-- definition lists - DT for term, DD for its definition --> 
<!ELEMENT DL    - -  (DT|DD)+> 
<!ATTLIST DL 
        compact (compact) #IMPLIED -- more compact style -- 
        > 
<!ELEMENT DT - O  (%text)*> 
<!ELEMENT DD - O  %flow;> 

Списки определений имеют вид:

  <DL> 
    <DT> название термина 
    <DD> определение термина 
    ... 
  </DL>

Заметим, что элементы DT можно использовать только как контейнеры для элементов текстового уровня. Но в то же время внутри DD можно использовать блочные элементы (исключение составляют заголовки и элементы address).

Пример списка определений:

<DL> 
<DT>Первый термин<dd>Определение первого термина. 
<DT>Второй термин<dd>Определение для второго термина. 
</DL>

В результате должна получиться следующая разметка:

Первый термин
    Определение первого термина.
Второй термин
    Определение для второго термина.

Чтобы заставить программу пользователя при печати списка определений использовать более компактный стиль, в элементе DL вы можете использовать атрибут COMPACT .
DIR и MENU

<!ELEMENT (DIR|MENU) - -  (LI)+ -(%block)> 
<!ATTLIST (DIR|MENU) 
        compact (compact) #IMPLIED 
        >

Данные элементы были составной частью языка HTML с самых первых дней. Предназначение их - создание неотсортированных списков, подобных тем, что получаются при использовании элемента UL. Программам просмотра было рекомендовано воспроизводить элементы DIR в виде списка из нескольких колонок, а элемент MENU - в виде списка из одной колонки типа меню. На практике же, Mosaic и большинство других браузеров игнорировали это требование и осуществляли разметку элементов DIR и MENU точно так же, как и UL.
Предварительно отформатированный текст

<!ELEMENT PRE - - (%text)* -(%pre.exclusion)> 
<!ATTLIST PRE 
        width NUMBER #implied 
        >

Элемент PRE может использоваться когда необходимо включить в текст документа уже отформатированный текст. Браузеры воспроизводят содержимое этого элемента с помощью шрифта фиксированной ширины, сохраняя ширину пропусков, обозначенных символом пробела и символом конца строки. Стандартная автоматическая разбивка текста браузером на строки должна отключаться при воспроизведении текста, отмеченного элементами PRE.

Заметим, что согласно стандарту SGML, анализатор гипертекста должен удалять символы конца строки, следующие сразу за начальным тэгом, либо непосредственно предшествующие конечному тэгу.

Элемент PRE имеет ту же самую модель контекста, что и параграф, за исключением графических изображений и элементов, вызывающих изменение размера шрифта, таких как IMG, BIG, SMALL, SUB, SUP и FONT.

Некоторые браузеры имеют возможность использовать атрибут WIDTH, указывающий какой ширины шрифт следует использовать в предварительно отформатированном тексте. Браузер может использовать это значение либо для того, чтобы выбрать соответствующий размер шрифта, либо для того чтобы сделать соответствующий отступ.

Пример использования элемента PRE:

<PRE> 
       Higher still and higher 
         From the earth thou springest 
       Like a cloud of fire; 
         The blue deep thou wingest, 
And singing still dost soar, and soaring ever singest. 
</PRE>

будет воспроизведено как:

       Higher still and higher 
         From the earth thou springest 
       Like a cloud of fire; 
         The blue deep thou wingest, 
And singing still dost soar, and soaring ever singest.

Символ горизонтальной табуляции (записываемый в кодировках Unicode, US ASCII и ISO 8859-1 как десятичное число 9) должен интерпретироваться стандартным образом как наименьшее количество пробелов, кратное 8. Использовать этот символ крайне нежелательно, поскольку при редактировании текстов символу табуляции обычно на странице ставятся в соответствие другие позиции, что в свою очередь приводит к неадекватному воспроизведению данного документа другими программами.
XMP, LISTING и PLAINTEXT

<![ %HTML.Deprecated [ 
<!ENTITY % literal "CDATA" 
        -- historical, non-conforming parsing mode where 
           the only markup signal is the end tag 
           in full 
        --> 
<!ELEMENT (XMP|LISTING) - -  %literal> 
<!ELEMENT PLAINTEXT - O %literal> 
]]>

Данные тэги для воспроизведения предварительно отформатированного текста являются устаревшими и использовались до появления элемента PRE. Браузеры еще могут распознавать эти тэги в целях обратной совместимости. Авторам же следует избегать их использования в новых документах!
DIV и CENTER

<!ELEMENT DIV - - %body.content> 
<!ATTLIST DIV 
        align   (left|center|right) #IMPLIED -- alignment of following text -- 
        > 
<!-- CENTER is a shorthand for DIV with ALIGN=CENTER --> 
<!ELEMENT center - - %body.content>

Элементы DIV могут использоваться для разбивки HTML документа на несколько разделов с соблюдением определенной иерархической структоры. Для того, чтобы в пределах такого раздела выравнивание текста по умолчанию осуществлялось определенным образом, внутри соответствующего элемента DIV можно использовать атрибут ALIGN. При этом значением последнего могут быть LEFT, CENTER или RIGHT (причем указанные значения имеют тот же смысл, что и в случае параграфов <P>).

Заметим, что поскольку DIV является блочным элементом, в документе он будет дополнительно играть роль закрывающего тэга для еще открытого элемента P, если таковой имеется. В остальных случаях браузеры конечных пользователей не должны делать разбивку на параграфы до и после элементов DIV. Элемент CENTER полностью эквивалентен элементу DIV с атрибутом ALIGN=CENTER. Для обоих элементов DIV и CENTER надо указывать начальный и конечный тэги.

Элемент CENTER был введен в спецификацию браузера Netscape еще до того, как в HTML 3.0 был внесен выполняющий аналогичную функцию элемент DIV. Затем этот элемент был сохранен и в спецификации HTML 3.2 из-за широко распространения упомянутого браузера.
BLOCKQUOTE

<!ELEMENT BLOCKQUOTE - - %body.content>

Данный элемент используется для разметки цитат, взятых из других источников, причем необходимо указывать как начальный, так и конечный тэги. Часто разметка цитат на практике сводится к созданию дополнительного отступа, например.

    They went in single file, running like hounds on a strong scent, and an eager light was in their eyes. Nearly due west the broad swath of the marching Orcs tramped its ugly slot; the sweet grass of Rohan had been bruised and blackened as they passed.

from "The Two Towers" by J.R.R. Tolkien.
FORM

<!ENTITY % HTTP-Method "GET | POST" 
        -- as per HTTP specification 
        --> 
<!ELEMENT FORM - - %body.content -(FORM)> 
<!ATTLIST FORM 
        action %URL #IMPLIED  -- server-side form handler -- 
        method (%HTTP-Method) GET -- see HTTP specification -- 
        enctype %Content-Type; "application/x-www-form-urlencoded" 
        >

Элемент FORM используется в языке разметки HTML для создания заполняемых форм. Причем вы можете иметь сразу несколько таких форм в одном и том же документе. Для элемента FORM во всех случаях необходимо писать и начальный, и конечный тэги. (Заметим, что для создания простейших форм Вы также можете воспользоваться элементом ISINDEX). В пределах элемента FORM можно использовать большой набор элементов HTML, кроме того при создании форм вы можете задавать поля несколько типов (текстовые поля в одну или несколько строк, группы радиокнопок, контрольные квадратики, и меню).

Атрибуты элемента FORM:

action
    Определяет URL адрес, который используется либо для отправления формы по электронной почте (например, action="mailto:foo@bar.com"), либо для запуска на сервере посредством протокола HTTP специальной программы, обслуживающей данную форму (к примеру, action="http://www.acme.com/cgi- bin/register.pl").
method
    Если предыдущий атрибут action задает адрес HTTP-сервера, то атрибут method определяет, какой из HTTP методов будет использоваться для пересылки этому серверу содержимого текущей формы. Это может быть либо GET, либо POST (по умолчанию используется GET).
enctype
    Данный атрибут определяет механизм, который следует использовать при кодировании содержания данной формы. По умолчанию используется application/x-www-form- urlencoded.

Остальные подробности касательно работы с формами приводятся в документе RFC 1867.
HR - горизонтальные линейки

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

<!ELEMENT HR    - O EMPTY> 
<!ATTLIST HR 
        align (left|right|center) #IMPLIED 
        noshade (noshade) #IMPLIED 
        size  %Pixels #IMPLIED 
        width %Length #IMPLIED 
        >

Элементы HR не являются контейнерами, так что конечный тэг использовать в этом случае нельзя. Элемент может иметь атрибуты ALIGN, NOSHADE, SIZE и WIDTH:

align
    Определяет, сдвинута ли линейка влево, вправо или стоит на текущей строке по центру (атрибуты align=left, align=center или align=right соответственно). По умолчанию линейка центрируется.
noshade
    Данный атрибут заставляет программу пользователя закрашивать линейку сплошным цветом, а не делать ее как традиционную двухцветную "выемку".
size
    Данный атрибут может использоваться, чтобы необходимо задать в пикселах высоту линейки.
width
    Данный атрибут может использоваться когда необходимо указать ширину линейки в пикселах (например width=100), либо как определенный процент от расстояния между левым и правым ограничителями текущей строки (например width="50%"). По умолчанию ширина линейки принимается равной 100 %.

Таблицы

В версию 3.2 языка HTML включен хорошо разработанный набор элементов из спецификации RFC 1942, который может использоваться для разметки табличных материалов, либо при осуществлении еще более сложных вариантов разметки. Заметим, что в последнем случае обычно возникают проблемы при работе с браузерами, ориентированными на голосовой интерфейс, а также с браузерами, работающими исключительно в текстовом режиме.

<!-- horizontal placement of table relative to window --> 
<!ENTITY % Where "(left|center|right)"> 
<!-- horizontal alignment attributes for cell contents --> 
<!ENTITY % cell.halign 
        "align  (left|center|right) #IMPLIED" 
        > 
<!-- vertical alignment attributes for cell contents --> 
<!ENTITY % cell.valign 
        "valign  (top|middle|bottom)  #IMPLIED" 
        > 
<!ELEMENT table - - (caption?, tr+)> 
<!ELEMENT tr - O (th|td)*> 
<!ELEMENT (th|td) - O %body.content> 
<!ATTLIST table                       -- table element -- 
        align     %Where;   #IMPLIED  -- table position relative to window -- 
        width     %Length   #IMPLIED  -- table width relative to window -- 
        border    %Pixels   #IMPLIED  -- controls frame width around table -- 
        cellspacing %Pixels #IMPLIED  -- spacing between cells -- 
        cellpadding %Pixels #IMPLIED  -- spacing within cells -- 
        > 
<!ELEMENT CAPTION - - (%text;)* -- table or figure caption --> 
<!ATTLIST CAPTION 
        align (top|bottom) #IMPLIED 
        > 
<!ATTLIST tr                       -- table row -- 
        %cell.halign;              -- horizontal alignment in cells -- 
        %cell.valign;              -- vertical alignment in cells -- 
        > 
<!ATTLIST (th|td)                  -- header or data cell -- 
        nowrap (nowrap)  #IMPLIED  -- suppress word wrap -- 
        rowspan NUMBER   1         -- number of rows spanned by cell -- 
        colspan NUMBER   1         -- number of cols spanned by cell -- 
        %cell.halign;              -- horizontal alignment in cells -- 
        %cell.valign;              -- vertical alignment in cells -- 
        width   %Pixels  #IMPLIED  -- suggested width for cell -- 
        height  %Pixels  #IMPLIED  -- suggested height for cell -- 
        > 

В общем случае таблицы имеют следующий вид:

  <TABLE BORDER=3 CELLSPACING=2 CELLPADDING=2 WIDTH="80%"> 
  <CAPTION> ... заголовок таблицы ... </CAPTION> 
  <TR><TD> первая клетка таблицы <TD> вторая клетка 
  <TR> ... 
  ... 
  </TABLE>

У элемента TABLE нет обязательных атрибутов. По умолчанию таблица печатается без рамки. Разметка таблицы в общем случае осуществляется автоматически в соответствии с объемом содержащейся в ней информации, однако у автора всегда имеется возможность самому выбрать ширину таблицы, воспользовавшись атрибутом WIDTH. Дополнительный контроль над процессом разметки (таблицы) достигается также через атрибуты BORDER, CELLSPACING и CELLPADDING. Заголовки таблицы (CAPTION) выравниваются по верхнему или нижнему краю таблицы в зависимости от атрибута ALIGN.

В таблице каждый ряд ячеек содержит открывающий тэг элемента TR, хотя соответствующий закрывающий тэг всегда может быть опущен. Отдельные клетки таблицы размечаются элементом TD, если это данные, и элементом TH, если это заголовки. Как и в случае с TR, эти элементы являются контейнерами и могут быть записаны без указания закрывающего тэга. Элементы TH и TD могут иметь несколько атрибутов: ALIGN и VALIGN для выравнивания содержимого ячейки, ROWSPAN и COLSPAN для нестандартных ячеек, простирающихся на несколько рядов или колонок. В отдельной ячейке таблицы можно размещать самые разнообразные элементы разметки как блочного, так и текстового уровня, включая поля заполняемых форм и даже целые новые таблицы.

Для элемента TABLE всегда необходимо указывать как начальный, так и конечный тэги. При этом разрешается использовать следующие атрибуты:

align
    Данный атрибут принимает одно из следующих значений: LEFT, CENTER или RIGHT (используемый при этом регистр значения не имеет). Указывает для текущей таблицы, каким образом при разметке осуществляется ее горизонтальное выравнивание. По умолчанию выполняется выравнивание таблицы по левой границе листа, однако это правило можно переопределить посредством элементов DIV или CENTER.
width
    В отсутствии данного атрибута ширина таблицы определяется автоматически в соответствии с объемом содержащегося в ней материала. Однако посредством атрибута WIDTH вы можете сами задать ширину таблицы либо в пикселах (например WIDTH=212), либо как процент от расстояния между левой и правой границами экрана (например WIDTH="80%" ).
border
    Этот атрибут позволяет задавать для таблицы ширину внешней рамки - в пикселах (например, BORDER=4). Данному атрибуту может быть также присвоено значение нуль, чтобы полностью отказаться от внешней рамки. Рамка таблицы не рисуется также, если атрибут border вообще отсутствует в разметке. Заметим, что некоторые из браузеров способны воспринимать также конструкцию <TABLE BORDER>, считая ее семантически эквивалентной атрибуту BORDER=1.
cellspacing
    В традиционных настольных издательских системах смежные ячейки в таблице имеют общую границу. В языке HTML это не так. Каждая ячейка имеет собственную границу, отделенную промежутком от границ соседних ячеек. Ширину этого промежутка в писелах можно устанавливать посредством атрибута CELLSPACING, (например CELLSPACING=10). То же самое значение определяет расстояние между общей границей таблицы и границами крайних ячеек.
cellpadding
    Данный атрибут устанавливает для каждой ячейки в таблице расстояние в пикселах между рамкой ячейки и содержащимся в ней материалом.

Элемент CAPTION может иметь только один атрибут - ALIGN, который может принимать два значения: ALIGN=TOP или ALIGN=BOTTOM. Посредством этого атрибута можно выбирать, помещать ли заголовок над таблицей или, соответственно, под ней. Большинство браузеров по умолчанию ставит заголовок над таблицей. Для элемента CAPTION необходимо всегда указывать начальный и конечный тэги. Содержание заголовка должно ограничиваться простым текстом и элементами текстового уровня, задаваемыми объектом %text. Использование блочных элементов в этом случае недопустимо.

Для TR - элемента, начинающего новый ряд таблицы - необходимо указывать начальный тэг, однако всегда можно опустить конечный тэг. Элемент TR выступает в роли контейнера для ячеек таблицы и может иметь два атрибута:

align
    Устанавливает стиль горизонтального выравнивания для содержимого ячейки, который будет использоваться по умолчанию. Атрибут может принимать одно из следующих значений (независимо от используемого регистра): LEFT, CENTER или RIGHT и выполняет ту же самую роль, что и атрибут ALIGN при разметке параграфов.
valign
    Данный атрибут может использоваться при выборе правила, согласно которому - если нет других указаний - будет осуществляться вертикальное выравнивание во всех ячейках данной строки. Атрибут может принимать одно из следующих значений (независимо от используемого регистра): TOP, BOTTOM или MIDDLE. При этом содержимое ячейки будет, соответственно, выравниваться по ее верхнему или нижнему краю, либо посередине.

Для разметки таблицы на уровне ячеек предусмотрено уже два элемента: элемент TH используется для разметки заголовков, а TD - для ячеек с данными. Такое разграничение позволяет программам пользователей оформлять заголовок таблицы и данные разными шрифтами, а кроме того улучшает работу браузеров, использующих речевой интерфейс. Для элементов TH и TD всегда необходимо указывать начальные тэги, конечные же всегда могут быть опущены. При разметке ячеек таблицы могут использоваться следующие атрибуты:

nowrap
    В присутствии этого атрибута блокируется автоматический перенос слов в пределах текущей ячейки (например в случае <TD NOWRAP>). Действие этого атрибута эквивалентно использованию в ячейке объектов &nbsp;, создающих неотменяемые пробелы.
rowspan
    Данный атрибут имеет значением положительное целое число, определяющее количество рядов, на которые простирается данная ячейка. Этому атрибуту по умолчанию присваивается значение 1.
colspan
    Данный атрибут имеет значением положительное целое число, определяющее количество колонок, на которые простирается данная ячейка. По умолчанию атрибуту присваивается значение 1.
align
    Определяет выполняемое по умолчанию правило горизонтального выравнивания для содержимого текущей ячейки, тем самым отменяя действие атрибута ALIGN, задаваемого при общей разметке текущего ряда ячеек. При этом используются все те же самые значения: LEFT, CENTER и RIGHT. Если атрибут ALIGN для данной ячейки не был указан, то по умолчанию для элементов <td> выполняется выравнивание по левому краю, а для элементов <th> - центрирование. Напомним, что вы можете отменить это правило, задав трубуемый атрибут ALIGN в элементе TR.
valign
    Определяет способ вертикального выравнивания для содержимого текущей ячейки, отменяя тем самым действие атрибута VALIGN, заданного при общей разметке данного ряда таблицы. Использует при этом те же самые значения: TOP, MIDDLE и BOTTOM. Если для данной ячейки атрибуту VALIGN вы не присвоили какого-либо значения, то по умолчанию для нее осуществляется выравнивание по центру. Те не менее вы можете изменить такое правило, задав нужный атрибут VALIGN в элементе TR.
width
    Задает ширину площадки, отводимой под содержимое данной ячейки, в пикселах и без учета ширины границ. Как правило, при разметке будет использоваться предложенное здесь значение за исключением тех случаев, когда оно начинает вступать в противоречие с минимальной шириной остальных ячеек в той же самой колонке.
height
    Задает высоту площадки, отводимой под содержимое данной ячейки, в пикселах и без учета ширины границ. Как правило, при разметке будет использоваться предложенное здесь значение за исключением тех случаев, когда оно начинает вступать в противоречие с минимальной высотой других ячеек в той же самой колонке.

Таблицы обычно рисуются в виде некой рельефной поверхности, приподнимающейся над поверхностью листа и имеющей внешние скошенные края. Далее на этой поверхности размещаются уже отдельные ячейки таблицы. Границы вокруг конкретной ячейки рисуются только в том случае, если она имеет некое содержание. Пустые ячейки в разметке не участвуют за исключением случаев, когда в них используется объект &nbsp;.

Описанные алгоритмы, используемые для автоматического определения размеров таблиц, должны учитывать минимальные и максимальные требования к ширине со стороны каждой ячейки. Эти ограничения затем используются при определении минимальной и максимальной ширины каждой колонки и далее - для всей таблицы в целом.

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

В некоторых пользовательских программах бывает необходимо или может быть желательно делать перенос строки посреди слова. В подобных случаях должна ставиться видимая метка, уведомляющая о том, что это произошло.

Минимальная и максимальная ширина вложенных таблиц дает вклад в минимальную и максимальную ширину ячейки, куда они помещены. Как только ширина для таблицы верхнего уровня становится известной, в ней может быть произведен расчет колонок. Далее появляется возможность назначить ширину для вложенных таблиц и, следовательно, рассчитать ширину колонок и для них. Если это возможно, всем колонкам должна назначаться по крайней мере их минимальная ширина. При этом предлагается, что оставшееся после этой процедуры свободное место будет также распределено между колонками, но уже пропорционально разнице между максимальной и требуемой минимальной шириной каждой из них.

Заметим, что указываемые в пикселах ширина и высота относятся к изображению на экране и должны умножаться на определенный множитель при подготовке к печати на устройствах с очень высоким решением (таких как лазерные принтеры). Например, если программа пользователя выводит изображение на дисплей с разрешением 75 пикселов на дюйм и при этом печатает его же на лазерном принтере с разрешением 600 точек в дюйм, то в последнем случае значения в пикселах, заданные в атрибутах разметки HTML, должны быть умножены на 8.
Элементы текстового уровня

Размещение в документе элементов текстового уровня не вызывают перехода на следующий параграф. Элементы текстового уровня, задающие стиль, по которому происходит разметка текста, в общем случае могут быть вложенными. Они могут содержать другие элементы текстового уровня, но не блочные элементы.

Домен продается

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Апрель 2024 (1)
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

Неизвестный автор:

"Плохой анкор, вебмастеру укор."

Опрос

Ваша техника?

Настольный компютер
Ноутбук
Смартфон
iPad
iPhone
другое