Смекни!
smekni.com

Создание HTML-таблиц. Фреймы и формы (стр. 3 из 5)

<FRAMESET cols= «1*, 250,3*»>…продолжение определения…</FRAMESET>

В следующем примере создается сетка 2x3.

<FRAMESETrows= «30%, 70%» cols= «33%, 34%, 33%»>…продолжение определения…</FRAMESET>

Для следующего примера предположим, что окно браузера имеет высоту строго 1000 пикселей. Первый раздел получает 30% общей высоты (300 пикселей). Второй имеет высоту ровно 400 пикселей. Остается 300 пикселей на два другие фрейма. Для четвертого фрейма задана высота «2*», так что он должен быть вдвое выше третьего, для которого заданы высота «*» (эквивалентно 1*). Таким образом, третий фрейм будет иметь высоту 100 пикселей, а четвертый – 200.

<FRAMESET rows= «30%, 400,*, 2*»>…продолжение определения…</FRAMESET>

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

2.3 Вложенные наборы фреймов

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

<FRAMESET cols= «33%, 33%, 34%»>…содержимое первого фрейма…<FRAMESET rows= «40%, 50%»>…содержимое второго фрейма, первая строка……содержимое второго фрейма, вторая строка…</FRAMESET>…содержимое третьего фрейма…</FRAMESET>

ЭлементFRAME

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

name = cdata

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

longdesc = uri

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

src = uri

Определяет местонахождение начального содержимого фрейма.

noresize

Если этот атрибут присутствует, он сообщает агенту пользователя, что размеры фрейма изменять нельзя.

scrolling = auto|yes|no

Этот атрибут задает информацию о прокрутке фрейма. Возможные значения

· auto: При необходимости предоставлять возможности прокрутки. Это значение используется по умолчанию.

· yes: Всегда предоставлять возможности прокрутки.

· no: Не предоставлять возможности прокрутки.

frameborder = 1|0

Этот атрибут предоставляет агенту пользователя информацию о границе фрейма. Возможные значения:

· 1: Агент пользователя должен изобразить разделитель между этим фреймам и всеми прилежащими фреймами. Это значение используется по умолчанию.

· 0: Агент пользователя не должен отображать разделитель. Обратите внимание, что разделители могут все равно отображаться, если они заданы в других фреймах.

marginwidth = пикселы

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

marginheight = пикселы

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

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

· title ()

· target ()

Элемент FRAME определяет содержимое и вид одного фрейма.

Атрибут src определяет исходный документ, содержащийся в фрейме.

В следующем примере документа HTML:

<! DOCTYPE HTML PUBLIC «- //W3C //DTD HTML 4.0 Frameset //EN»«_THE_LATEST_VERSION_/frameset.dtd»><HTML><HEAD> <TITLE>Документсфреймами</TITLE> </HEAD><FRAMESET cols= «33%, 33%, 33%»><FRAMESET rows= "*, 200»><FRAME src= «contents_of_frame1.html»><FRAME src= «contents_of_frame2.gif»></FRAMESET><FRAME src= «contents_of_frame3.html»><FRAME src= «contents_of_frame4.html»></FRAMESET></HTML>

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

2.4 Определение цели фрейма

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

target = frame-target

Задает имя фрейма, в котором должен открываться документ.

Назначая фрейму имя с помощью атрибута name, авторы могут ссылаться на него как на «target» для ссылок, определяемый другими элементами. Атрибут target может устанавливаться для элементов, создающих ссылки (A, LINK), навигационных карт (AREA) и форм (FORM).

Информацию о распознаваемых именах фреймов Вы можете найти в разделе о.

В этом примере показано, как цели обеспечивают динамическое изменение содержимого фрейма. Сначала определим набор фреймов в показанном здесь документе frameset.html:

<! DOCTYPE HTML PUBLIC «- //W3C //DTD HTML 4.0 Frameset //EN»«_THE_LATEST_VERSION_/frameset.dtd»><HTML><HEAD><TITLE>Документсфреймами</TITLE></HEAD><FRAMESET rows= «50%, 50%»><FRAME name= «fixed» src= «init_fixed.html»><FRAME name= «dynamic» src= «init_dynamic.html»></FRAMESET></HTML>

Затемвфайлеinit_dynamic.htmlмыбудемссылатьсянафреймсименем«dynamic».

<! DOCTYPE HTML PUBLIC «- //W3C //DTD HTML 4.0 Frameset //EN»«_THE_LATEST_VERSION_/frameset.dtd»><HTML><HEAD><TITLE>Документ с якорями с определенными целями</TITLE></HEAD><BODY>…начало документа…<P>Теперь можно перейти к<A href= «slide2.html» target= «dynamic»>слайду 2.</A>…продолжение документа…<P>Все отлично. Переходимк<A href= «slide3.html» target= «dynamic»>слайду 3.</A></BODY></HTML>

Активизация любой из ссылок приведет к открытию нового документа во фрейме с именем «dynamic», в то время как в другом фрейме, «fixed», сохраняется исходное содержимое.

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

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

Если во многих ссылках в документе используется одна и та же цель, можно указать ее один раз и использовать везде с помощью атрибута target каждого элемента. Это делается с помощью установки атрибута target элемента BASE.

Вернемся к предыдущему примеру и определим информацию о цели в элементе BASE и удалим ее из элементов A.

<! DOCTYPE HTML PUBLIC «- //W3C //DTD HTML 4.0 Frameset //EN»«_THE_LATEST_VERSION_/frameset.dtd»><HTML><HEAD><TITLE>Документ с определением цели в элементе BASE</TITLE><BASE href= «http://www.mycom.com/Slides» target= «dynamic»></HEAD><BODY>…начало документа…<P>Теперь Вы можете перейти к <A href= «slide2.html»>слайду 2.</A>…продолжение документа…<P>Все отлично. Переходимк<A href= «slide3.html»>слайду 3.</A></BODY></HTML>

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

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

2. Если для элемента не установлен атрибут target, а в элементе BASE он установлен, фрейм определяется атрибутом target элемента BASE.

3. Если ни в самом элементе, ни в элементе BASE цель не указана, назначенный элементом ресурс должен загружаться во фрейм, в котором содержится сам элемент.

4. Если в атрибуте target указан неизвестный фрейм F, агент пользователя должен создать новое окно и фрейм, назначить фрейму имя F и загрузить назначаемый элементом ресурс в новый фрейм.

Агенты пользователей могут обеспечивать для пользователей механизм переопределения атрибута target.

2.5 Альтернативное содержимое

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

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

Элемент NOFRAMES можно использовать в разделе FRAMESET документа с фреймами. Например:

<NOFRAMES><P> Это <Ahref= «main-noframes.html»> Версия документа без фреймов. </A></NOFRAMES>

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

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

<! DOCTYPE HTML PUBLIC «- //W3C //DTD HTML 4.0 Frameset //EN»«_THE_LATEST_VERSION_»><HTML><HEAD><TITLE>Плохо составленный документ с фреймами</TITLE></HEAD><FRAMESET cols= «20%, 80%»><FRAME src= «table_of_contents.html»><FRAME src= «ostrich.gif» longdesc= «ostrich-desc.html»></FRAMESET></HTML>

Обратите внимание, что изображение включено в фрейм независимо от любого элемента HTML, так что у автора нет другой возможности указать альтернативный текст, кроме атрибута longdesc. Если содержимое правого фрейма изменится (например, пользователь выберет в содержании змею), у пользователя не будет текстового доступа к новому содержимому фрейма.

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