Ось простий документ з використанням фреймів:
це може привести приблизно до наступної структурі екрану:
Якщо агент користувача не може представляти фрейми або налаштований так, щоб не робити цього, він повинен генерувати вміст елемента NOFRAMES.
16.2 Розташування фреймів
Документ HTML, в якому описується компоновка фреймів (званий документом з фреймами), виглядає не так, як документ HTML без фреймів. Атндартний документ має один розділ HEAD і один розділ BODY. Документ з фреймами має розділ HEAD і розділ FRAMESET. який замінює розділ BODY.
У розділі FRAMESET задається розташування фреймів в основному вікні агента користувача. Крім того, в розділі FRAMESET може бути присутнім елемент NOFRAMES з альтернативним вмістом для агентів користувачів, які не підтримують фрейми або сконфигурированних так, щоб їх не показувати.
Елементи, зазвичай поміщаються в розділ BODY. не повинні бути присутніми до першого елемента FRAMESET. інакше елемент FRAMESET буде ігноруватися.
16.2.1 Елемент FRAMESET
Визначення атрибутів rows = multi-length-list [CN] Цей атрибут визначає розташування горизонтальних фреймів. Це розділений комами список пікселів, відсотків і відносних довжин. За замовчуванням використовується 100%, що означать один рядок. cols = = multi-length-list [CN] Цей атрибут визначає розташування вертикальних фреймів. Це розділений комами список пікселів, відсотків і відносних довжин. За замовчуванням використовується 100%, що означать один стовпець.
Елемент FRAMESET визначає макет основного вікна користувача у вигляді прямокутних просторів.
Рядки і стовпці
Установка атрибута rows визначає число горизонтальних відрізків простору в наборі фреймів. Устанвока атрибута cols визначає число вертикальних відрізків. Для створення сітки можна встановити обидва атрибута одночасно.
Якщо атрибут rows не встановлено, кожен стовпець займає всю довжину сторінки. Якщо атрибут cols не встановлено, кожен рядок займає всю ширину сторінки. Якщо не встановлено жодного з етітх атрибутів, фрейм займає всю сторінку.
Фрейми створюються в напрямку зліва направо для стовпців і зверху вниз для рядків. Якщо вказані обидва атрибути, розділи вікон створюються зліва направо у верхньому рядку, зліва направо у другому рядку і т.д.
У першому прикладі екран поділяється горизонтально на дві частини (тобто створюються верхня і нижня частини).
У наступному прикладі створюється три стовпці: другий має фіксовану ширину 250 пікселів (це корисно, наприклад, для представлення зображення відомої ширини). Перший фрейм отримує 25% решти простору, а третій - 75%.
У наступному прикладі створюється сітка 2x3.
Для такого прикладу припустимо, що вікно браузера має висоту строго тисячі пікселів. Перший розділ отримує 30% загальної висоти (300 пікселів). Другий має висоту рівно 400 пікселів. Залишається 300 пікселів на два інші фрейми. Для четвертого фрейма задана висота "2 *", так що він повинен бути вдвічі вище третього, для якого задані висота "*" (еквівалентно 1 *). Таким Оразов, третій фрейм буде мати висоту 100 пікселів, а четвертий - 200.
Абсолютні довжини, якщо вони не дають в сумі 100% реально доступного простору, повинні коректуватися агентом користувача. Якщо вказана довжина менше фактичної, що залишився простір повинен рівномірно розподілятися між усіма розділами. Якщо вказана довжина, що перевищує фактичну, кожен розділ повинен зменшуватися в залежності від того, яку частину простору він займає.
Число рівнів вкладеності фреймів не обмежена.
У наступному прикладі зовнішній елемент FRAMESET розділяє обсяг пам'яті, доступний на три рівних стовпці. Внутрішній елемент FRAMESET розділяє другу область на два рядки нерівної висоти.
У наступному прикладі показано звернення скрипта до елементу OBJECT. визначеним для всього набору фреймів:
16.2.2 Елемент FRAME
Елемент FRAME визначає вміст і вигляд одного фрейма.
Атрибут src визначає вихідний документ, що міститься в фреймі.
У наступному прикладі документа HTML:
повинна створюватися приблизно наступна сторінка:
а агент користувача повинен завантажувати кожен файл в окремий розділ.
Вміст фрейму і його визначення не повинні знаходитися в одному документі.
ПРИКЛАД неприпустимість використання:
Наступне визначення фреймів не є допустимим в HTML, оскільки вміст другого фрейму знаходиться в документі, що описує набір фреймів.
Візуальне уявлення фрейму
У наступному прикладі показано використання декоративних атрибутів FRAME. Фрейм 1 не повинен містити смуг прокрутки. У фреймі 2 навколо вмісту (зображення) залишиться порожній простір, і розмір фрейму не можна буде змінювати. Між фреймами 3 і 4 НЕ буде межі. Межі (за замовчуванням) будуть присутні між фреймами 1, 2 і 3.
Примітка. Про те, як зараз прийнято визначати мету фрейму, Ви можете дізнатися у зауваженнях про фрейми в додатку.
Визначення атрибутів target = frame-target [CI] Задає ім'я фрейма, в якому повинен відкриватися документ.
Інформацію про рспознаваемих іменах фреймів Ви можете знайти в розділі про іменах цільових фреймів.
Цей приклад демонструє, як цілі забезпечують динамічна зміна вмісту фрейма. Спочатку визначимо набір фреймів в показаному тут документі frameset.html.
Потім у файлі init_dynamic.html ми будемо посилатися на фрейм з ім'ям "dynamic".
Активізація будь-який з посилань призведе до відкриття нового документа в кадрі, де ім'ям "dynamic", в той час як в іншому фреймі, "fixed", зберігається початковий вміст.
Примітка. Визначення набору фреймів ніколи не змінюється, але вміст одного з фреймів може змінюватися. При зміні вихідного вмісту одного з фреймів визначення набору фреймів більш не відображає поточного стану фреймів.
Набори фреймів можуть ускладнювати перехід вперед або назад по списку просомтренних в агента користувача сторінок.
Повернемося до попереднього прикладу і визначимо інформацію про мету в елементі BASE і видалимо її з елементів A.
Агенти користувачів повинні визначати цільової фрейм, в який повинен завантажуватися пов'язаний ресурс відповідно до таких пріоритетів (від вищого до нижчого):- Якщо в елементі встановлено атрибут target і використовується відомий фрейм, при активізації елемента (тобто натисканні на посилання або обробці форми) призначається елементом ресурс повинен завантажуватися в зазначеному цільовому фреймі.
- Якщо для елемента не встановлено атрибут target. а в елементі BASE він встановлений, фрейм визначається атрибутом target елементу BASE.
- Якщо ні в самому елементі, ні в елементі BASE мета не вказана, призначений елементом ресурс повинен завантажуватися у фрейм, в якому міститься сам елемент.
- Якщо в атрибуті target вказано невідомий фрейм F. агент користувача повинен створити нове вікно і фрейм, призначити кадру ім'я F і завантажити який призначається елементом ресурс в новий фрейм.
Агенти користувачів можуть забезпечувати для користувачів механізм перевизначення атрибута target.
16.4.1 Елемент NOFRAMES
Елемент NOFRAMES можна використовувати в розділі FRAMESET документа з фреймами.
16.5 Вбудовані фрейми: елемент IFRAME
Вбудована Інфомрация призначається атрибутом src цього елемента. Вміст елемента IFRAME. з іншого боку, має відображатися лише агентами користувачів, які не підтримують фрейми або сконфігурованими так, щоб не підтримувати їх.
Для підтримують фрейми агентів користувачів в наступному прикладі в текст буде поміщений відокремлений кордоном вбудований фрейм.
Змінювати розмір вбудованих фреймів не можна (і тому у них немає атрибута noresize).
Примітка. Документи HTML можуть також впроваджуватися в інші документи HTML за допомогою елемента OBJECT. Детальніше див. У розділі про впроваджені документах.