Все записи автора Андрей Семенов

Тег canvas — растровый холст.

Тег canvas — растровый холст.

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

Авторы не должны использовать canvas элемент в документе, когда доступен более подходящий элемент. Например, нецелесообразно использовать canvas элемент для отображения заголовкa страницы: если желаемое представление заголовка должно быть размечено с использованием соответствующих элементов (как правило, h1), а затем с помощью стилей CSS и поддержкой таких технологий, как XBL.

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

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

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

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

Когда canvas элемент представляет встроенный контент, пользователь может сосредоточиться на вложенном контенте (в резервном содержании). Если элемент находится в фокусе, он является объектом взаимодействия с клавиатурой (хотя сам элемент не виден). Это позволяет авторам сделать интерактивное полотно (холст) с клавиатурным доступом. Авторы должны иметь разметку один-к-одному в виде интерактивных регионов в резервном содержании. (Фокус не оказывает никакого влияния на события мыши.)

Графический элемент имеет два атрибута для управления размером пространства координат: width и height(ширина и высота). Эти атрибуты, когда указаны, должны иметь значения, которые являются действительными неотрицательными целыми числами. Правила для разбора целых неотрицательных должны быть использованы для получения их числовых значений. Если атрибут отсутствует, или если разбор его значений возвращает ошибку, то должно использоваться значение по умолчанию. width атрибут по умолчанию 300, а height атрибут по умолчанию до 150.

Новые атрибуты HTML5

Новые атрибуты

Некоторые атрибуты были введены в различные элементы, которые уже были частью HTML4:

  • a и area элементы теперь имеют атрибут media для соответствия link элемента. WHATWG HTML также имеют download и ping атрибуты.
  • Элемент area, для соответствия a и link элементам, теперь также имеет hreflang, type и rel атрибуты.
  • Элемент base теперь может иметь атрибут target, главным образом, для согласования с элементом a.(Это уже широко поддерживается.)
  • Элемент meta теперь имеет атрибут charset, что обеспечивает хороший способ указать кодировку документа.
  • Новый autofocus атрибут может быть указан для тэгов input (кроме случаев, когда атрибут typehidden), select, textarea и button. Он обеспечивает декларативный способ указания на активный элемент формы во время загрузки страницы. С помощью этой функции можно повысить эффективность работы пользователей.
  • Новый атрибут placeholder может быть указан для тэгов input и textarea. Он представляет собой намек предназначеный помочь пользователю при вводе данных.
    <input type=email placeholder="a@b.com">
  • Новый атрибут form для inputoutputselecttextareabuttonlabelobject и fieldset элементов управления позволяет связать их с формой. Эти элементы теперь можно разместить в любом месте на странице, а не только как потомков тэга form, и все еще ??быть связаными с формой.
    <label>Email:
          <input type=email form=foo name=email>
         </label>
        <form id=foo></form>
  • Новый атрибут require относится к input (кроме случаев, когда type атрибут hiddenimage или кнопка типа, таких как submit), select и textarea. Это означает, что пользователь должен заполнить значение для того, чтобы отправить форму. Для select, первый вариант элемента должен быть с пустым значением.
    <label>Color:
          <select name=color required>
           <option value="">Choose one
           <option>Red
           <option>Green
           <option>Blue
          </select></label>
  • fieldset элемент теперь имеет disabled атрибут, который отключает все дочерние элементы управления, а также атрибут name, который может быть использован для сценария доступа.
  • Тэг input имеет несколько новых атрибутов для указания ограничений: autocompleteminmaxmultiplepattern и step. Как упоминалось ранее он также имеет новый атрибут list, которые можно использовать вместе с datalist тэгом. Кроме того, в настоящее время width и height атрибуты, определяющие размеры изображения при использовании type = image.
  • Тэги input и textarea имеют новый атрибут dirname.
  • textarea элемент имеет два новых атрибута, maxlength и wrap, которые управляют максимальной длиной входных данных и представлением поведения при переносе строк, соответственно.
  • Тэг form получил NOVALIDATE атрибут, который может быть использован для отключения проверки формы перед отправкой (т.е. форма всегда может быть отправлена).
  • input и button элементы получили новые атрибуты formactionformenctypeformmethodformnovalidate и formtarget. Если они есть, они заменят собой actionenctypemethodnovalidate и target атрибуты тэга form.
  • Тэг menu имеет два новых атрибута: type и label. Они позволяют преобразовать элемент в меню, которые содержатся в типичных пользовательских интерфейсах, а также предоставление для контекстного меню в сочетании с глобальным contextmenu атрибутом.
  • Тэг style получил новый атрибут scope, который может быть использован для разрешения области видимости таблиц стилей.
  • Тэг script получил новый атрибут async, что влияет на загрузку и выполнение сценариев.
  • тэг html имеет новый атрибут manifest, который указывает на манифест приложения кэш используется в сочетании с API для автономных веб-приложений.
  • тэг link получил новый атрибут sizes. Он может быть использован в сочетании с icon, чтобы указать размер значка.Таким образом, указывая на иконки различных размеров.
  • Тэг ol получил новый атрибут reversed. Если он присутствует, это означает, что список идет в порядке убывания.
  • iframe элемент имеет три новых атрибутов sandboxseamless и srcdoc.
  • Тэг object получил новый атрибут typemustmatch который позволяет безопасно использовать вложение внешних ресурсов.
  • Тэг img новый атрибут crossorigin, чтобы использовать CORS в запросе, и если он окажется успешным, выдает данные изображения для чтения API canvas.

Некоторые атрибуты HTML4 теперь распространяется на все элементы. Это так называемые глобальные атрибуты: аccesskey, class, diridlangstyle, tabindex и title. Кроме того, XHTML 1.0 разрешает только XML:space на отдельные элементы, которые в настоящее время допускаются на все элементы в документах XHTML. Есть также несколько новых глобальных атрибутов:

  • сontenteditable атрибут указывает, что элемент является редактируемой областью. Пользователь может изменить содержимое элемента и манипулировать разметкой.
  • сontextmenu атрибут может использоваться, чтобы указать на контекстное меню, представленные автором.
  • data-* коллекция автора определенных атрибутов. Авторы могут определить любой атрибут какой захотят, с префиксом data-, чтобы избежать столкновения с будущими версиями HTML. Единственное требование этих атрибутов является то, что они не используются в расширениях пользовательского агента.
  • dragable и dropzone атрибуты могут быть использованы вместе с новой  API drag&drop.
  • hidden атрибут указывает, что элемента еще нет, или он не актуален.
  • role и area-* коллекция атрибутов, которые можно использовать для указания вспомогательных технологий.
  • spellcheck атрибут намекает может ли содержание  быть проверено на наличие орфографических ошибок или нет.
  • translate атрибут подсказывает переводчикам, что содержимое должно быть переведено.

HTML5 также использует все атрибуты обработчиков событий из HTML4,  и добавляет несколько новых обработчиков событий атрибутов для новых событий. Например, onplay обработчик события, которое используется API для элементов мультимедиа.

Язык HTML5

Этот раздел разделен на несколько подразделов, чтобы более наглядно
иллюстрировать какие различия существуют между HTML4 и HTML5

Новые элементы

Следующие элементы были введены для улучшения структуры:

  • section представляет собой общий документ или раздел приложения. Он может быть использован вместе с h1, h2, h3, h4, h5 и h6 элементами для обозначения структуры документа.
  • article представляет собой самостоятельную часть содержимого документа, например, в блоге или газетной статье.
  • aside представляет собой часть контента, который лишь немного связан с остальной частью страницы.
  • hgroup представляет заголовок раздела.
  • header представляет собой группу из вступительных или навигационных средств.
  • footer представляет собой подвал для раздела и может содержать информацию об авторе, информацию об авторских правах и т.д.
  • nav представляет раздел документа, предназначенный для навигации.
  • figure представляет собой часть автономного содержимого потока, как правило, ссылаются как единое целое с основным потоком документов.
     <figure> <video src="example.webm" controls></video> <figcaption>Example</figcaption> </figure> 

    figcaption может быть использован как заголовок (это по желанию).

Кроме того, есть ряд других новых элементов:

  • video и audio для мультимедийного контента. Оба предоставляют API поэтому применение Авторы сценария может их собственный пользовательский интерфейс, но есть способ, чтобы вызвать пользовательский интерфейс, предоставленный пользователем агента. source элементы используются вместе с этими элементами, если есть несколько потоков доступно различных типов.
  • track предоставляет текст треков для video элемент.
  • embed используется для вставки плагина.
  • mark представляет собой фрагмент текста в одном документе отмеченый и выделеный в справочных целях, в связи с его значимость в другом контексте.
  • progress представляет собой завершение задачи, например, загрузки или при выполнении ряда длительнотекущих операций.
  • meter представляет собой измерения, такие как использование дискового пространства.
  • time представляет собой дату и/или времени.
  • WHATWG HTML data, который позволяет интегрировать машиночитаемые значения.
  • rubyгt, и rp позволяют интегрировать разметки в ruby аннотации.
  • bdi представляет собой отрывок текста, который должен быть изолирован от окружающей среды в целях двунаправленного форматирования текста.
  • wbr представляет возможность разрыва строки.
  • canvas используется для предоставления динамической графики на лету, таких как графики или игры.
  • comand представляет собой команду, которую пользователь может вызвать.
  • details представляет дополнительную информацию или управление, которые пользователь может получить по первому требованию. summary элемент предоставляет своим резюме, легенды, или подпись.
  • datalist вместе с новым list атрибутом элемента input может быть использован для создания выпадающих списков:
     <input list="browsers"> <datalist id="browsers"> <option value="Safari"> <option value="Internet Explorer"> <option value="Opera"> <option value="Firefox"> </datalist> 
  • keygen представляет управление для генерации ключа.
  • output представляет определенный тип вывода.

Атрибут type элемента input теперь имеет следующие новые значения:

  • tel
  • search
  • url
  • email
  • datetime
  • date
  • month
  • week
  • time
  • datetime-local
  • number
  • range
  • color

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

Введение от W3C

Введение

HTML находится в непрерывной эволюции, так как она была введена в Интернете в начале 1990-х годов. Некоторые функции были введены в спецификациях, а другие были введены в версий программного обеспечения. В некоторых отношениях, реализации и практики авторы сошлись друг с другом и со спецификациями и стандартами, но в других отношениях, они разошлись.

HTML4 был представлен в виде рекомендации W3C в 1997 году. В то время как он продолжает служить в качестве приблизительного ориентира для многих основных особенностей HTML, она не дает достаточно информации для создания реализаций, которые взаимодействуют друг с другом и, что более важно, с критической массой развернутых web-приложений. То же самое касается XHTML1, который определяет XML-сериализацию для HTML4, и DOM Level 2 HTML, JavaScript, который определяет API-интерфейсы для HTML и XHTML. HTML5 призван заменить эти документы.

HTML5, как проект, отражает усилия, начатые в 2004 году для изучения современных реализаций HTML и web-приложений. В проекте:

  1. Определяет единый язык под называнием HTML, который может быть описаны в синтаксисе HTML и синтаксисе XML.
  2. Определяет подробные модели обработки способствующих совместимости реализаций.
  3. Улучшает разметку документов.
  4. Представляет разметки и API-интерфейсы для новых идиом, таких как веб-приложения.

Открытые вопросы

HTML5 еще проект. Содержание HTML5, а также содержание этого документа, которые зависят от HTML5, до сих пор обсуждается на рабочей группе HTML и WHATWG. Открытые вопросы, связанные с проектом HTML5.

Обратная совместимость

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

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

С HTML5 имеет отдельные требования соответствия для авторов и пользователей средств больше нет необходимости для обозначения черты «устарела».

Модель развития

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

Синтаксис

HTML5 определяет HTML-синтаксис, который совместим с HTML4 и XHTML1 документов, опубликованных в Интернете, но не совместима с более эзотерические SGML особенности HTML4, например, инструкции по обработке и сокращение разметки , как это не поддерживается большинством броузеров. Документы  HTML почти всегда отдаются с text/html типом.

HTML5 также определяет подробные правила разбора (в том числе «Обработка ошибок») для этого синтаксиса, который в значительной степени совместим с популярными реализациями. Агенты пользователей должны использовать эти правила для ресурсов, которые имеют text/html тип. Вот пример документа, соответствующего HTML синтаксису:

<! DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> Пример документа </ title> </ HEAD> <body> пункт <p> Пример </ P> </ Body> </ Html>

Другой синтаксис, который может быть использован для HTML5 является XML. Этот синтаксис совместим с XHTML1 документов и реализации. Документы, используя следующий синтаксис необходимо отдавать с типом XML средствами массовой информации и элементы должны быть помещены в http://www.w3.org/1999/xhtml имен в соответствии с правилами, изложенными в XML-спецификаций. [XML]

Ниже приведен пример документа, соответствующего XML-синтаксису HTML5. Обратите внимание, что XML-документы должны быть поданы с типом XML-носителей, таких как application/XHTML + XML или application/XML.

<? XML-версия = "1.0" кодирования = "UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Пример документа </ title> </ HEAD> <body> пункт <p> Пример </ P> </ Body> </ Html>

Кодировка

Для HTML-синтаксиса HTML5 авторы имеют три способа настройки кодировки:

  • На транспортном уровне. При использовании HTTP Content-Type заголовка, например.
  • Использование Unicode Byte Order Mark (BOM) символ в начале файла. Этот символ представляет собой подпись в используемую кодировку.
  • Использование мета элемент с кодировкой атрибут, который определяет кодировку в течение первых 1024 байт документа. Например, <meta charset="UTF-8"> могут быть использованы для определения UTF-8 кодировке. Это заменяет необходимость <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> хотя этот синтаксис все еще ??разрешен.

Для XML-синтаксиса, авторы должны использовать правила, изложенные в XML-спецификаций, чтобы установить кодировку.

Doctype

HTML синтаксис HTML5 требует тип документа который должен быть указан для того, чтобы браузер отображал страницу в стандартном режиме. Тип документа не имеет другой цели, и, следовательно, обязателен для XML. Документы с типом XML СМИ всегда обрабатываются в стандартном режиме. [DOCTYPE]

DOCTYPE декларации <! DOCTYPE html> и без учета регистра в HTML синтаксисе. DOCTYPEs от предыдущих версий HTML были длиннее, потому что язык HTML был создан на SGML основе и, следовательно, требовал ссылку на DTD. В HTML5 это не так и типа документа необходимо лишь включить режим стандартов для документов, написанных с использованием HTML синтаксис. Обозреватели уже делают это для <! DOCTYPE HTML> .

MathML и SVG

HTML синтаксис HTML5 позволяет интегрировать MathML и SVG элементы, которые будут использоваться в документе. Например, очень простой документ, используя некоторые минимальные функции синтаксис может выглядеть следующим образом:

<! DOCTYPE html> <title> SVG в text/html документе </ title> <p> Зеленый круг: <svg> <circle r="50" cx="50" cy="50" fill="green"/> </ SVG> </ P>

Более сложные комбинации также возможны.

Разное

Есть несколько других изменений синтаксиса достойных упоминания:

  • HTML теперь имеет встроенную поддержку для IRI, хотя они могут быть полностью использованы, если документ кодирован UTF-8 или UTF-16.
  • < и > имени ссылки на символы в настоящее время расширить до U +27 E8 и U +27 E9 вместо U +2329 и U +232, соответственно.

Вместо предисловия

Следуя своим непосредственным предшественникам HTML 4.01 и XHTML 1.1, HTML5 отвечает всем требованиям, для которых HTML и XHTML в основном используются во всемирной паутине. HTML5 также считается микстурой будущего с введёнными различными спецификациями, вместе с тем введёнными продуктами программного обеспечения, такими как веб-браузеры, установленными для использования в общей практике, а также исправления множества синтаксических ошибок, возникающих в существующих веб-документах. HTML5 — также попытка определить единый язык разметки, который мог бы быть написан как в HTML, так и в XHTML и был бы синтаксически корректен. Он включает в себя детальные модели обработки, чтобы поддерживать больше взаимодействующих процессов; он расширяет, улучшает и рационализирует разметку, пригодную для документов, и вводит разметку и API для сложных веб-приложений.

В HTML5 появляется множество синтаксических особенностей. Например, элементы <video><audio> и <canvas>, а также возможность использованияSVG. Эти новшества разработаны для упрощения внедрения и управления графическими и мультимедийными объектами в сети без необходимости обращения к собственным плагинам и API. Другие новые элементы, такие как<section><article><header> и <nav> разработаны для того, чтобы обогащать семантическое содержимое документа (страницы). Новые атрибуты были введены с той же целью, хотя ряд элементов и атрибутов был удален. Некоторые элементы, например, <a> <menu> и <cite> были изменены, переопределены или стандартизированы. API и DOM являются фундаментальными частями спецификации HTML5. HTML5 также определяет некоторые детали для обработки недопустимых документов, поэтому синтаксические ошибки будут рассматриваться одинаково всеми приспособленными браузерами и другими пользовательскими агентами.

Тег base — информация о пути

Информация о пути: тэг BASE

<!ELEMENT BASE - O EMPTY               -- базовый URI документа -->
<!ATTLIST BASE
  href        %URI;          #REQUIRED -- URI, служащий базовым --
  >

Начальный тэг: обязателен, Конечный тэг: запрещен

Определения атрибутов

href = uri [CT]
Этот атрибут задает абсолютный URI, служащий базовым URI для разрешения относительных URI.

Атрибуты, определяемые в другом месте

  • target (информация о целевом кадре)

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

Если элемент BASE указан, он должен присутствовать в разделе HEAD документа HTML, до элементов, ссылающихся на внешние ресурсы. Информация о пути, указанная в элементе BASE, влияет только на URI в документе, в котором присутствует этот элемент.

Например, даны следующее объявление BASE и объявление A:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
   "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
 <HEAD>
   <TITLE>Наши продукты</TITLE>
   <BASE href="http://www.aviary.com/products/intro.html">
 </HEAD>

 <BODY>
   <P>Вы видели наши <A href="../cages/birds.gif">клетки для птиц</A>?
 </BODY>
</HTML>

относительный URI «../cages/birds.gif» будет разрешен в:

http://www.aviary.com/cages/birds.gif

Разрешение относительных URI

Агенты пользователей должны вычислять базовый URI для разрешения относительных URI в соответствии с [RFC1808], раздел 3. Далее описано, как [RFC1808] применяется именно к HTML.

Агенты пользователей должны вычислять базовый URI в соответствии со следующим приоритетом (от высшего приоритет к низшему):

  1. Базовый URI, устанавливаемый элементом BASE.
  2. Базовый URI, задаваемый метаданными, обнаруженными в процессе работы по протоколу, такими как заголовок HTTP (см.[RFC2068]).
  3. По умолчанию базовым URI является URI текущего документа. Не все документы HTML имеют базовый URI (например, документ HTML может присутствовать в сообщении электронной почты и может не определяться никаким URI). Такие документы HTML считаются erroneous, если они содержат относительные URI и используют базовый URI по умолчанию.

Кроме того, элементы OBJECT и APPLET определяют атрибуты, имеющие преимущество над значением, установленным для элементаBASE. Подробнее об относящихся к ним определениям URI см. в определениях этих элементов.

Ссылки, указанные в заголовках HTTP, обрабатываются в точности так, как элементы LINK, явно установленные в документе.


Тег link — отношения документов

Отношения документов: тэг LINK

<!ELEMENT LINK - O EMPTY               -- независимая от устройства ссылка -->
<!ATTLIST LINK
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- кодировка символов связанного ресурса --
  href        %URI;          #IMPLIED  -- URI связанного ресурса --
  hreflang    %LanguageCode; #IMPLIED  -- код языка --
  type        %ContentType;  #IMPLIED  -- рекомендуемый тип содержимого --
  rel         %LinkTypes;    #IMPLIED  -- тип прямой связи --
  rev         %LinkTypes;    #IMPLIED  -- тип обратной связи --
  media       %MediaDesc;    #IMPLIED  -- для представления на этих устройствах --
  >

Начальный тэг: обязателен, Конечный тэг: запрещен

Атрибуты, определяемые в другом месте

  • id, class (идентификаторы в переделах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле )
  • onclick, ondblclick, onmousedown, onmouseup,
    onmouseover, onmousemove, onmouseout,
    onkeypress, onkeydown, onkeyup(внутренние события)
  • href, hreflang, type, rel, rev (ссылки и якоря)
  • target (информация о целевом фрейме)
  • media (информация о стиле заголовка)
  • charset (кодировки символов)

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

В данном примере показано, как несколько определений элемента LINK могут быть представлены в разделе HEAD документа. Текущим документом является «Chapter2.html». Атрибут rel указывает отношение связанного документа с текущим документом. Значения «Index», «Next» и «Prev» описаны в разделе, посвященном типам ссылок.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
   "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
  <TITLE>Глава 2</TITLE>
  <LINK rel="Index" href="../index.html">
  <LINK rel="Next"  href="Chapter3.html">
  <LINK rel="Prev"  href="Chapter1.html">
</HEAD>
...продолжение документа...

Прямые и обратные ссылки

Атрибуты rel и rev играют дополнительные роли — атрибут rel задает прямую ссылку, а атрибут rev - обратную.

Рассмотрим два документа — A и B.

Документ A:       <LINK href="docB" rel="foo">

имеет точно то же значение, что и:

Документ B:       <LINK href="docA" rev="foo">

Оба атрибута могут определяться одновременно.

Ссылки и внешние таблицы стилей

Если элемент LINK ссылается на внешнюю таблицу стилей для документа, атрибут type указывает язык таблицы стилей, а атрибутmedia - предполагаемое устройство или устройства для представления документа. Агенты пользователей могут сэкономить время, загружая из сети только те таблицы стилей, которые применяются к текущему устройству.

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

Ссылки и поисковые машины

Авторы могут использовать элемент LINK для указания различной информации для поисковых машин, включая:

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

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

В следующем примере мы используем атрибут hreflang, чтобы сообщить поисковым машинам, где находятся голландская, португальская и арабская версии документа. Обратите внимание на использование атрибутов dir и charset для руководства на арабском языке, а также на использование атрибута lang для указания того, что значением атрибута title для элемента LINK, указывающего руководство на французском языке, задано по-французски.

<HEAD>
<TITLE>Руководство на английском языке</TITLE>
<LINK title="Руководство на голландском языке"
      type="text/html"
      rel="alternate"
      hreflang="nl"
      href="http://someplace.com/manual/dutch.html">
<LINK title="Руководство на португальском языке"
      type="text/html"
      rel="alternate"
      hreflang="pt"
      href="http://someplace.com/manual/portuguese.html">
<LINK title="Руководство на арабском языке"
      dir="rtl"
      type="text/html"
      rel="alternate"
      charset="ISO-8859-6"
      hreflang="ar"
      href="http://someplace.com/manual/arabic.html">
<LINK lang="fr" title="La documentation en Fran&ccedil;ais"
      type="text/html"
      rel="alternate"
      hreflang="fr"
      href="http://someplace.com/manual/french.html">
</HEAD>

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

<HEAD>
<TITLE>Руководство</TITLE>
<LINK media="print" title="Руководство в формате postscript"
      type="application/postscript"
      rel="alternate"
      href="http://someplace.com/manual/postscript.ps">
</HEAD>

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

<HEAD>
<TITLE>Руководство - страница 5</TITLE>
<LINK rel="Start" title="Первая страница руководства"
      type="text/html"
      href="http://someplace.com/manual/start.html">
</HEAD>

Теги th и td — ячейки таблицы

Ячейки таблицы: тэги TH и TD

<!ELEMENT (TH|TD)  - O (%flow;)*       -- ячейка заголовка таблицы, ячейка данных таблицы -->

<!-Для большинства таблиц атрибут scope проще, чем атрибут axes -->
<!ENTITY % Scope "(row|col|rowgroup|colgroup)">

<!-- TH используется для заголовков, TD - для данных, но для ячеек, служащих и тем, и другим используйте TD -->
<!ATTLIST (TH|TD)                      -- заголовок ячейки данных --  %attrs;                              -- %coreattrs, %i18n, %events --  abbr        %Text;         #IMPLIED  -- сокращение для ячейки заголовка --  axis        CDATA          #IMPLIED  -- группы имен связанных заголовков --  headers     IDREFS         #IMPLIED  -- список id для ячеек заголовков --  scope       %Scope;        #IMPLIED  -- область ячеек заголовков --  rowspan     NUMBER         1         -- число строк, spanned ячейкой --  colspan     NUMBER         1         -- число столбцов, spanned ячейкой --  %cellhalign;                         -- горизонтальное выравнивание в ячейках --  %cellvalign;                         -- вертикальное выравнивание в ячейках --
  >

Начальный тег: обязателен, Конечный тег: не обязателен

Определения атрибутов

headers = idrefs[CS]
В этом атрибуте указывается список ячеек заголовков, предоставляющих заголовочную информацию для текущей ячейки данных. Значением этого атрибута является разделенный пробелами список названий ячеек; имена ячейкам должны даваться с помощью атрибута id. Авторы обычно используют атрибут headers с целью помочь невизуальным агентам пользователей в генерации заголовков ячеек данных (например, заголовок произносится перед прочтением данных ячейки), но этот атрибут может также использоваться вместе с таблицами стилей. См. также атрибут scope.
scope = имя области действия [CI]
Этот атрибут определяет набор ячеек данных, для которых заголовочная информация задается текущим заголовком. Этот атрибут может использоваться вместо атрибута a href=»tables.html#adef-headers»>headers, особенно в простых таблицах. Если этот атрибут используется, он должен иметь одно из следующих значений:

  • row: В ячейке представлена заголовочная информация для оставшейся части строки, в которой содержится эта ячейка (см. также раздел о направлении таблиц).
  • col: В текущей ячейке представлена заголовочная информация для оставшейся части столбца, в котором содержится эта ячейка.
  • rowgroup: В ячейке представлена заголовочная информация для оставшейся группы строк, в которой содержится эта ячейка.
  • colgroup: В ячейке представлена заголовочная информация для оставшейся группы столбцов, в которой содержится эта ячейка.
abbr = текст [CS]
Этот атрибут следует использовать для представления сокращенной формы содержимого ячейки; он может генерироваться агентами пользователей в подходящий момент вместо содержимого ячейки. Сокращенные имена должны быть короче, и агенты пользователей могут повторять их. Например, синтезаторы речи могут генерировать сокращенные заголовки, относящиеся к определенной ячейке, перед генерацией содержимого ячейки.
axis = cdata [CI]
Этот атрибут может использоваться вместо ячейки в концептуальных категориях, которая может использоваться для формирования axes в n-мерном пространстве. Агенты пользователей могут давать пользователям доступ к этим категориям (например, пользователь может запрашивать у агента все ячейки, принадлежащие к определенной категории, агент пользователя может представлять таблицу в форме оглавления и т.д.). Подробнее см. в разделе о категоризации ячеек. Значением этого атрибута является список имен категорий, разделенных запятыми.
rowspan = число [CN]
Этот атрибут определяет число строк, spanned текущей ячейкой. По умолчанию используется значение один («1″). Значение ноль («0″) означает, что ячейка spans все строки от текущей до последней строки таблицы.
colspan = число [CN]
Этот атрибут определяет число столбцов, spanned текущей ячейкой. По умолчанию используется значение один («1″). Значение ноль («0″) означает, что ячейка spans все столбцы от текущего до последнего столбца таблицы.
nowrap [CI]
Нежелателен. Если этот логический атрибут используется, он сообщает визуальным агентам пользователей о необходимости отключить автоматическое разбиение текста для этой ячейки. Для разбиения строк вместо этого атрибута должны использоватьсятаблицы стилей. Примечание. при невнимательном использовании этот атрибут может привести к тому, что ячейки будут очень широкими.
width = пикселы [CN]
Нежелателен. Этот атрибут дает агентам пользователей рекомендуемую ширину ячейки.
height = пикселы [CN]
Нежелателен. Этот атрибут дает агентам пользователей рекомендуемую высоту ячейки.

Атрибуты, определяемые в любом другом месте

  • id, class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле )
  • onclick, ondblclick, onmousedown, onmouseup,
    onmouseover, onmousemove, onmouseout,
    onkeypress, onkeydown, onkeyup (внутренние события)
  • bgcolor (цвет фона)
  • align, char, charoff, valign (выравнивание в ячейках)

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

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

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

Элемент TD определяет ячейку, содержащую данные.

Ячейка может быть пустой (т.е. не содержать данных).

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

<TABLE summary="В этой таблице показан график числа
                   чашек кофе, выпиваемых каждым сенатором, тип
                   кофе (без кофеина или обычный) и наличие сахара.">
<CAPTION>Сколько чашек кофе выпивает каждый сенатор</CAPTION>
<TR>
   <TH>Имя</TH>
   <TH>Число чашек</TH>
   <TH>Тип кофе</TH>
   <TH>Сахар?</TH>
<TR>
   <TD>Т. Секстон</TD>
   <TD>10</TD>
   <TD>Эспрессо</TD>
   <TD>Нет</TD>
<TR>
   <TD>Дж. Диннен</TD>
   <TD>5</TD>
   <TD>Без кофеина</TD>
   <TD>Да</TD>
</TABLE>

Агент пользователя, выполняющий генерацию для терминала, может отобразить это следующим образом:

Имя Число чашек Тип кофе Сахар?
Т. Секстон    10         Эспрессо         Нет
Дж. Диннен    5          Без кофеина       Да

Ячейки, span несколько строк или столбцов

Ячейки могут span несколько строк или столбцов. Число строк или столбцов, spanned ячейкой, устанавливается с помощью атрибутовrowspan и colspan элементов TH и TD.

В этом определении таблицы мы указываем, что ячейка в четвертой строке во втором столбце span все три столбца, включая текущий.

<TABLE border="1">
<CAPTION> Сколько чашек кофе выпивает каждый сенатор </CAPTION>
<TR><TH>Имя<TH>Число чашек<TH>Тип кофе<TH>Сахар?
<TR><TD>Т. Секстон<TD>10<TD>Эспрессо<TD>Нет
<TR><TD>Дж. Диннен<TD>5<TD>Без кофеина<TD>Да
<TR><TD>А. Сориа<TD colspan="3"><em>Нет данных</em>
</TABLE>

На терминале эта таблица может генерироваться следующим образом:

Сколько чашек кофе выпивает каждый сенатор
 ----------------------------------------------
 |   Имя    |Число чашек|Тип кофе      |Сахар?|
 ----------------------------------------------
 |Т. Секстон|10         |Эспрессо      |Нет   |
 ----------------------------------------------
 |Дж. Диннен|5          |Без кофеина   |Да    |
 ----------------------------------------------
 |А. Сориа  |Нет данных                       |
 ----------------------------------------------

В следующем примере показано (с помощью границ таблицы), как определения ячеек, span несколько строк или столбцов, влияют на определения следующих ячеек. Рассмотрите следующее определение таблицы:

<TABLE border="1">
<TR><TD>1 <TD rowspan="2">2 <TD>3
<TR><TD>4 <TD>6
<TR><TD>7 <TD>8 <TD>9
</TABLE>

Поскольку ячейка «2″ spans первую и вторую строки, определение второй строки будет принято во внимание. Таким образом, второй элемент TD в строке два в действительности определяет третью ячейку строки. Визуально на терминале таблица может генерироваться следующим образом:

-------------
| 1 | 2 | 3 |
----|   |----
| 4 |   | 6 |
----|---|----
| 7 | 8 | 9 |
-------------

а графический агент пользователя может представить ее так:

 

Помните, что, если элемент TD, определяющий ячейку «6″, опущен, агенты пользователя будут добавлять дополнительную пустую ячейку, чтобы заполнить строку.

Точно так же в следующем определении таблицы:

<TABLE border="1">
<TR><TD>1 <TD>2 <TD>3
<TR><TD colspan="2">4 <TD>6
<TR><TD>7 <TD>8 <TD>9
</TABLE>

ячейка «4″ spans два столбца, так что второй элемент TD в строке на самом деле определяет третью ячейку («6″):

-------------
| 1 | 2 | 3 |
--------|----
| 4     | 6 |
--------|----
| 7 | 8 | 9 |
-------------

Графический агент пользователя может представить это следующим образом:

 

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

В следующем примере недопустимого использования показано, как можно создать перекрывающиеся ячейки. В этой таблице ячейка «5″ spans две строки, а ячейка «7″ spans два столбца, так что они обе используют ячейку между «7″ и «9″:

<TABLE border="1">
<TR><TD>1 <TD>2 <TD>3
<TR><TD>4 <TD rowspan="2">5 <TD>6
<TR><TD colspan="2">7 <TD>9
</TABLE>

Тег tr — строка таблицы

Строки таблицы: тэг TR

Начальный тег: обязателен, Конечный тег: не обязателен

Атрибуты, определяемые в любом другом месте

  • id, class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле )
  • onclick, ondblclick, onmousedown, onmouseup,
    onmouseover, onmousemove, onmouseout,
    onkeypress, onkeydown, onkeyup (внутренние события)
  • align, char, charoff, valign (выравнивание в ячейках)

Элементы TR служат контейнерами для строки ячеек таблицы. Конечный тег можно опустить.

Эта простая таблица состоит из трех строк, каждая из которых начинается с элемента TR:

<TABLE summary="В этой таблице показан график числа
                   чашек кофе, выпиваемых каждым сенатором, тип
                   кофе (без кофеина или обычный) и наличие сахара.">
<CAPTION>Сколько чашек кофе выпивает каждый сенатор</CAPTION>
<TR> ...Строка заголовка...
<TR> ...Первая строка данных...
<TR> ...Вторая строка данных...
...продолжение таблицы...
</TABLE>

Теги colgroup и col — группы столбцов таблицы

Группы столбцов: тэги COLGROUP и COL

Группы столбцов позволяют создавать структурные подразделения внутри таблицы. Авторы могут выделять такую структуру с помощью таблиц стилей или атрибутов HTML (например, атрибут rules для элемента TABLE). Пример визуального представления группы столбцов см. в примере таблицы.

Таблица может содержать одну неявную группу столбцов (элемент COLGROUP не разделяет столбцы) или любое число явных групп столбцов (каждая из которых отделяется одним экземпляром элемента COLGROUP).

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

Элемент COLGROUP

<!ELEMENT COLGROUP - O (col)*          -- группа столбцов таблицы -->
<!ATTLIST COLGROUP
  %attrs;                              -- %coreattrs, %i18n, %events --  span        NUMBER         1         -- число столбцов в группе, используемое по умолчанию --  width       %MultiLength;  #IMPLIED  -- ширина для вложенных элементов COL, используемая по умолчанию --  %cellhalign;                         -- горизонтальное выравнивание в ячейках --  %cellvalign;                         -- вертикальное выравнивание в ячейках --  >

Начальный тег: обязателен, Конечный тег: необязателен

Определения атрибутов

span = число[CN]
Этот атрибут, значением которого должно быть целое число больше нуля, определяет число столбцов в группе. Значения означают следующее:

  • При отсутствии атрибута span каждый элемент COLGROUP определяет группу столбцов, состоящую из одного столбца.
  • Если для атрибута span установлено значение N > 0, текущий элемент COLGROUP определяет группу, содержащую N столбцов.

Агенты пользователей должны игнорировать этот атрибут, если элемент COLGROUP содержит один или несколько элементов COL.

width = multi-length[CN]
Этот атрибут определяет ширину каждого столбца в текущей группе, используемую по умолчанию. Кроме стандартных значений в пикселах, процентах и относительных значений, в этом атрибуте может использоваться специальная форма «0*» (ноль со звездочкой), которая означает, что ширина каждого столбца в группе должна быть минимальной, необходимой для размещения содержимого столбца. Подразумевается, что содержимое столбца известно до того, как можно будет корректно вычислить его ширину. Авторы должны знать, что использование «0*» не позволит агентам пользователей генерировать таблицу последовательно.Этот атрибут переопределяется для любого столбца из группы, для которого значение атрибута width задано в элементе COL.

Атрибуты, определяемые в любом другом месте

  • id, class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле)
  • onclick, ondblclick, onmousedown, onmouseup,
    onmouseover, onmousemove, onmouseout,
    onkeypress, onkeydown, onkeyup(внутренние события)
  • align, char, charoff, valign (выравнивание ячейки)

Элемент COLGROUP создает явную группу столбцов. Число столбцов в группе может быть указано двумя взаимоисключающими способами:

  1. Атрибут span элемента (значение по умолчанию — 1) задает число столбцов в группе.
  2. Каждый элемент COL в COLGROUP представляет один или несколько столбцов в группе.

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

   <COLGROUP span="40" width="20">
   </COLGROUP>

чем:

   <COLGROUP>
      <COL width="20">
      <COL width="20">
      ...все сорок элементов COL...
   </COLGROUP>

Если необходимо выделить столбец (например, для информации о стиле, для указания информации о ширине и т.д.) в группе, авторы должны определить этот столбец с помощью элемента COL. Таким образом, чтобы применить специальную информацию о стиле к последнему столбцу предыдущей таблице, мы выделяем его следующим образом:

   <COLGROUP width="20">
      <COL span="39">
      <COL id="format-me-specially">
   </COLGROUP>

Атрибут width элемента COLGROUP наследуют все сорок столбцов. Первый элемент COL относится к первым 39 столбцам (ничего особенного для них не делая), а второй назначает значение idсороковому столбцу, так что на него можно будет ссылаться в таблицах стилей.

Таблица в следующем примере содержит две группы столбцов. Первая группа включает 10 столбов, вторая — 5. Ширина по умолчанию для каждого столбца в первой группе — 50 пикселов. Ширина каждого столбца во второй группе — минимальная, необходимая для этого столбца.

<TABLE>
<COLGROUP span="10" width="50">
<COLGROUP span="5" width="0*">
<THEAD>
<TR><TD> ...
</TABLE>

Элемент COL

<!ELEMENT COL      - O EMPTY           -- столбец таблицы -->
<!ATTLIST COL                          -- группы и свойства столбцов --  %attrs;                              -- %coreattrs, %i18n, %events --  span        NUMBER         1         -- атрибут COL влияет на N столбцов --  width       %MultiLength;  #IMPLIED  -- ширина столбца --  %cellhalign;                         -- горизонтальное выравнивание в ячейках --  %cellvalign;                         -- вертикальное выравнивание в ячейках --  >

Начальный тег: обязателен, Конечный тег: запрещен

Определения атрибутов

span = число[CN]
Этот атрибут, значением которого должно быть целое число больше нуля, определяет число столбцов, «spanned» элементом COL; атрибуты элемента COL распространяются на все столбцы, которые он spans. Значение по умолчанию для этого атрибута — 1 (т.е. элемент COL означает один столбец). Если для атрибута span установлено значение N > 1, атрибуты текущего элемента COLраспространяются на следующие N-1 столбец.
width = multi-length[CN]
Этот атрибут определяет ширину каждого столбца, spanned текущим элементом COL, используемую по умолчанию. Он имеет то же значение, что и атрибут width для элемента COLGROUP и имеет над ним приоритет.

Атрибуты, определяемые в любом другом месте

  • id, class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле)
  • onclick, ondblclick, onmousedown, onmouseup,
    onmouseover, onmousemove, onmouseout,
    onkeypress, onkeydown, onkeyup (внутренние события)
  • align, char, charoff, valign (выравнивание в ячейках)

Элемент COL позволяет авторам группировать определения атрибутов для столбцов таблицы. Атрибут COL не группирует столбцы структурно — эту роль играет элемент COLGROUP. Элементы COL являются пустыми и служат только для поддержания атрибутов. Они могут находиться внутри или вне явной группы столбцов (т.е. элемента COLGROUP).

Атрибут width для элемента COL означает ширину каждого столбца в span элемента.

Подсчет числа столбцов в таблице

Имеется два способа определения числа столбцов в таблице (в порядке старшинства):

  1. Если элемент TABLE включает элементы COLGROUP или COL, агенты пользователей должны подсчитывать число столбцов, суммируя следующие цифры:
    • Для каждого элемента COL - значение его атрибута span (по умолчанию 1).
    • Для каждого элемента COLGROUP, содержащего по крайней мере один элемент COL - игнорировать атрибут span для элементаCOLGROUP. Для каждого элемента COL выполнить вычисление из шага 1.
    • Для каждого пустого элемента COLGROUP - значение его атрибута span (по умолчанию 1).
  2. В противном случае, если элемент TABLE не содержит элементов COLGROUP или COL, агенты пользователей определять число столбцов из того, что необходимо для строк. Число столбцов равно число столбцов, необходимых строке с наибольшим числом столбцов, включая ячейки, span несколько столбцов. Для любой строки, число столбцов в которой меньше, конец этой строки будет дополняться пустыми ячейками. «Конец» строки зависит от направления таблицы.

Если таблица содержит элементы COLGROUP или COL, и эти два способа подсчет дают разные результаты, это является ошибкой.

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

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

<TABLE>
<COLGROUP span="3"></COLGROUP>
<TR><TD> ...
...строки...
</TABLE>

<TABLE>
<COLGROUP>
<COL>
<COL span="2">
</COLGROUP>
<TR><TD> ...
...строки...
</TABLE>

<TABLE>
<COLGROUP>
<COL>
</COLGROUP>
<COLGROUP span="2">
<TR><TD> ...
...строки...
</TABLE>

<TABLE>
<TR>
  <TD><TD><TD>
</TR>
</TABLE>

Подсчет ширины столбцов

Авторы могут указывать ширину столбцов тремя способами:

Фиксированная
Указание фиксированной ширины дается в пикселах (например, width=»30″). Использование фиксированной ширины позволяет использовать последовательную генерацию.
В процентах
Указание ширины в процентах (например, width=»20%») означает процент горизонтального пространства, доступного для таблицы (между текущим левым и правым полями, включая floats). Помните, что это пространство не зависит от самой таблицы, поэтому указание ширины в процентах позволяет использовать последовательную генерацию.
Пропорциональная
Указание пропорциональной ширины (например, width=»3*») означает число частей горизонтального пространства,необходимого для таблицы. Если ширина таблицы определяется как фиксированное значение (с помощью атрибута widthэлемента TABLE), агенты пользователей могут генерировать таблицу последовательно и с указанием пропорциональной ширины.Однако если ширина таблицы не фиксирована, агенты пользователей должны получить все данные таблицы перед тем, как они смогут определить горизонтальное пространство, необходимое для таблицы. Только тогда это пространство может быть распределено между столбцами, для которых указана пропорциональная ширина.

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

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

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

Когда агент пользователя (визуальный) получит данные таблицы, доступное горизонтальное пространство будет распределяться агентом пользователя следующим образом: сначала агент пользователя распределит 30 пикселов на первый и второй столбец. Затем будет зарезервировано минимальное пространство, необходимое для третьего столбца. Оставшееся горизонтальное пространство будет разделено на шесть равных частей (поскольку 2* + 1* + 3* = 6 частей). Четвертый столбец (2*) получит две таких части, пятый (1*) — одну, а шестой — (3*) три.

<TABLE>
<COLGROUP>
   <COL width="30">
<COLGROUP>
   <COL width="30">
   <COL width="0*">
   <COL width="2*">
<COLGROUP align="center">
   <COL width="1*">
   <COL width="3*" align="char" char=":">
<THEAD>
<TR><TD> ...
...строки...
</TABLE>

Для атрибута align во второй группе столбцов мы установили значение «center». Все ячейки в каждом столбце этой группы будут наследовать это значение, но могут переопределять его. В действительности последний элемент COL делает именно это, потому что в нем указано, что каждая ячейка столбца, которым он управляет, будет выровнена с использованием символа «:».

В следующей таблице спецификации ширины столбца позволяют агентам пользователя форматировать таблицу последовательно:

<TABLE width="200">
<COLGROUP span="10" width="15">
<COLGROUP width="*">
   <COL id="penultimate-column">
   <COL id="last-column">
<THEAD>
<TR><TD> ...
...строки...
</TABLE>

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

Примечание. Хотя атрибут width элемента TABLE не является нежелательным, авторам рекомендуется использовать для указания ширины таблицы стилей.