13 Объекты, изображения и апплеты

Содержание

  1. Введение в объекты, изображения и апплеты
  2. Включение изображения: элемент IMG
  3. Общее включение: элемент OBJECT
    1. Правила представления объектов
    2. Инициализация объекта: элемент PARAM
    3. Глобальные схемы именования объектов
    4. Объявление и инициализация объекта
  4. Включение апплета: элемент APPLET
  5. Замечания о внедренных документах
  6. Навигационные карты
    1. Клиентские навигационные карты: элементы MAP и AREA
    2. Серверные навигационные карты
  7. Визуальное представление изображений, объектов и апплетов
    1. Ширина и высота
    2. Пространство вокруг изображений и объектов
    3. Границы
    4. Выравнивание
  8. Как указать альтернативный текст

13.1 Введение в объекты, изображения и апплеты

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

Например, чтобы включить в документ изображение в формате PNG, авторы могут использовать следующий код:

<BODY>
<P>Около Большого Каньона:
<OBJECT data="canyon.png" type="image/png">
<EM>Около</EM> Большого Каньона.
</OBJECT>
</BODY>

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

Для решения всех этих вопросов в HTML 4.0 вводится элемент OBJECT, обеспечивающий всестороннее решение для включения объектов. Элемент OBJECT позволяет авторам документов в формате HTML указывать всю информацию, необходимую для представления объекта агентом пользователя: исходный код, начальные значения и рабочие данные. В данной спецификации термин "объект" используется для описания всех объектов, которые Вы захотите включить в HTML-документы; другие термины: апплеты, подключаемые модули (plug-ins), дескрипторы устройств и т.д.

Новый элемент OBJECT, таким образом, subsumes некоторые задачи, выполняемые существующими элементами. Рассмотрим следующую классификацию функций:

Тип включения Конкретный элемент Общий элемент
Изображение IMG OBJECT
Апплет APPLET (Нежелателен.) OBJECT
Другой документ HTML IFRAME OBJECT

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

Для включения изображений авторы могут использовать элемент OBJECT или элемент IMG.

Для включения апплетов авторам следует использовать элемент OBJECT, поскольку использование элемента APPLETнежелательно.

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

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

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

13.2 Включение изображения: элемент IMG

<!-Во избежание проблем с текстовыми агентами пользователей, 
   а также для того, чтобы включение изображений было понятно
   пользователям невизуальных агентов и могло использоваться ими, 
   Вы должны указывать описания в элементе ALT и избегать использования 
   Серверных навигационных карт-->
<!ELEMENT IMG - O EMPTY                -- Внедренное изображение -->
<!ATTLIST IMG
  %attrs;                              -- %coreattrs, %i18n, %events --
  src         %URI;          #REQUIRED -- URI внедряемого изображения --
  alt         %Text;         #REQUIRED -- краткое описание --
  longdesc    %URI;          #IMPLIED  -- ссылка на длинное описание 
                                          (дополняет alt) --
  height      %Length;       #IMPLIED  -- переопределение высоты --
  width       %Length;       #IMPLIED  -- переопределение ширины --
  usemap      %URI;          #IMPLIED  -- использовать клиентскую 
                                          навигационную карту --
  ismap       (ismap)        #IMPLIED  -- использовать серверную 
                                          навигационную карту --
  >

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

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

src = uri [CT]
Этот атрибут задает местоположение изображения. Примерами широко распознаваемых форматов являются GIF, JPEG и PNG.
longdesc = uri[CT]
Этот атрибут определяет ссылку на длинное описание изображения. Это описание должно дополнять краткое описание, задаваемое атрибутом alt. Если с изображением связана навигационная карта, в этом атрибуте должна приводиться информация о ее содержимом. Это особенно важно для серверных навигационных карт.

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

Элемент IMG внедряет изображение в текущий документ по адресу из определения элемента. Элемент IMG не имеет содержимого; обычно он замещается изображением, назначаемым атрибутом src, исключение при этом составляют выровненные влево или вправо изображения, которые "floated" out of line.

В приведенном ранее примере мы определили ссылку на семейную фотографию. Здесь мы вставим фотографию непосредственно в текущий документ:

<BODY>
<P>Я только что вернулся из отпуска! Вот фотография моей семьи на озере:
<IMG src="http://www.somecompany.com/People/Ian/vacation/family.png"
     alt="Фотография моей семьи на озере.">
</BODY>

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

<BODY>
<P>Я только что вернулся из отпуска! Вот фотография моей семьи на озере:
<OBJECT data="http://www.somecompany.com/People/Ian/vacation/family.png"
        type="image/png">
Фотография моей семьи на озере.
</OBJECT>
</BODY>

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

В следующем примере показано, как можно использовать атрибут longdesc для ссылки на более подробное описание:

<BODY>
<P>
<IMG src="sitemap.gif"
     alt="Карта узла лабораторий HP"
     longdesc="sitemap.html">
</BODY>

Атрибут alt задает краткое описание изображения. Его должно быть достаточно для того, чтобы пользователи могли решить, хотят ли они следовать по ссылке, определяемой атрибутом longdesc для более получения подробного описания, здесь это ссылка "sitemap.html".

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

13.3 Общее включение: элемент OBJECT

<!ELEMENT OBJECT - - (PARAM | %flow;)*
 -- общий внедренный объект -->
<!ATTLIST OBJECT
  %attrs;                              -- %coreattrs, %i18n, %events --
  declare     (declare)      #IMPLIED  -- объявить, но не instantiate флаг --
  classid     %URI;          #IMPLIED  -- определяет применение --
  codebase    %URI;          #IMPLIED  -- базовый URI для classid, data, archive--
  data        %URI;          #IMPLIED  -- ссылка на данные объекта --
  type        %ContentType;  #IMPLIED  -- тип содержимого для данных --
  codetype    %ContentType;  #IMPLIED  -- тип содержимого для кода --
  archive     %URI;          #IMPLIED  -- разделенный пробелами список архивов --
  standby     %Text;         #IMPLIED  -- сообщение, отображаемое при загрузке --
  height      %Length;       #IMPLIED  -- переопределение высоты --
  width       %Length;       #IMPLIED  -- переопределение ширины --
  usemap      %URI;          #IMPLIED  -- использовать клиентскую навигационную карту --
  name        CDATA          #IMPLIED  -- представить в качестве части формы --
  tabindex    NUMBER         #IMPLIED  -- положение в последовательности перехода --
  >

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

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

classid = uri [CT]
Этот атрибут может использоваться для указания местоположения объекта с помощью URI. Он может использоваться вместе с атрибутом data или как альтернатива ему, в зависимости от типа объекта.
codebase = uri [CT]
Этот атрибут определяет базовый путь, используемый для разрешения относительных адресов URI, задаваемых в атрибутах classid, data и archive. Если этот атрибут отсутствует, значением по умолчанию является базовый адрес URI текущего документа.
codetype = content-type [CI]
Этот атрибут определяет тип содержимого данных, получения которых следует ожидать при загрузке объекта, задаваемого атрибутом classid. Этот атрибут не является обязательным, но рекомендуется, если используется атрибут classid, поскольку он позволяет агенту пользователя избежать загрузки информации для типа содержимого, который он не поддерживает. Если этот атрибут отсутствует, по умолчанию используется значение атрибута type.
data = uri [CT]
Этот атрибут может использоваться для указания местоположения данных объекта, например, данных изображения для объектов, определяющих изображения, или в более общем случае - serialized формы объекта, который может использоваться для повторного его создания. Если дается относительный адрес URI, он должен интерпретироваться относительно атрибута codebase.
type = content-type [CI]
Этот атрибут определяет тип содержимого для данных, задаваемых атрибутом data. Этот атрибут не является обязательным, но рекомендуется, если используется атрибут