5.1. Создание фреймов. HTML, XHTML и CSS на 100%
5.1. Создание фреймов
Чтобы HTML-страница содержала фреймы, а экран был разделен на области, необходимо заменить пару тегов <BODY>..</BODY> в коде HTML-страницы парой тегов <FRAMESET>…</FRAMESET>. Необходимо также указать хотя бы один из атрибутов cols или rows. С помощью этих атрибутов задают размеры фреймов и количество строк и столбцов в разбиении страницы. Атрибут cols определяет количество строк, а атрибут rows – количество столбцов. Области, полученные в результате разбиения, и будут являться фреймами. Отсутствие этих атрибутов определяет один фрейм величиной во все окно браузера. В значении атрибутов необходимо указывать не количество строк или столбцов, а значение ширины каждого фрейма через запятую, если рассматривать атрибут cols (например, cols = «13,31,34»). Атрибут rows определяет высоту каждого фрейма соответственно. Размеры фреймов могут задаваться как в абсолютных, так и в относительных величинах.
• Простое числовое значение определяет фиксированную высоту или ширину фрейма в пикселах (например, cols = «20, 100, 20» rows = «30, 100»). Это далеко не самый лучший способ описания размеров фрейма, поскольку различные браузеры имеют различный размер рабочего поля, не говоря уже о различных экранных разрешениях у пользователя. Если вы все же используете данный способ описания размера, то настоятельно рекомендуется сочетать его с каким-либо другим, чтобы в результате вы точно получили стопроцентное заполнение окна браузера пользователя.
• Значение величины фрейма, заданное в процентах от 1 до 100 (например, cols = «20 %, 50 %, 3 0 %» rows = «30 %, 70 %»). Если общая сумма процентов, описывающих фрейм, превышает 100, то размеры всех фреймов пропорционально уменьшаются до суммы 100 %. Если, соответственно, сумма меньше 100, то размеры пропорционально увеличиваются.
• В значении указывается число со звездочкой (например, 5*). Однако числовое значение в данном описании является необязательным. Символ * указывает на то, что все оставшееся место будет принадлежать данному фрейму. Если указывается два или более фрейма с описанием * (например, cols = «*, *, *»), то оставшееся пространство делится поровну между этими фреймами. Если перед звездочкой стоит цифра, то она указывает пропорцию для данного фрейма (во сколько раз он будет больше аналогично описанного просто звездочкой). Например, описание rows = «2*,*,*» говорит, что будет создано три фрейма с размерами 2/3 свободного пространства для первого фрейма и по 1/3 для двух других.
Чтобы в каждой из областей отображалась информация, необходимо использовать элемент FRAME, обязательный атрибут src которого укажет адрес документа, отображаемого внутри фрейма. Если адрес отсутствует, то будет отображен пустой фрейм. Рассмотрим создание фреймов на примере, описанном в листинге 5.1.
Листинг 5.1. Пример создания фреймов
<html>
<head>
<title>Эта страница содержит 4 фрейма</title>
</head>
<frameset cols=»45%,*»rows=»30%,*»>
<frame src=frame1.HTML>
<frame src=frame2.HTML>
<frame src=frame3.HTML>
<frame src=frame4.HTML>
</frameset>
</html>
На рис. 5.1 изображено, как будет отображаться HTML-документ, описанный в листинге 5.1. Страница содержит четыре области соответствующих пропорций, в каждую из которых первоначально загружаются HTML-документы Frame 1. html, Frame2.html, Frame3.html и Frame4.html.
Рис. 5.1. Пример страницы, содержащей четыре фрейма
Помимо HTML-документов, фрейм может содержать и изображение. Для этого необходимо указать адрес соответствующей картинки в атрибуте src, например src=»pic. gif». Обратите внимание, что элемент FRAME используется без закрывающего тега.
Данный текст является ознакомительным фрагментом.
Продолжение на ЛитРесСоздание фреймов.
Элемент frame
Этот элемент описывает отдельную оконную область. В нее можно загрузить любой документ — с помощью атрибута src. Примеры:
Атрибут scrolling — прокрутка (по умолчанию auto). Если документ превышает размеры области просмотра этого фрейма, значит появляется прокрутка. Если документ помещается полностью во врейм, значит прокрутки нет. Прокрутку можно запрещать, но лучше оставить значение auto.
Одиночный атрибут noresize — запрещает изменять размер фрейма в браузере. По умолчанию это разрешено.
Атрибут frameborder – рамка у фрейма. Значение ‘1’ — рисовать, значение ‘0’ — не рисовать. Допустимы только эти два значения. По умолчанию рамка рисуется.
Атрибут marginwidth – указывает расстояние, которое контент в данной фрейме будет отступать по горизонтали от рамок этого фрейма.
Атрибут marginheight – отступ по вертикали от контента до границ фрейма.
Встроенный фрейм iframe
Элемент iframe (‘строчное окно’). Этот элемент парный (есть отрывающий и закрывающий тег). Этот элемент служит для того же — чтобы в документе организовать оконный элемент.
В чем его отличие от старых фреймов? Он самодостаточен, ему не надо никаких дополнительных контейнеров. И он может стоять в любых документах, так где есть элемент body.
Элемент iframe — это строчный элемент с замещаемым контентом. Т.е. формируется область строчного типа с любыми абстрактными размерами, и в эту область загружается содержание какого-то внешнего документа (файл html).
Iframe обладает такими же атрибутами, что и картинки (т.к. они одного типа): name, width, height, src, frameborder, scrolling, hspace, vspace, marginwidth, marginheight.
Вертикальное расположение фреймов
Как сделать колонку фреймов из трех различных документов.
Горизонтальное расположение фреймов
Как сделать строку фреймов из трех различных документов.
(Вы найдете больше примеров внизу этой страницы).
HTML Фреймы
С помощью фреймов вы можете показать более одного HTML документа в том же окне браузера. Каждый HTML документ называется фреймом, и каждый фрейм является независимым от остальных.
Недостатки в использовании фреймов:
- Фреймы могут перестать поддерживаться в будущих версиях HTML
- Фреймы сложно использовать. (Печать старницы целиком затруднительна).
- Веб разработчик должен следить за большим количеством HTML документов.
HTML Элемент frameset
Элемент frameset содержит один или более элементов frame. Каждый элемент frame может содержать отдельный документ.
Элемент frameset указывает СКОЛЬКО столбцов или строк будет в наборе фреймов, и СКОЛЬКО процентов/пикселей пространства будет занимать каждый фрейм.
HTML Элемент frame
Тег определяет одно отдельное окно (фрейм) внутри набора фреймов (frameset).
В пример ниже мы имеем набор фреймов с двумя столбцами.
Первый столбец занимает 25% ширины окна браузера. Второй столбец занимает 75% ширины окна браузера. Документ «frame_a.htm» помещен в первый столбце, и документ «frame_b.htm» помещен во второй столбец:
Замечание:
Размер столбца в наборе фреймов может также быть указан в пикселях
(cols=»200,500″), и один из столбцов может использовать оставшееся пространство,
для чего надо указать вместо ширины звездочку
(cols=»25%,*»).
Совет: Если фрейм имеет видимые границы, пользователь может изменить его размер перетаскиванием границы. Чтобы запретить изменение размера фрейма таким способом, вы можете добавить noresize=»noresize» в тег .
Замечание: Добавьте тег для браузеров, которые не поддерживают фреймы.
Важно: Вы не можете использовать теги
вместе с тегами ! Однако, если вы добавите тег содержащий некоторый текст для браузеров, которые не поддерживают фреймы, вы заключаете этот текст в теги ! Смотрите как это делается в первом примере ниже.Использование тега
Как использовать тег (для браузеров,
которые не поддерживают фреймы).
Вложенные наборы фреймов
Как создать вложенные наборы фреймов.
Набор фреймов с атрибутом
noresize=»noresize»
Как использовать атрибут noresize.
Переместите мышь на границу между фреймами и убедитесь,
что не можете ее перетащить.
Фрейм навигации
Как сделать фрейм навигации.
Этот фрейм содержит список ссылок со вторым
фреймом в качестве назначения, где будут открываться эти ссылки.
Файл «tryhtml_contents.htm» содержит три ссылки.
Исходный код ссылок:
Frame a
Frame b
Frame c
Второй фрейм показывает залинкованный документ.
Переход к определенному разделу внутри фрейма
Два фрейма. Один из фреймов имеет ссылку на определенный раздел в файле.
Этот раздел помечается как
в файле «link.htm».
Фреймы — это HTML-элементы, позволяющие разделить окно веб-браузера на несколько независимых окон, в каждое из которых можно загрузить отдельный HTML-документ. Каждое такое окно (фрейм) может иметь собственные полосы прокрутки и функционировать независимо от других независимых окон либо наоборот управлять их содержанием. Они могут применяться для организации постоянно находящегося в одном окне меню, в то время как в другом окне располагается непосредственно сама информация. Пользователи могут обращаться к меню в любой момент, и им не нужно возвращаться к предыдущей странице, чтобы выбрать другой пункт меню. Применение фреймов позволит вам «закрепить» в окне браузера изображения или другие неподвижные по замыслу элементы интерфейса, в то время как остальная часть страницы будет прокручиваться во фрейме.
Несмотря на то, что проекты с фреймами встречаются во всемирной паутине все реже, изучение HTML было бы неполным без рассмотрения темы о фреймах. У фреймов наряду с недостатками есть и некоторые достоинства, которые не позволяют отбросить эту технологию как бесперспективную.
Создание фреймов
Структура HTML-документа с фреймами внешне очень напоминает формат обычного HTML-документа. Как и в обычном HTML-документе, весь код помещен между парными тегами
и
, а в контейнере
располагаются заголовки. Основное отличие документа с фреймами от обычного HTML-документа — у документа с фреймами вместо тега
применяется парный тег
(от англ. frame set – набор фреймов).
В следующем примере приведена структура HTML-документа с фреймами:
Пример: Структура HTML-документа с фреймами
- Попробуй сам »
frame_top | |
frame_left | frame_right |
Документ с фреймами
В приведенном примере страница содержит три области, в каждую из которых первоначально загружаются HTML-документы frame_top.html, frame_left.html и frame_right.html. Помимо HTML-документов, фрейм может содержать и графику. Для этого необходимо указать адрес соответствующего изображения в атрибуте src
, например src=»image.gif»
. Обратите внимание, что элемент
используется без закрывающего тега.
Внутри контейнера
могут содержаться только теги
или другой набор фреймов, охваченный тегами
и
.
Тег
имеет следующие атрибуты:
- rows — описывает разбиение страницы на строки:
- cols — описывает разбиение страницы на столбцы:
В значении атрибутов rows и cols необходимо указывать не количество строк или столбцов, а значение ширины и высоты фреймов. Все значения в списке разделяются запятыми. Размеры могут быть указаны в абсолютных единицах (в пикселах) или в процентах:
- cols=»20%, 80%» — окно браузера разбивается на две колонки с помощью атрибута cols , левая колонка занимает 20%, а правая 80% окна браузера.
- rows=»100, *» окно браузера разбивается на два горизонтальных окна с помощью атрибута rows , верхнее окно занимает 100 пикселов, а нижнее — оставшееся пространство, заданное символом звездочки.
Как видно из данного примера, контейнер
с атрибутом rows
вначале создает два горизонтальных фрейма, а вместо второго фрейма подставляется еще один
, который разбивает нижний горизонтальный фрейм на две колонки с помощью атрибута cols
, левая колонка занимает занимает 20%, а правая 80% окна браузера.
Если браузер не поддерживает фреймы, то в окне будет отображен текст, расположенный между тегами
и
Как уже отмечалось, для вставки в документ отдельного фрейма служит непарный тег . Атрибут src задает документ, который должен отображаться внутри данного фрейма, например: . Если атрибут src отсутствует, отображается пустой фрейм.
Границы или пространство между фреймами
По умолчанию, браузер отображает серую и, как правило, в виде трехмерной линии границу между фреймами, с помощью которой посетители могут регулировать размер фрейма.
Границей фрейма можно управлять, как и любыми другими элементами фрейма. Для этого существует несколько атрибутов элемента
, позволяющих настраивать границы фреймов. Толщина линии границы определяется атрибутом border
. По умолчанию значение толщины границы равно пяти.
Чтобы скрыть границу фрейма, необходимо либо указать значение ширины границы равным нулю, либо присвоить значение «no» или «0» атрибуту frameborder
. Атрибут frameborder
может принимать только два противоположных значения. Если значение атрибута frameborder
равно «yes» или «1», то граница фреймов будет отображаться, а если «0» или «no», то нет. Учтите, что значения атрибута frameborder
различаются для разных браузеров. Чтобы решить эту проблему используйте дважды атрибут frameborder
, а для некоторых браузеров требуется еще добавить атрибут framespacing
со значением «0»:
В следующем примере убираем границу между фреймами:
Пример: Убираем границу между фреймами
- Попробуй сам »
Фреймы без границ
Если вы удалите границу между фреймами, посетители не смогут изменять размер фрейма в браузере. Вы можете также не допустить изменения размера фрейма, сохранив границы, используя атрибут noresize :
С помощью атрибута bordercolor
можно изменить цвет границы фрейма, необходимо только указать код или соответствующее зарезервированное имя цвета.
Ниже приведен пример html-страницы, которая содержит описанные выше атрибуты управления границей фрейма: цвет границы — красный, изменять размер верхнего фрейма нельзя:
Пример: Управление границей фреймов
- Попробуй сам »
frame_top | |
frame_left | frame_right |
Управление границей фреймов
Если вы хотите расположить страницу, отображаемую внутри фрейма, ближе к его границам, или, наоборот, отодвинуть дальше, измените атрибуты marginheight и marginwidth тэга . Атрибут marginheight определяет отступ между содержимым фрейма и его верхней и нижней границами. Синтаксис:
Атрибут marginwidth определяет отступ между содержимым фрейма и его правой и левой границами. Синтаксис:
Данная строка html, например, располагает отображаемую страницу вплотную к границе фрейма:
Если страница отображает нежелательную для вас полосу прокрутки, вы можете решить эту проблему, указав атрибут scrolling =»no» в тэге . Но учтите, что если фрейм будет недостаточно большим, чтобы отобразить все содержимое страницы, то у посетителя не будет никакой возможности прокрутить отображаемую страницу.
Ссылки внутри фреймов
Переход по ссылке в обычном HTML-документе осуществляется следующим образом: нажимаете ссылку и текущий документ заменяется новым в текущем либо в новом окне браузера. При использовании фреймов схема загрузки html-документов отличается от обычной и главное отличие — это возможность загружать html-документ в один фрейм из другого фрейма.
Для загрузки документа в определенный фрейм используется атрибут target
тега
. В качестве значения атрибута target
используется имя фрейма, в который будет загружаться документ, указанный атрибутом name
тега
. Стоит также отметить, что имя фрейма должно начинаться либо с цифры либо с латинской буквы. Следующие имена используются в качестве зарезервированных:
Для внешних ссылок следует задавать в качестве значения для атрибута target либо _top , либо _blank , для того, чтобы сторонние проекты отображались не в ваших фреймах, а занимали полное окно браузера.
В следующем примере изображен HTML-документ, в правый фрейм которого загружается страница по ссылке, помещенной в верхний фрейм. Ссылка на документ, который откроется в правом фрейме:
Правому фрейму присваивается имя frame_right :
Чтобы документ загружался в указанный фрейм, используется конструкция target=»frame_right» , как показано в примере:
Пример: Ссылка на другой фрейм
- Попробуй сам »
Ссылка на другой фрейм
Ваш браузер не отображает фреймы
Плавающие фреймы
Элемент (сокращение английского термина «плавающий фрейм») позволяет встроить в любое место веб-страницы отдельный HTML-документ или другой ресурс. Содержимым плавающего (встроенного) фрейма может быть любая НТМL-страница, как с вашего ресурса, так и с другого веб-сайта. Как вы уже поняли, плавающие фреймы создаются с помощью элемента , который в отличие от тега вставляется не между тегами и
, а между тегами и .В элементе можно использовать те же атрибуты, что и для фрейма , за исключением атрибута noresize — в отличие от обычных фреймов, для встроенных фреймов возможность изменения размеров на экране не предусмотрена:
Атрибут | Описание |
---|---|
src | используется для указания URL-aдpeca страницы, отображаемой во фрейме |
height | устанавливает высоту окна плавающего фрейма в пикселах или % |
width | устанавливает ширину окна плавающего фрейма в пикселах или % |
name | имя фрейма, по которому к нему можно будет обращаться в ссылках |
frameborder | задает обрамление у фреймов, может принимать значения 1 (есть обрамление) или 0 (нет об-рамления) (В HTML5 не поддерживается ) |
marginwidth | отступ слева и справа от содержания до границы фрейма (В HTML5 не поддерживается ) |
marginheight | отступ сверху и снизу от содержания до границы фрейма (В HTML5 не поддерживается ) |
scrolling | определяет вид полос прокрутки у фрейма и принимает значения yes (есть полосы), no (нет полос) и auto (полосы появляются при необходимости) (В HTML5 не поддерживается ) |
allowfullscreen | разрешает для фрейма полноэкранный режим |
hspace | Горизонтальный отступ от фрейма до окружающего контента |
vspace | вертикальный отступ от фрейма до окружающего контента |
align | определяет выравнивание фрейма |
В следующем примере размеры плавающего фрейма заданы в пикселях, однако вы можете задавать их и в %:
07.12.2015
Пока нет
Всем привет!
Продолжаем усердное изучение основ HTML. Я рад, что вы не бросаете уроки .
В этом уроке мы разберем, что такое фреймы
и как они создаются в HTML.
Итак, давайте определимся, что такое фреймы в HTML.
Фреймы
– это разделение окна браузера на отдельные области, в которых могут загружаться отдельные HTML документы.
Я думаю, вы поняли, что благодаря фреймам, вы можете просмотреть сразу несколько веб страниц в одном окне браузера.
Для примера, чтобы понять, как работает фрейм на практике, предлагаю посмотреть пример. Сделайте там пару переходов:
Ну, как вам? Хотите научиться такое создавать? Сейчас мы научимся вставлять фреймы в html-документ .
Создание фрейма на веб странице осуществляется по такому макету:
ФреймыВнимание: макет фрейм-кода вставляется в html-документ вместо тега :
○ тег frameset
Это главный контейнер для создания фрейма, внутри которого содержатся другие элементы.
Закрывающий тег обязательный.
*Атрибуты тега frameset:
- Cols — вертикальные
- Rows — горизонтальные
rows — горизонтально
cols — вертикально
В атрибутах cols и rows указывается, на сколько частей делить окно браузера. Вот, например, чтобы разделить окно браузера на две вертикальные части, нужно прописать вот так:
Левая часть экрана будет размером 30%, а правая – 70%.
Если хотите разделить браузер еще на несколько частей, допишите через запятую дополнительные размеры, вот, например, так:
В итоге первая вертикальная колонка будет шириной 30%, вторая — 20%, третья — 10%, четвертая — 40%.
Разобрались?
Так же и с горизонтальной разбивкой:
Первая горизонтальная колонка будет шириной 30%, вторая — 20%, третья — 10%, четвертая — 40%.
○ тег frame
Тег frame указывает, какой html-документ должен быть загружен в окно браузера.
Вот, например, нам нужно загрузить в одном окне браузера три разных страницы «1.html
», «2.html
», «3.html
». Тег frame будет выглядеть вот так:
Подытожим знания по фреймам. Итак, задача: нужно разделить окно браузера на две части и загрузить в эти части две веб страницы – «1.html
» на 30%
, «2.html
» на 70%
.
Вот готовый код:
Результат будет таким:
* Атрибуты тега frame
- src – адрес веб страницы. src=»1.html» ;
- marginwidth – отступ внутри фрейма по ширине. Пример: marginwidth=»10″ ;
- marginhight – отступ внутри фрейма по высоте. Пример: marginhight =»10″ ;
- scrolling
– прокрутка фрейма через скролл.
— yes – скролл будет присутствовать во фрейме. Пример: scrolling =»yes» ;
— no – скролл не будет присутствовать во фрейме. Пример: scrolling =»no» ;
— auto – скролл будет присутствовать во фрейме при необходимости. Пример: scrolling =»auto» ; - noresize – запрещает двигать границы фрейма.
- name – имя фрейма. Указывает, в каком окне нужно открывать другие фреймы. Пример: name =»сайт» ;
Если фрейму не прописать имя в атрибуте «name», то при нажатии по ссылке откроется новый фрейм в том окне, где была ссылка:
А вот пример, если прописать атрибут «name»:
Правда, так лучше?
Для любого фрейма пропишите атрибут «name»
там, где вы хотите, чтобы открывались в нем другие html-документы
Имя в атрибуте «name» может быть любое. Но в дальнейшем, если вы будете давать имена и остальным тегам «frame» , то помните, что каждое должно быть уникальным:
страница 2 страница 3
«Страница 1 », «Страница 2 » будут открываться в одном окне там, где вы указали имя фрейму «name =»сайт » » и «Страница 3 » откроется в другом фрейме, где было название «name =»bloggood-ru » »
ПРАКТИКА
Задание: Нужно создать фреймы вот по такому макету:
Вначале создадим три горизонтальных фрейма:
Теперь добавим «top.html» и «footer.html»
Результат пока что будет вот таким:
Теперь между «top.html» и «footer.html» добавим «menu.html» и «content.html» :
Готовый код:
ФреймыСохраните файл, как «index.html»
Создайте странички «top.html » , «footer.html» , «menu.html» и «content.html» :
Код файла «top.html»
шапка сайтаКод файла «footer.html»
Файл footer.html StepkinBlog.com © 2015Код файла «menu.html»
Файл menu.html – меню сайта- Главная страница
- Об авторе
Код файла «content.html» :
Главная страница Содержимое сайта — «Главная страница (content.html)»Код файла «autor.html» :
Вот такой результат у меня вышел:
Воспользуемся атрибутами «frame» и запретим вручную растягивание фреймов и уберем скролл в файле «index.html» .
○ что делать если фреймы не поддерживаются браузером?
Можно вывести сообщение пользователю, что его браузер не поддерживает фреймы. Для этого вставьте тег
вовнутрь конструкции
:
○ Плавающий фрейм
Если вам нужно вставить фреймовое окно прямо в страницу, в которой нет фреймовой структуры, для этого существует тег «iframe»
* атрибуты тега «iframe»
- src — путь к открываемой странице
- width — ширина плавающего фрейма
- height — высота плавающего фрейма
- scrolling
— полоса прокрутки
— no — никогда не показывать полосу прокрутки
— yes — всегда показывать
— auto — показывать при необходимости - align
— выравнивание плавающего фрейма
— left – слева
— right – справа
— top – выше
— bottom – ниже - frameborder
— рамка вокруг плавающего фрейма
— 1 — включить рамку
— 0 — выключить рамку
Вот так будет выглядеть тег «iframe» с атрибутами:
Если браузер не поддерживает фреймы, можно вставить текст «УПС! Ваш браузер не поддерживает фреймы.
» между тегами
.
Это будет выглядеть вот так:
Для примера давайте добавим к файлу «content.html» плавающий фрейм:
Главная страница Содержимое сайта — «Главная страница (content.! Ваш браузер не поддерживает фреймы.Предыдущая запись
Следующая запись
Использование фреймов данных—Справка | ArcGIS for Desktop
Фрейм данных включает набор слоев, отображающихся в установленном порядке в данном экстенте карты и в заданной проекции. Таблица содержания слева от окна карты показывает список слоев, содержащихся во фрейме данных.
Каждый слой во фрейме данных используется для показа информации из набора данных (например, класса пространственных объектов или растрового файла). Порядок слоев в таблице содержания определяет их порядок прорисовки на карте.
Вы работаете с пространственными объектами, растрами и слоями в линейных единицах измерения фрейма данных (метры, футы и т.п.). Когда вы создаете карту, она содержит фрейм данных по умолчанию; в таблице содержания он носит имя Слои (Layers), но вы можете переименовать его по своему желанию.
В виде данных, окно отображения – это фрейм данных. Оно показывает слои активного фрейма данных, расположенные в последовательности, указанной в таблице содержания снизу вверх.
Подсказка:
Вы можете скрыть линейки прокрутки в виде данных и виде компоновки, щелкнув Вид (View) > Линейки прокрутки (Scroll Bars). Для каждого вида эта настройка устанавливается отдельно, и чтобы скрыть линейки прокрутки в обоих видах, вам необходимо изменить настройки для обоих видах.
Работа с дополнительными фреймами данных
В большинстве случаев одного фрейма данных достаточно, но вы всегда можете добавить еще, щелкнув в главном меню Вставка (Insert) > Фрейм данных (Data Frame). Вы можете удалить фрейм данных, щелкнув на нем правой кнопкой мыши в таблице содержания и выбрав Удалить (Remove).
Примечание:
Карта должна содержать, по крайней мере, один фрейм данных. Вы не можете удалить последний фрейм данных на карте.
При добавлении нового фрейма данных в ArcMap он появляется в таблице содержания и отображается как активный фрейм данных.Активный фрейм данных
Если в вашем документе карты используется несколько фреймов данных, один из них является активным, именно с ним вы и работаете. Активный фрейм данных показывается в таблице содержания жирным шрифтом. Чтобы сделать фрейм данных активным, щелкните на его имени правой кнопкой мыши в таблице содержания и выберите Активизировать (Activate).
Перемещение слоев между фреймами данных
Если вы работаете с несколькими фреймами данных и добавляете новые слои на карту, они вставляются в активный фрейм. Вы можете переместить слои из одного фрейма в другой, выбрав и перетащив их мышкой.
Навигация в фрейме данных и работа с его слоями
На панели Инструменты (Tools) представлены основные средства для работы с географической информацией, отображаемой во фрейме данных. В наборе есть инструменты для работы с содержанием активного фрейма данных. Например, можно уменьшать и увеличивать вашу карту, идентифицировать пространственные объекты и измерять расстояния.
Инструменты на панели инструментов Инструменты (Tools)
Кнопка | Имя (Name) | Функция |
---|---|---|
Увеличить (Zoom In) | Позволяет увеличить изображение по щелчку мыши или по рамке. | |
Уменьшить | Позволяет уменьшить изображение по щелчку мыши или по рамке. | |
Переместиться (Pan) | Перемещение по фрейму данных. | |
Полный Экстент (Full Extent) | Переход к полному экстенту всей карты. | |
Постоянное приближение (Fixed Zoom In) | Позволяет увеличить изображение относительно центра фрейма данных. | |
Фиксированное уменьшение | Позволяет уменьшить изображение относительно центра фрейма данных. | |
Назад | Позволяет перейти к предыдущему экстенту карты. | |
Вперед (Forward) | Позволяет перейти к следующему экстенту карты. | |
Выбрать объекты | Позволяет выбирать объекты по щелчку мыши или по рамке. Кроме того, имеются инструменты, позволяющие выбрать объекты путем создания графического элемента: Выбрать полигоном (Select By Polygon), Выбрать лассо (Lasso), Выбрать окружностью (Circle), Выбрать линией (Line). | |
Очистить выбранные объекты | Снимает выделение со всех объектов в активном фрейме данных. | |
Выбрать элементы (Select Elements) | Позволяет выбирать, менять размер и перемещать тексты, графику и прочие объекты, размещенные на карте. | |
«Идентифицировать (Identify)» | Идентификация географических объектов по щелчку. | |
Гиперссылка (Hyperlink) | Переход от пространственного объекта по гиперссылке. | |
Всплывающее HTML-окно (HTML Popup) | Запускает HTML-страницы, всплывающие от пространственных объектов. | |
Измерить | Измеряет расстояние и площади на карте. | |
Найти (Find) | Поиск пространственных объектов на карте. | |
Найти маршрут | Вычисление маршрутов от точки к точке и создание маршрутного листа. | |
Перейти к точке XY (Go To XY Location) | Позволяет ввести значение координат X, Y и перейти к этой точке. | |
Открыть окно Бегунок времени (Open Time Slider Window) | Открывает окно Бегунка времени для работы с временными слоями и таблицами. | |
Создать окно просмотра (Create Viewer Window) | Позволяет создать новое окно просмотра на основании очерченного прямоугольника. |
Кроме того, если щелкнуть правой кнопкой мыши внутри фрейма данных, будет показано контекстное меню инструментов навигации по карте.
При щелчке правой кнопкой мыши внутри фрейма данных откроется это контекстное меню.Интерактивное непрерывное масштабирование/перемещение с использованием слоя базовой карты
Вы можете активировать непрерывное масштабирование/перемещение, способствующее повышению производительности, особенно при работе с базовой картой.
Улучшение производительности при отображении
Вы можете использовать несколько вариантов для улучшения производительности при отображении фреймов данных. Вот некоторые из них:
- Анализ (Analyze) карты в отношении скорости отображения.
- Применение слоев базовой карты, позволяющих произвести отображение слоя один раз и использовать его на протяжении всего сеанса ArcMap.
- Применение аппаратного ускорения для слоев базовой карты и ускоренных слоев растра, что может повысить скорость интерактивного отображения.
Свойства фрейма данных
Каждый фрейм данных является своего рода окном для отображения географической информации. У фреймов данных есть свойства. которые определяют содержание для отображения и работы с данными, которые они содержат. Для просмотра и настройки свойств фрейма данных воспользуйтесь следующей инструкцией:
- Щелкните правой кнопкой мыши на имени фрейма данных в таблице содержания (или на самом фрейме в компоновке).
- Щелкните Свойства (Properties), затем просмотрите различные закладки и задайте нужные свойства фрейма данных. На каждой закладке этого диалогового окна приведены различные свойства.
Система координат является одним из главных параметров, поскольку она определяет проекцию карты во фрейме данных. Обычно система координат вашего фрейма данных определяется системой координат первого добавленного на карту набора данных. Все другие дополнительные наборы данных будут проецироваться в эту систему координат «на лету». Вы можете просмотреть и настроить систему координат фрейма данных на закладке Системы координат (Coordinate System) в диалоговом окне Свойства фрейма данных (Data Frame Properties).
Кроме того, в этом окне содержатся и другие свойства фрейма данных, Среди них добавление различных градусных сеток; настройка полного экстента окна карты, связанного с кнопкой Полный экстент (Full Extent); создание и управление кэшем объектов для увеличения производительности при работе по сети; настройка свойств внешнего вида, таких как положение фрейма данных на странице, тип рамки и цвет фона.
В разделе Работа с фреймами данных на компоновке страницы приведена подробная информация о работе с закладками диалогового окна Свойства фрейма данных (Data Frame Properties).
Настройка масштаба карты в отображении фрейма данных
Вы можете задать определенный масштаб, в котором карта будет отображаться во фрейме, при помощи ниспадающего списка Масштаб карты (Map Scale) в главном меню. Введите нужное значение или выберите его из ниспадающего списка.
В разделе Работа с масштабами карт приведена дополнительная информация о работе с масштабами в ArcMap.
Навигация по карте с помощью закладок
С помощью закладок вы можете указать некоторые области на карте, чтобы к ним было удобно перемещаться. Если при работе в ArcMap вы перешли к некоторому экстенту, который хотели бы сохранить, вы можете добавить его в виде закладки.
Дополнительная информация приведена в разделе Использование пространственных закладок.
Работа с инструментами фрейма данных
Панель инструментов Инструменты фрейма данных (Data Frame Tools) используется для некоторых специальных операций с фреймами данных. Вы можете открыть ее, щелкнув в главном меню Настройка (Customize) > Панели инструментов (Toolbars) > Инструменты фрейма данных (Data Frame Tools).
С помощью этих инструментов вы можете повернуть все содержание карты в фрейме данных, а также воспользоваться списком Избранное (My Places) для навигации. Дополнительная информация о том, как перемещаться по карте при помощи названий мест, приведена в разделе Работа с окном Избранное (My Places).
Типичные задачи при работе с фреймом данных
Ниже перечислены наиболее типичные операции и ссылки на разделы, в которых содержится более полная информация об их выполнении:
Связанные темы
Отзыв по этому разделу?Создание фреймов. В этом уроке вы узнаете, как создавать фреймы, почему некоторые разработчики Web-страниц их не любят и как их применять эффективно.
1 Урок 10 Создание фреймов В этом уроке вы узнаете, как создавать фреймы, почему некоторые разработчики Web-страниц их не любят и как их применять эффективно. Простые фреймы В HTML фреймы обеспечивают возможность одновременного отображения сразу нескольких HTML-документов. В окне Webбраузера каждый фрейм отображает свой собственный документ HTML. Эти документы могут быть связаны между собой с помощью гиперссылок или оставаться совершенно независимыми. Фрейм Самодостаточный документ HTML, отображаемый в окне Web-браузера внутри или рядом с другими HTML-документами. Чаще всего фреймы применяются в целях создания навигационных панелей для Web-сайтов (рис. 10.1). Вообще говоря, навигационная панель может располагаться в произвольной позиции относительно основного документа, однако, как правило, ее помещают вдоль верхнего или левого края окна, поскольку в английском (наиболее часто применяемом при создании Web-страниц) или русском языке текст ориентирован слева направо и сверху вниз. Чтобы получить в свое распоряжение фрейм, необходимо создать HTML-документ нового типа так называемый фреймсет. Фреймсетом называется документ HTML специального типа, который определяет количество воспроизводимых фреймов и указывает, какие HTML-документы должны отображаться внутри каждого фрейма. Пример фреймсета показан на рис
2 122 Урок 10 Рис В окне Web-браузера отображается простой двухфреймовый документ. Левый фрейм содержит навигационную панель данного Web-сайта, а в правом отображаются страницы, на которые ссылаются пункты навигационной панели <!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Frameset//EN» » <html xmlns=» xml:lang=»ru» lang=»ru»> <head> <title> </title> <style type=»text/css»> </style> </head> <frameset cols=»20%,*»> <frame src=»toc.htm» name=»left» /> <frame src=»latin.htm» name=»main» /> <noframes> <body> <p><a href=»toc.htm»> </a></p> </body> </noframes> </frameset> </html>
3 Создание фреймов 123 Вы обратили внимание на изменение тега <!DOCTYPE>? В уроке 2 уже упоминалось о том, что этот XHTML-тег имеет три разновидности. Создавая Web-страницы, состоящие из фреймов, всегда применяйте разновидность Frameset тега <!DOCTYPE>. Если сравнить этот документ с обычным HTML-документом, сразу же бросится в глаза отсутствие тега <body>. Вместо него в документе разновидности Frameset появляется тег <frameset>, который содержит в себе теги <frame />, применяемые для описания каждого фрейма, а также тег <noframes>. Последний содержит инструкции, применяемые в том случае, если Webбраузер не поддерживает возможность работы с фреймами. В частности, внутри этого тега опять применяется тег <body>. Все это выглядит немного запутанно? Что ж, рассмотрим каждый из перечисленных тегов подробнее. <frameset> В теге <frameset> определяется ориентация фрейма: атрибуту cols соответствуют вертикальные столбцы, тогда как атрибуту rows горизонтальные строки. Эти атрибуты позволяют также определить размеры фрейма. Например, если страницы состоит из трех вертикальных фреймов, атрибуту cols необходимо присвоить три значения. Взгляните еще раз на тег <frameset> в приведенном выше HTML-коде. Он выглядит так: <frameset cols=»20%,*»> Этот тег определяет два вертикальных столбца. Ширина первого столбца составляет 20% от ширины экрана; второй столбец занимает всю остальную часть экрана, т.е. 80% его ширины. Таким образом, как вы уже догадались, значению * соответствует часть экрана, остающаяся после выделения пространства для предыдущего фрейма. Этот же прием можно использовать и при определении более чем двух фреймов. Однако в следующем примере, хотя для атрибута rows указывается только два значения, в действительности определяются сразу
4 124 Урок 10 три горизонтальных строки. Первая занимает 20% экрана, а две другие делят оставшуюся часть экрана пополам. <frameset rows=»20%,*»> Кроме того, вам не обязательно доверять браузеру определение размеров отдельных фреймов. Если хотите, можете самостоятельно провести вычисления и точно указать размер каждого фрейма. Помните лишь о том, что сумма всех значений не может превышать 100%. <frame /> Размеры фреймов можно указывать в пикселях или в процентах, как, например, в теге <frameset rows=»50%,50%»> Однако знак % использовать не обязательно его можно заменить символом прямой косой черты (/): <frameset rows=»50/,50/»> Подобно тегу <img />, с которым вы познакомились в уроке 8, для тега <frame /> предусмотрен атрибут src, сообщающий браузеру место расположения документа, подлежащего воспроизведению. Создавая состоящий из фреймов документ, важно помнить о том, что требуется определить лишь стартовую страницу Web-сайта. Другими словами, вам не нужно беспокоиться обо всех возможных комбинациях страниц, которые могут отобразиться на экране пользователя. Для тега <frame /> необходимо задать также значения атрибутов name и id. В большинстве случаев фреймам присваивают имена, указывающие на их расположение в окне браузера. Так, в приведенном далее примере один тег <frame /> описывает фрейм, отображаемый вдоль левого края экрана (ему присвоено имя left), тогда как второй тег описывает фрейм, в котором представлена основная страница Web-сайта (ему присвоено имя main основной). <frame src=»toc.htm» name=»left» /> <frame src=»latin.htm» name=»main» />
5 Создание фреймов 125 Фреймам можно присваивать любые понравившиеся вам имена, однако все же старайтесь использовать имена, по которым позднее вы сможете однозначно их идентифицировать. Далее перечислены еще несколько атрибутов тега <frame />, которые могут оказаться для вас полезными. frameborder позволяет удалить тонкую полосу, разделяющую соседние фреймы (рис. 10.2). Рис Это та же страница, которая была показана на рис. 10.1, однако в данном случае атрибуту frameborder присвоено нулевое значение marginwidth и marginheight позволяют указать (в пикселях) расстояние между границами фрейма и расположенным в нем текстом. scrolling используя значения yes, no и auto, вы можете сообщить браузеру, следует ли отображать для фрейма полосу прокрутки. Однако не стоит беспоко-
6 126 Урок 10 иться по этому поводу даже в случае применения записи scrolling=»no» браузер все равно отобразит полосу прокрутки, если содержание фрейма целиком не помещается на экране. noresize как и в случае с любыми другими окнами, размеры фрейма можно изменять, перетаскивая его границу (даже если сама граница при этом не отображается, поскольку атрибуту frameborder присвоено нулевое значение). Однако вы можете отключить данную возможность, воспользовавшись атрибутом noresize. <noframes> Тег <noframes>, примененный в предыдущем примере, позволяет дать инструкции браузеру на тот случай, если он не поддерживает возможности отображения фреймов или если посетитель Web-страницы самостоятельно отключил в настройках своего браузера данную возможность. <noframes> <body> <p><a href=»toc.htm»> </a></p> </body> </noframes> Тег <noframes> не является обязательным, и многие разработчики Web-страниц его игнорируют, однако добавление этого тега не требует каких-либо значительных усилий и гарантирует воспроизведение страницы в окнах всех браузеров. В то время как многие создатели Web-страниц не пользуются возможностью применения тега <noframes>, ничуть не меньше Web-дизайнеров все же тратят время и усилия на создание полноценных версий своих исходных Web-сайтов, но уже без использования фреймов. Однако в этом нет особой необходимости достаточно просто воспользоваться тегом <noframes>. Если фреймы применяются как средство создания навигационной панели, можно внести всего пару незначительных изменений в коды Web-страницы, чтобы обеспечить возможность навигации по Web-сайту для тех посетителей, браузеры которых не поддерживают работу с фреймами. В примере на рис показан тот же Web-сайт, что и на рис. 10.1, однако теперь вдоль верхнего его края добавлена простая одностроч-
7 Создание фреймов 127 ная таблица со ссылками, дублирующими элементы навигационной панели. Теперь посетители Web-сайта, браузеры которых не отобразят расположенный слева фрейм с навигационными элементами, также смогут переходить от одной страницы к другой, щелкая на добавленных ссылках. Рис Добавление навигационных ссылок вдоль верхнего края начальной страницы позволит посетителям, чьи браузеры не поддерживают возможности отображения фреймов, осуществлять навигацию в пределах данного Web-сайта Вложенные фреймы В HTML компоновку фреймов можно выполнять и более сложным способом. Существует возможность многократного применения тега <frameset> в пределах одного документа, что позволяет вкладывать фреймы друг в друга. Соответствующий пример представлен ниже. <!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Frameset//EN» » <html xmlns=»
8 128 Урок 10 xml:lang=»ru» lang=»ru»> <head> <title> </title> <style type=»text/css»> </style> </head> <frameset rows=»15%,*,10%»> <frame src=»sitename.htm» name=»top» /> <frameset cols=»20%,*,11%»> <frame src=»toc.htm» name=»left» /> <frame src=»latin.htm» name=»main» /> <frame src=»motto.htm» name=»right» /> </frameset> <frame src=»contacts.htm» name=»bottom» /> <noframes> <body> <p><a href=»toc.htm»> </a></p> </body> </noframes> </frameset> </html> Первый фрейм <frameset> определяет три горизонтальных фрейма, в то время как второй фрейм разделяет второй горизонтальный фрейм на три вертикальных столбца. На рис показано, как данная страница выглядит в окне Web-браузера. Рис Отображение границ между фреймами оставлено в демонстрационных целях
9 <iframe> Создание фреймов 129 Существует еще один способ создания фреймов с использованием тега <iframe>. Получаемые с помощью данного тега фреймы называются внутритекстовыми. Вместо того чтобы создавать отдельный документ разновидности Frameset, вы можете определить внутритекстовый фрейм внутри обычного HTMLдокумента. В примере на рис показан Web-сайт с тем же содержанием, что и сайт на рис. 10.4, однако в данном случае был применен внутритекстовый фрейм. Коды формирующего этот сайт HTML-документа представлены на рис Для фрейма <iframe> предусмотрены те же атрибуты, что и для фрейма <frame />, за исключением атрибута noresize в отличие от обычных фреймов, для внутритекстовых фреймов возможность изменения размеров на экране не предусмотрена. Рис Расположенный в центре Web-страницы и снабженный полосой прокрутки документ был добавлен с помощью внутритекстового фрейма
10 130 Урок 10 Рис Цвета и шрифты данной Web-страницы были заданы с использованием свойств стилевых таблиц. Для получения требуемой компоновки страницы тег <iframe> был вставлен в ячейку обычной таблицы Возможность обработки фреймов <iframe> поддерживают только браузеры Internet Explorer версии 4 или выше, поэтому не применяйте их, если некоторые потенциальные посетители вашей Web-страницы попрежнему используют браузеры более ранних версий. На страницах этой книги не редко встречаются предупреждающие сообщения о том, что не все Web-браузеры поддерживают возможность обработки тех или иных HTML-тегов. Более полные сведения о функциональности различных браузеров, а также другую полезную статистическую информацию вы можете найти на Web-сайте StatMarket компании WebSideStory по адресу html.
11 Связывание фреймов Создание фреймов 131 В уроке 4 уже рассматривалось создание гиперссылок. Как вы помните, тег <a name=»x»> применяется для обозначения якоря или закладки) внутри документа, на который может указывать ссылка. <a name=» «> <a/> Далее внутри тега <a href=»url# «> следует набрать текст, который будет визуально выделен на экране и использоваться как гиперссылка на указанную закладку. <a href=»doc2.htm# «>, <a/> Для всех фреймов также задаются значения атрибутов name и id. Далее эти имена можно использовать для обозначения фрейма, где должен открываться документ, на который указывает гиперссылка. Ниже представлены HTML-коды файла toc.htm, используемого в предыдущих примерах. <!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Frameset//EN» » <html xmlns=» xml:lang=»ru» lang=»ru»> <head> <title> </title> <style type=»text/css»> </style> </head> <body> <p><a href=»homepage.htm» target=»main»>home</a></p> <p><a href=»page1.htm» target=»main»>page 1</a></p> <p><a href=»page2.htm» target=»main»>page 2</a></p> <p><a href=»page3.htm» target=»main»>page 3</a></p> <p><a href=»page4.htm» target=»main»>page 4</a></p> </body> </html> Как видите, в данном случае для тега <a href> задается значение нового атрибута: target. Этот атрибут позволяет определить целевой фрейм для гиперссылки. Помимо имен самих фреймов, которые определяются в документе разновидности Frameset, данному атрибуту можно назначать также три других значения.
12 132 Урок 10 <a href=»url» target=»blank»>. Этот тег открывает документ, на который указывает гиперссылка, в новом окне браузера. <a href=»url» target=»self»>. Этот тег открывает документ, на который указывает гиперссылка, в том же окне, где расположена сама гиперссылка. Если гиперссылка располагается внутри фрейма, открываемый документ заменяет собой содержание данного фрейма. <a href=»url» target=»top»>. Этот тег также открывает документ, на который указывает гиперссылка, в том же окне, где расположена сама гиперссылка. Если гиперссылка располагается внутри фрейма, открываемый документ заменяет собой весь HTMLдокумент разновидности Frameset. Целевой фрейм Фрейм, в котором открывается документ, на который указывает гиперссылка. Работая с фреймами, всегда указывайте значения атрибута target. Если имя целевого фрейма не задано, браузер, как правило, заменяет содержимое текущего фрейма открываемым с помощью гиперссылки документом, что не всегда оказывается тем результатом, на который вы рассчитывали. Две основные проблемы в использовании фреймов Если в разговоре с Web-дизайнерами завести речь о фреймах, можно услышать множество диаметрально противоположных мнений. Вы уже знаете, каким удобным инструментом могут быть фреймы при добавлении навигационных элементов. Теперь пришло время посмотреть, почему многим разработчикам Webстраниц идея применения фреймов не нравится.
13 Так много страниц и так мало URL-адресов Создание фреймов 133 Если в окне Web-браузера открыт состоящий из многих фреймов документ, щелкая на гиперссылках, вы даете указание браузеру открывать новые страницы в пределах все того же документа. А теперь взгляните на URL-адрес данного документа. В моем случае это C:\Webshare\wwwroot\sams\ frame2.htm. Сколько бы раз я не щелкал на гиперссылках, имеющихся в этом документе, URL-адрес будет оставаться тем же, поскольку все новые страницы будут загружаться и воспроизводиться внутри фреймов данного документа. Почему это является проблемой? Предположим, посетитель моего Web-сайта нашел интересующую его информацию на странице Page4.htm. Он решил сохранить ее URL-адрес в папке, чтобы позднее ему не пришлось повторно искать те же сведения. Однако сохраненным окажется адрес C:\Webshare\wwwroot\sams\frame2.htm, а не C:\Webshare\ wwwroot\sams\page4.htm, который ему действительно необходим. Таким образом, нет никакой гарантии, что, выбрав сохраненный URL-адрес, он сразу увидит в окне Web-браузера интересующую его страницу Page4.htm. Какая досада! Можно, правда, щелкнуть в пределах страницы правой кнопкой мыши (или удерживать некоторое время кнопку мыши нажатой на компьютере Macintosh), после чего выбрать в открывшемся контекстном меню команду. В открывшемся вслед за этим диалоговом окне (рис. 10.7) будет указан URL-адрес данной конкретной страницы. Вы можете выделить этот адрес и скопировать его в поле Web-браузера, чтобы позднее открыть данную страницу. Однако, поступив таким образом, вы не увидите полноценную версию Web-сайта, состоящую из совокупности фреймов, доступен будет лишь отдельный документ, без каких-либо навигационных элементов.
14 134 Урок 10 Печать Рис В диалоговом окне указан фактический URL-адрес отображаемой внутри фрейма страницы. Выделив этот адрес, вы можете скопировать его, воспользовавшись соответствующей командой контекстного меню Еще одна серьезная проблема, связанная с использованием фреймов, возникает при попытке вывода отдельных документов на печать. Хотя в современном мире электронные средства коммуникации и хранения информации вытесняют элементы бумажного делопроизводства, люди все еще не избавились от привычки распечатывать любые попадающиеся им под руку документы. Обычно, когда посетители Webстраницы видят в окне своего браузера информацию, которую хотели бы распечатать, они просто щелкают на кнопке. И браузеры старых версий при этом выводят на печать лишь содержание активного в данный момент фрейма. Активный фрейм Фрейм, в пределах которого был произведен последний щелчок кнопкой мыши. Вернемся к предыдущему примеру с Web-сайтом из нескольких фреймов. Если щелкнуть на ссылке в левом фрейме,
15 Создание фреймов 135 чтобы открыть нужную страницу внутри основного фрейма, и затем щелкнуть на кнопке (не выполняя никаких других щелчков кнопкой мыши), распечатана будет не открытая в основном фрейме страница, а расположенная в фрейме слева навигационная панель. К сожалению, браузер не может сам догадаться, содержание какого именно фрейма хочет распечатать пользователь; ему известно лишь то, какой фрейм в данный момент является активным. Браузеры новых версий предоставляют пользователям, желающим распечатать отдельные документы, дополнительную возможность в их диалоговых окнах появилась группа опций. Представленные в этой группе переключатели позволяют определить, следует ли выводить на печать содержание активного в данный момент фрейма, отображаемых на экране фреймов или каждого фрейма данного Web-сайта в отдельности (рис. 10.8). Это существенное усовершенствование, однако вы не можете знать наверняка, поддерживается ли такая возможность браузером каждого посетителя вашей Web-страницы. Рис Диалоговое окно браузера Internet Explorer позволяет определить, содержание каких фреймов открытого Web-сайта должно выводиться на печать
16 136 Урок 10 Если необходимо распечатать только содержание какого-то конкретного фрейма, щелкните внутри него правой кнопкой мыши (или удерживайте кнопку мыши нажатой на компьютере Macintosh) и выберите в открывшемся контекстном меню команду. Эффективное использование фреймов Хотя применение фреймов связано с некоторыми проблемами, они обеспечивают также ряд неоспоримых преимуществ. Придерживайтесь некоторых стандартных правил, и фреймы в ваших руках станут весьма эффективным инструментом. Применяйте фреймы по назначению. Лучше всего использовать фреймы как инструмент осуществления навигации в пределах сайта, а также в случаях, когда существует необходимость одновременного отображения в окне браузера сразу двух или более документов. Не забывайте об атрибуте target. Нет ничего худшего, чем открытие документа, на который указывает гиперссылка, внутри фрейма, не предназначенного для этих целей (что, естественно, является следствием игнорирования атрибута target). Более того, иногда эти документы могут открываться в отдельных окнах Webбраузера. В общем, хаос и неразбериха в таком случае будут гарантированы. Добавляйте тег <noframes>. Не забывайте о том, что не все посетители вашей Web-страницы смогут увидеть на своих экранах фреймы, из которых она состоит (либо по причине использования браузеров старых версий, либо из-за того, что в настройках их браузеров возможность отображения фреймов отключена). Для добавления на Web-страницу альтернативного фреймам содержания воспользуйтесь тегом <noframes>.
17 Создание фреймов 137 Добавляйте внутри основного фрейма альтернативные элементы навигации в пределах сайта. Нет никакой гарантии, что посетители вашего Web-сайта будут изначально видеть его таким, как вы предполагаете. В некоторых случаях они могут сразу попадать на отдельные фреймы. Если на этих страницах будут добавлены навигационные элементы, посетители по-прежнему будут иметь возможность перемещаться в пределах сайта. Никогда не создавайте фреймов внутри других фреймов. Изначально, как только появилась возможность использования фреймов, разработчики Web-сайтов начали применять их повсюду, в том числе внутри других фреймов. Однако эти многократно вложенные фреймы оказались источником неудобства и путаницы для обычных посетителей Web-страниц. В табл представлен перечень тегов, с которыми вы познакомились в этом уроке. Таблица Теги HTML, рассмотренные в этом уроке Тег HTMLОкончаниеОписание <a href> </a> Создает гиперссылку на другие документы или ресурсы Интернета. Если документ должен отображаться внутри фрейма, всегда определяйте для данного тега атрибут target <frameset> </frameset> Применяется вместо тега <body> в состоящем из фреймов документе и включает в себя теги <frame> и <noframe>. Этот фрейм должен содержать атрибуты, задающие ориентацию и размер фреймов <frame /> Содержит имя фрейма (атрибуты name и id) и URL-адрес отображаемого в нем документа (атрибут scr). Также может содержать атрибуты, добавляющие к фрейму границу (border) и полосу прокрутки (scrolling)
18 138 Урок 10 Окончание табл Тег HTMLОкончаниеОписание <iframe> </iframe> Позволяет вставить фрейм внутри другого документа, однако этот фрейм будет отображаться только браузером Internet Explorer <noframes> </noframes>определяет альтернативную страницу для браузера, не поддерживающего возможности отображения фреймов В этом уроке вы узнали: в документе разновидности Frameset количество фреймов и их размер; стандартные HTML-документы будут отображаться внутри отдельных фреймов; для каждого фрейма в документе необходимо задать имя по нему затем будет определяться целевой фрейм, в котором должен отображаться документ, открываемый гиперссылкой; несмотря на очевидные преимущества, получаемые при использовании фреймов в качестве инструмента осуществления навигации в пределах сайта, многие разработчики Web-страниц не спешат прибегать к их помощи изза некоторых проблем, связанных с их применением.
Создание фреймов.
Фреймы — это окна независимого просмотра HTML-документов (например этот сайт с левым меню).
Иногда бывает очень удобно организовать навигацию по странице в виде меню, оформленного в отдельном фрейме, и основного окна, где будет представлена вся основная информация, определяемая действиями пользователя в области меню.
Рассмотрим следующий пример основного HTML-файла:
<HTML> —
<FRAMESET cols=»30%,70%» border=0>
<FRAME src=»menu.htm» name=»Menu»>
<FRAME src=»main.htm» name=»Main»>
</FRAMESET> </HTML>
Здесь присутствует объявление двух фреймов, которые будут располагаться вертикальными полосами и занимать соответственно 30 и 70 процентов рабочей области. Вертикальное расположение устанавливается параметром cols=»…», а для горизонтальных полос используют параметр rows=»…». Параметр border=»…» определяет границу между фреймами. Определение документа, изначально загружаемого при открытии этого файла, задается атрибутом тега <FRAME> src=»…», при этом необходимо указать параметр name=»…». Сам же документ является обыкновенной HTML-страницей.
Пример простой HTML-страницы, использующей фреймы, иллюстрирует исходный код приведенный ниже.
Пример 15: Страница с двумя горизонтальными фреймами.
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<FRAMESET rows=»30%,70%»>
<FRAME name=»1″ src=»1.html»>
<FRAME name=»2″ src=»2.html»> </FRAMESET>
</HTML>
Как видно из листинга, сама страница не содержит какого-либо текста, который присутствует в обычной Web-странице. В данном документе находятся только ссылки на другие HTML-
, которые будут загружены браузером при открытии страницы с фреймами.
Файл 1.html имеет следующую структуру:
<HTML><HEAD>
<TITLE></TITLE> </HEAD>
<BODY>
<Н1>Первый Frame.</Н1>
</BODY>
</HTML>
Файл 2.html также имеет указанную выше структуру. Следует сказать, что оба этих файла должны располагаться в том же каталоге, где расположен файл с фреймами.
Контейнеры <FRAMESET> и <BODY> являются взаимоисключающими. Это означает, что если в документе присутствуют оба указанных тега, то браузер игнорирует контейнер <FRAMESET> и отображает информацию, заключенную в контейнер <BODY>.
Для оформления вертикальных фреймов следует использовать параметр cols=»…» тега <FRAMESET>
Пример 16: Страница с двумя вертикальными фреймами.
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<FRAMESET cols=»30%,70%»>
<FRAME name=»1″ src=»1.html»> <FRAME name=»2″ src=»2.html»>
</FRAMESET>
</HTML>
Распространенное явление — комбинация вертикальных и горизонтальных фреймов. Предположим, необходимо создать вертикальную и горизонтальную панели навигации, а также основной фрейм, в который будет загружаться требуемая страница. Для этого необходимо разбить страницу на три фрейма следующим образом: допускается вложенность контейнеров <FRAMESET> друг в друга, при этом внутренний контейнер воспринимается внешним контейнером как обычный фрейм. Другими словами, вместо тега <FRAME> можно использовать контейнер <FRAMESET> для разбиения одного фрейма на несколько фреймов.
Пример 17: Комбинирование фреймов.
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<FRAMESET cols=»30%,70%»>
<FRAME name=»l» src=»1.html»> <FRAMESET rows=»50%,50%»> <FRAMESET cols=»50%,50%»> <FRAME name=»2″ src=»2.html»> <FRAME name=»3″ src=»3.html»> </FRAMESET>
<FRAME name=»4″ src=»4.html»> </FRAMESET> </FRAMESET>
</HTML>
Как и при форматировании таблиц, при создании фреймов существует возможность изменения внешнего вида фреймов. Для этого используются следующие атрибуты форматирования:
§ bordercolor — задает цвет рамки, которая разделяет отдельные фреймы;
§ frameborder — указывает браузеру, отображать ли рамку у фреймов или нет;
§ border — определяет толщину всех фреймов данного набора.
Пример 18: Форматирование фреймов.
<HTML> <HEAD>
<TITLE></TITLE> </HEAD>
<FRAMESET rows=»30%,40%,30%» bordercolor=»#AB9570″ frameborder=»yes» border=»2″>
<FRAME name=»l» src=»1.html»> <FRAMESET cols=»50%,50%» bordercolor=»#AB9570″
Јrameborder=»yes» border=»2″> <FRAME naroe=»2″ src=»2.html»> <FRAME name=»3″ src=»3.html»> </FRAMESET>
<FRAME name=»4″ src=»4.html»> </FRAMESET> <NOFRAMES>
<BODY>
Ваш браузер не поддерживает фреймы.
</BODY> </NOFRAMES>
</HTML>
Задать вопрос.
Создание фреймов
Структура фреймсодержащих документов
Фреймы — это фрагменты окна браузера, в каждый из которых может загружаться отдельный HTML-документ.
Благодаря фреймам создается возможность одновременного просмотра нескольких документов.
Посмотрим пример фреймсодержащего документа. Открыв его источник через панель инструментов браузера, мы увидим HTML-код, определяющий структуру документа:
<frameset cols=»30%,*»>
<frame name=»first» src=»ExFrame1.html»>
<frame name=»second» src=»ExFrame2.html»>
</frameset>
Здесь first и second — имена фреймов, ExFrame1.html и ExFrame2.html — имена документов, загружаемых во фреймы. Атрибут cols означает, что фреймы являются вертикальными (иначе мы использовали бы атрибут rows), согласно присвоенному нами значению: 30%,* левый фрейм будет занимать 30% ширины окна браузера, а остальная часть окна будет занята правым фреймом.
Атрибуты тэга <frame>
А
src
дрес документа, загружаемого в данный фрейм.И
name
мя фрейма (используется для обращения к фрейму из операторовJavaScript).
У
scrolling
казывает на наличие (yes) или отсутствие (no) линеек прокрутки; значение auto указывает на то, что линейки прокрутки появятся автоматически, если в этом возникнет необходимость.У
frameborder
казывает на наличие (yes) или отсутствие (no) границы между фреймами.Чтобы посмотреть код документов, загружаемых во фреймы, нужно, находясь в соответствующем фрейме, правой кнопкой мыши открыть меню, из которого выбрать «Просмотр в виде HTML» («View source»).
Нередко фреймы используют для того, чтобы в одном из них размещать некоторую постоянную часть, например, навигационное меню. При этом гиперссылки, расположенные в одном фрейме, вызывают смену документов в другом. Это достигается с помощью атрибута target тэга <a…> (англ.: target — цель, мишень), значением которого является имя фрейма, в который загружается открываемый по гиперссылке документ.
Пример 2. Создадим документ из двух горизонтальных фреймов одинакового размера. В верхний загрузим документ «osysteme.html», в нижний — «saits.html». Код документа должен выглядеть следующим образом:
<frameset rows=»50%,*»>
<frame name=»verh» src=»osysteme.html» scrolling-‘auto» frameborder=»yes»> <frame name=»nisznij» src=»saits.html» scrolling=»auto» frameborder=»yes»> </frameset>
Для создания сложных фреймсодержащих документов используются вложенные контейнеры <frameset>…</frameset> или же во фреймы загружаются документы, которые, в свою очередь, также являются фреймсодержащими.
Средствами языка JavaScript можно изменять содержимое фреймов, отменять или назначать фреймы, а также динамически («на лету») создавать документы, загружаемые во фреймы.
-
Разбор данных html-форм. Понятие cgi
Большое количество World Wide Web приложений основано на использовании внешних программ, управляемых Web сервером. Использование данных программ позволяет строить Web приложения с динамически обновляемой информацией,
хранящейся в базах данных или генерирующейся в зависимости от бизнес -правил решаемых задач. Для связи между Web сервером и вызываемыми программами широко используется Common Gateway Interface (CGI), имеющий реализации как для Windows — ориентированных программ, так и для приложений, функционирующих в среде Unix.
Windows CGI требует, чтобы Web сервер декодировал данные из HTML форм, если они переданы при помощи POST метода запроса. Он не требует от сервера декодирования параметров, если они переданы в качестве строки запроса (query string), являющейся частью URL.
Существует два способа, которыми данные из форм могут быть переданы серверу броузером:
URL-Encoded
Это наиболее используемый формат данных, передаваемых из форм. Содержимое полей формы выделяются из формы и передаются согласно спецификации HTML 4.0, а затем собираются в одну строку, где отделяются друг от друга символом амперсанда. Тип содержания сообщения устанавливается броузером в application/ x — www — form — urlencoded.
Multipart Form Data
Данный формат разработан для эффективной загрузки файлов на сервер с использованием форм. Содержимое полей формы передается как многостраничное MIME сообщение. Каждое поле содержится в одной странице. Тип содержания, устанавливается броузером в multipart/ form — data.
“Грамотные” серверы должны уметь обрабатывать оба типа данных из форм.
Вызов CGI программ
Сервер использует функцию CreateProcess() для вызова CGI программ. Сервер синхронизируется с CGI программой, поскольку он должен определить момент завершения CGI программы. Это достигается использованием функции Win32 WaitForSingleObject(), ожидающей получения сигнала завершения CGI программы.
Командная строка
Сервер должен вызывать CGI программу выполняя функцию CreateProcess() с командной строкой следующего формата:
WinCGI-exe cgi-data-file
WinCGI-exe — полный путь к исполняемой CGI программе. Сервер не зависит от “текущего каталога” или переменной окружения PATH. Примите к сведению, что “исполняемая” не обязательно означает .EXE файл. Это может быть документ, ассоциирующийся с реально исполняемой программой, описанной в WIN.INI или System Registry.
cgi-data-file — полный путь к CGI файлу данных.
Метод вызова
Сервер использует CreateProcess() для запуска процесса, не имеющего главного окна. Вызванный процесс не будет отображаться каким либо образом на мониторе сервера.
Некоторые сервера поддерживают режим отладки CGI программ и скриптов, что позволяет серверу запускать CGI программу как обычный процесс с созданием главного окна и отображением информации на мониторе сервера. Данный способ весьма удобен на стадии отладки CGI программ.
CGI файл данных
Сервер передает данные CGI программам через Windows “private profile” afqk, в формате “параметр-значение” (windows INI файл). CGI программа может прочитать данный файл и получит все данные, передаваемые ей из формы, а также автоматически генерируемые броузером данные.
CGI файл данных состоит из следующих секций:
CGI
Данная секция содержит большинство специфических CGI параметров (тип доступа, тип запроса, дополнительные заголовки, определенные в других секциях). Каждое значение представлено в виде символьной строки. Если значение является пустой строкой, значит данный параметр был опущен. Список параметров данной секции достаточно большой и рассматриваться не будет.
Accept
Данная секция содержит типы данных, посылаемых клиентом, найденные в заголовке запроса в виде
Accept: type/subtype { parameters}
Если данные параметры присутствуют (например, q=0.100), они передаются как значения параметра Accept.
Для каждого типа передаваемых данных заводится свой параметр Accept.
System
Данная секция содержит параметры, специфические для Windows реализации CGI.
Extra Headers
Данная секция содержит “дополнительные” заголовки, которые включены в запрос в виде “параметр=значение”. Сервер должен раскодировать как параметр, так и его значение прежде чем они будут помещены в файл данных CGI.
Form Literal
Если запрос от клиента пришел в виде HTTP POST из HTML формы (с типом содержимого application/x-www-form-urlencoded или multipart/form-data), то сервер раскодирует данные из формы и поместит их в секцию [Form Literal].
Для URL-кодированных данных формы, строка передаваемых параметров выглядит как “параметр=значение&параметр= значение&…”, где значения находятся в url- кодированном формате. Сервер разделяет “параметр=значение” по символу ‘&’, затем разделяет собственно “параметр” и “значение”, декодирует “значение” и помещает результат в виде “параметр=раскодированное_значение” в секцию [Form Literal].
Для многостраничных данных строка данных представляется в многостраничном MIME формате, где каждое поле представлено как отдельная часть (файл). Сервер декодирует имена и значение каждой части и размещает их в формате “параметр=значение” в секции [Form Literal].
Form External
Если размер декодированной строки превышает 254 символа или декодированная строка содержит управляющие символы, такие, как перевод строки, возврат каретки, двойные кавычки, то сервер помещает данное значение в отдельный временный файл, а в секцию [Form External] помещает строку в виде:
параметр=путь длина
где путь — это полный путь и имя временного файла, содержащего декодированное значение параметра, а длина — длина в байтах этого файла.
Form Huge
Если общая длина строки с кодированными параметрами превышает 65,535 байт, то сервер не выполняет декодирование, а оставляет данный в Content File, а в секцию [Form Huge] помещает строки в виде:
параметр=смещение длина
где смещение — это смещение от начала Content File по которому находится требуемый параметр, а длина — длина в байтах значения выбранного параметра. Вы можете использовать смещение для выполнения поиска начала значения выбранного вами параметра и использовать длину для чтения значения выбранного параметра. Не забывайте, что если параметр закодирован, то вам необходимо раскодировать его перед использованием.
Form File
Если запрос пришел в виде multipart/form-data, то он может содержать один или несколько загруженных с клиента файлов. В этом случае каждый загруженный файл размещается в специальном временном файле, а в секции [Form File] строки имеют тот же формат, что и секции [Form External].
Каждая строка параметра в этом случае выглядит так: параметр=[полный_путь_к_файлу] длина тип ссылка [имя_файла] где полный_путь_к_файлу — это путь к временному файлу, содержащему загруженный файл, длина — длина в байтах загруженного файла, тип — тип MIME загруженного файла, ссылка — способ кодировки загруженного файла и имя_файла — исходное название загруженного файла. Использование квадратных скобок обязательно, поскольку имя файла и путь могут содержать символы пробела.
Если форма содержит какие-либо элементы SELECT MULTIPLE, то будет создано несколько строк с вида “параметр=значение” с одинаковым именем “параметра”. В этом случае генерирует нормальную строку “параметр=значение” для первого встречающегося элемента, а каждый следующий представляет в виде “параметр_Х=значение”, где “X” — увеличивающийся счетчик.
CGI программа возвращает результат работы, отвечающий (явно или неявно) целям запроса. Сервер кодирует результат работы в соответствии со стандартом HTTP и использует HTTP для отправки результата клиенту. Это означает, что сервер добавляет необходимый HTTP заголовки в сообщение, формируемое CGI программой.
Результат работы CGI программы состоит из двух частей: заголовка и тела сообщения. Заголовок состоит из одной или более строк текста, отделенных от тела пустой строкой. Тело сообщения содержит данные, представленные в MIME формате, указанном в заголовке.
Сервер не изменяет тело документа, что означает, что сервер передает сформированный CGI программой ответ “как он есть”.
Типы форм, способы их создания, атрибуты.
Некоторые WWW browser позволяют пользователю, заполнив специальную форму, возвращающую полученное значение, выполнять некоторые действия на вашем WWW — сервере. Когда форма интерпретируется WEB — броузером, создается специальные экранные элементы GUI, такие, как поля ввода, checkboxes, radiobuttons, выпадающие меню, скроллируемые списки, кнопки и т.д. Когда пользователь заполняет форму и нажимает кнопку «Подтверждение» (SUBMIT — специальный тип кнопки, который задается при описании документа), информация, введенная пользователем в форму, посылается HTTP-серверу для обработки и передаче другим программам, работающим под сервером, в соответствии с CGI (Common Gateway Interface) интерфейсом.
Когда вы описываете форму, каждый элемент ввода данных имеет тэг <INPUT>. Когда пользователь помещает данные в элемент формы, информация размещается в разделе VALUE данного элемента.
Синтаксис
Все формы начинаются тэгом <FORM> и звершаются тэгом </FORM>.
<FORM METHOD=»get|post» ACTION=»URL»> Элементы_формы_и_другие_элементы_HTML </FORM>
METHOD
Метод посылки сообщения с данными из формы. В зависимости от используемого метода вы можете посылать результаты ввода данных в форму двумя путями:
GET: Информация из формы добавляется в конец URL, который был указан в описании заголовка формы. Ваша CGI-программа (CGI-скрипт) получает данные из формы в виде параметра переменной среды QUERY_STRING. Использование метода GET не рекомендуется.
POST: Данный метод передает всю информацию о форме немедленно после обращения к указанному URL. Ваша CGI-программа получает данные из формы в стандартный поток ввода. Сервер не будет пересылать вам сообщение об окончании пересылки данных в стандартный поток ввода; вместо этого используется переменная среды CONTENT_LENGTH для определения, какое количество данных вам необходимо считать из стандартного потока ввода. Данный метод рекомендуется к использованию.
ACTION описывает URL, который будет вызываться для обработки формы. Данный URL почти всегда указывает на CGI-программу, обрабатывающую данную форму.
Тэги Формы
TEXTAREA
Тэг <TEXTAREA> используется для того, чтобы позволить пользователю вводить более одной строки информации (свободный текст). Вот пример использовании тэга <TEXTAREA>:
<TEXTAREA NAME=»address» ROWS=10 COLS=50>Москва, Дмитровское шоссе, д.9Б, офис 448 </TEXTAREA>
Атрибуты, используемые внутри тэга <TEXTAREA> описывают внешний вид и имя вводимого значения. Тэг </TEXTAREA> необходим даже тогда, когда поле ввода изначально пустое. Описание атрибутов:
NAME — имя поля ввода
ROWS — высота поля ввода в символах
COLS — ширина поля ввода в символах
Если вы хотите, чтобы в поле ввода по умолчанию выдавался какой-либо текст, то необходимо вставить его внутри тэгов <TEXTAREA> и </TEXTAREA>.
INPUT
Тэг <INPUT> используется для ввода одной строки текста или одного слова. Атрибуты тэга:
CHECKED — означает, что CHECKBOX или RADIOBUTTON будет выбран.
MAXLENGTH — определяет количество символов, которое пользователи могут ввести в поле ввода. При превышении количества допустимых символов браузер реагирует на попытку ввода нового символа звуковым сигналом и не дает его ввести. Не путать с атрибутом SIZE. Если MAXLENGTH больше чем SIZE, то в поле осуществляется скроллинг. По умолчанию значение MAXLENGTH равно бесконечности.
NAME — имя поля ввода. Данное имя используется как уникальный идентификатор поля, по которому, впоследствии, вы сможете получить данные, помещенные пользователем в это поле.
SIZE — определяет визуальный размер поля ввода на экране в символах.
SRC — URL,. указывающий на картинку (используется совместно с атрибутом IMAGE).
VALUE — присваивает полю значение по умолчанию или значение, которое будет выбрано при использовании типа RADIO (для типа RADIO данный атрибут обязателен)
TYPE — определяет тип поля ввода. По умолчанию это простое поле ввода для одной строки текста. Остальные типы должны быть явно, их полный список приведен ниже:
CHECKBOX
Используется для простых логических (BOOLEAN) значений. Значение, ассоциированное с именем данного поля, которое будет передаваться в вызываемую CGI- программу, может принимать значение ON или OFF.
HIDDEN
Поля данного типа не отображаются браузером и не дают пользователю изменять присвоенные данному полю по умолчанию значение. Это поле используется для передачи в CGI-программу статической информации, как то ID пользователя, пароля или другой информации.
IMAGE
Данный тип поля ввода позволяет вам связывать графический рисунок с именем поля. При нажатии мышью на какую -либо часть рисунка будет немедленно вызвана ассоциированная форме CGI-программа. Значения, присвоенные переменной NAME будут выглядеть так — создается две новых переменных: первая имеет имя, обозначенное в поле NAME с добавлением .x в конце имени. В эту переменную будет помещена X — координата точки в пикселах (считая началом координат левый верхний угол рисунка), на которую указывал курсор мыши в момент нажатия, а переменная с именем, содержащимся в NAME и добавленным .y, будет содержать Y-координату. Все значения атрибута VALUE игнорируются. Само описание картинки осуществляется через атрибут SRC и по синтаксису совпадает с тэгом <IMG>.
PASSWORD
То же самое, что и атрибут TEXT, но вводимое пользователем значение не отображается браузером на экране.
RADIO
Данный атрибут позволяет вводить одно значение из нескольких альтернатив. Для создания набора альтернатив вам необходимо создать несколько полей ввода с атрибутом TYPE=»RADIO» с разными значениями атрибута VALUE, но с одинаковыми значениями атрибута NAME. В CGI-программу будет передано значение типа NAME=VALUE, причем VALUE примет значение атрибута VALUE того поля ввода, которое в данный момент будет выбрано (будет активным). При выборе одного из полей ввода типа RADIO все остальные поля данного типа с тем же именем (атрибут NAME) автоматически станут невыбранными на экране.
RESET
Данный тип обозначает кнопку, при нажатии которой все поля формы примут значения, описанные для них по умолчанию.
SUBMIT
Данный тип обозначает кнопку, при нажатии которой будет вызвана CGI — программа (или URL), описанная в заголовке формы. Атрибут VALUE может содержать строку, которая будет высвечена на кнопке.
TEXT
Данный тип поля ввода описывает однострочное поле ввода. Используйте атрибуты MAXLENGTH и SIZE для определения максимальной длинны вводимого значения в символах и размера отображаемого поля ввода на экране (по умолчанию принимается 20 символов).
Меню выбора в формах
Под меню выбора в формах понимают такой элемент интерфейса, как LISTBOX. Существует три типа тэгов меню выбора для форм:
Select — пользователь выбирает одно значение из фиксированного списка значений, представленных тэгами OPTION. Данный вид представляется как выпадающий LISTBOX.
Select single — то же самое, что и Select, но на экране пользователь видит одновременно три элемента выбора. умолчанию, первый элемент отображается в строке выбора. Вот пример тэга <SELECT>:
<FORM>
<SELECT NAME=group>
<OPTION> 1 <OPTION> 2 <OPTION> 3 </SELECT>
</FORM>
SELECT SINGLE
Тэг SELECT SINGLE — это то же самое, что и Select, но на экране пользователь видит одновременно несколько элементов выбора (три по умолчанию). Если их больше, то предоставляется автоматический вертикальный скроллинг. Количество одновременно отображаемых элементов определяется атрибутом SIZE. Пример:
<FORM>
<SELECT SINGLE NAME=group SIZE=4>
<OPTION> 1 <OPTION> 2 <OPTION> 3 <OPTIONS> 4 </SELECT>
</FORM>
SELECT MULTIPLE
Тэг SELECT MULTIPLE похож на тэг SELECT SINGLE, но пользователь может одновременно выбрать более чем один элемент списка. Атрибут SIZE определяет количество одновременно видимых на экране элементов, атрибут MULTIPLE — максимальное количество одновременно выбранных элементов. Пример:
<FORM>
<SELECT SINGLE NAME=group SIZE=4 MULTIPLE=2>
<OPTION> 1 <OPTION> 2 <OPTION> 3 <OPTIONS> 4 </SELECT>
</FORM>
Если выбрано одновременно несколько значений, то серверу передаются соответствующее выбранному количество параметров NAME=VALUE с одинаковыми значениями NAME, но разными VALUE.
Отправление файлов при помощи форм
Формы можно использовать для отправки не только небольших информационных сообщений в виде параметров, а также и для отправки файлов.
Внимание! Поскольку данная возможность требует поддержки получения файлов WEB — сервером, то, соответственно, необходимо, чтобы сервер поддерживал получение файлов!
Например:
<FORM ENCTYPE=»multipart/form-data» ACTION=»url» METHOD=POST> Отправить данный файл: <INPUT NAME=»userfile» TYPE=»file»>
<INPUT TYPE=»submit» VALUE-‘Отправить файл»>
</FORM>
<FORM action=»http://pandemonium.cs.nstu.ru/~gun/docs/sites.htm«
encType=»multipart/form-data» method=»post»>
Отправить данный файл: <INPUT name=»userfile» type=»file»>
<INPUT type=»submit» value=» Отправить файл»>
</FORM>
Подтверждение и посылка формы
Для метода GET
Когда нажимается кнопка submit, содержимое формы будет добавлено к URL в следующей форме:
action?name=value&name=value&name=value
(здесь «action» — URL, заданное атрибутом ACTION в тэге FORM, или URL текущего документа, если атрибут ACTION не был задан).
Нестандартные символы в примерах «name» или «value» будут опущены, при этом имеются в виду также «=» and «&». Это означает, что включения «=», которые разделяют имена и значения (names и values), и включения «&», которые разделяют пары name/value, не опускаются.
Для полей ввода текста и пароля, значением будет то, что введет пользователь. Если пользователь оставит это поле пустым, значение value также будет пустым , но в строке запроса будет присутствовать фрагмент «name=».
Для кнопок типа checkbox и radio button, значение value определяется атрибутом VALUE в том случае, когда кнопка отмечена. Неотмеченные кнопки при составлении строки запроса игнорируются целиком. Несколько кнопок типа checkbox могут иметь один атрибут NAME (и различные VALUE), если это необходимо. Кнопки типа radio button предназначены для того, чтобы вести себя по принципу «одна из всех» и должны иметь одинаковый атрибут NAME и различные атрибуты VALUE.
Для метода POST
Содержимое формы кодируется точно как для метода GET (см. выше), но вместо добавления содержимого формы к URL, заданной атрибутом формы ACTION, в качестве запроса, содержимое посылается блоком данных как часть операции POST. Если присутствует атрибут ACTION, то значение URL, которое там находится, определяет, куда послать этот блок данных. Этот метод особенно рекомендуется при посылке больших блоков данных.
Как работают группы и фреймы в Figma
Работая в Figma, вы когда-нибудь сталкивались с проблемой выбора, что использовать фрейм или группу? Оба варианта – контейнеры для размещения объектов, но каждый имеет свои уникальные свойства и случаи использования. Не всегда очевидно, как они отличаются друг от друга, поэтому, чтобы помочь вам различать их, я написал эту статью.
Группы
Как и в других инструментах дизайна, группы в Figma позволяют объединять несколько элементов вместе в один слой верхнего уровня. Границы группы определяются ее дочерними элементами, поэтому изменение размера или перемещение этих элементов приведет к автоматическому изменению границ группы. Вы можете создать группу, выбрав объекты и нажав: ⌘ + G (Mac) или Ctrl + G (Win).
Границы группы автоматически корректируются при изменении размера или расположения дочерних элементов
Создание группы не является деструктивным действием – это означает, что она не навсегда выравнивает или объединяет слои вместе. В любой момент вы можете разгруппировать элементы, нажав: ⌘ + Shift + G (Mac) или Ctrl + Shift G (Win).
Группы действительно полезны, когда вы хотите объединить похожие элементы и работать с меньшим количеством слоев. Например, у вас есть набор логотипов компаний, которые должны оставаться вместе. Создание группы – отличный способ объединить их в один более управляемый слой – кликнув по любому из элементов в вашей группе, вы выделите всю группу, и сможете манипулировать им, как единым объектом на холсте. Если вам нужно выбрать определенный дочерний элемент в группе, дважды кликните по нему.
Также внутри группы вы можете использовать такую функцию, как Smart Selections, чтобы настроить расстояние между элементами. В приведенном ниже примере вы можете увидеть автоматическую настройку границ группы для соответствия общим размерам дочерних элементов при изменении интервала.
Когда вы изменяете размер группы, ее дочерние элементы будут масштабироваться, как векторные изображения. Однако эффекты, контуры и размеры шрифта не будут масштабироваться. Если вы хотите, чтобы эти свойства также масштабировались, используйте инструмент масштабирования (K). Если вы хотите применить ограничения, чтобы определить, как будут изменяться размеры элементов, рассмотрите возможность использования фрейма. Ограничения, применяемые к элементам, всегда будут относиться к ближайшему родительскому фрейму, а не к границам группы. Подробнее об этом в разделе, посвященном фреймам!
Сравнение масштабирования групп, содержащих векторные изображения и текст, с использованием нормального поведения при изменении размера и с помощью инструмента масштабирования (K)
Фреймы
Фрейм в Figma – это то, что мы называем «артборд» в других инструментах дизайна. Мы рассматриваем фреймы, как основополагающий элемент проектов, который может выступать в качестве контейнера верхнего уровня и / или представлять области или компоненты вашего дизайна. Фреймы и возможность их вложения являются неотъемлемой частью создания динамических макетов в Figma.
Прежде чем мы углубимся в поведение и свойства фреймов, давайте быстро рассмотрим три различных способа их создания.
- Выберите инструмент «Фрейм» (F) и выберите предустановленный размер устройства на панели свойств справа. Это поместит новый фрейм на ваш холст с точными размерами любого устройства, которое вы выбрали.
- Выбрав инструмент «Фрейм», кликните и перетащите, чтобы создать новый фрейм любого размера.
- Подобно группированию, вы можете выбрать существующие элементы на холсте и поместить их во фрейм, нажав: ⌘ + Opt + G (Mac) или Ctrl + Alt + G (Win).
Если вы хотите сделать наоборот и удалить контейнер родительского фрейма, сочетание клавиш будет таким же, как и при разгруппировке: ⌘ + Shift + G (Mac) или Ctrl + Shift + G (Win). Теперь давайте углубимся в уникальные возможности и варианты использования фреймов.
Размеры фреймов
Размеры фреймов устанавливаются независимо от их дочерних элементов. Если вы перемещаете или масштабируете дочерние элементы внутри фрейма, его границы не будут автоматически корректироваться. Если вы хотите, чтобы размеры фрейма подстраивались под содержимое, вы можете нажать кнопку «Resize to Fit» на панели свойств справа.
Границы фрейма не подстраиваются автоматически под содержимое. Если вам нужно сделать это, выберите параметр «Resize to Fit» на панели свойств
Также важно отметить, что компоненты в Figma ведут себя точно так же, как и фреймы. Вы можете преобразовать фрейм в компонент, чтобы повторно использовать его в других местах, и, если вы отсоедините существующий экземпляр компонента, вы увидите, что он преобразуется во фрейм.
Изменение размера с ограничениями
При изменении размера фреймы и группы ведут себя по-разному. Как уже упоминалось ранее, размер групп будет изменяться подобно векторным изображениям. Размеры фрейма будут изменены независимо от дочерних элементов. Однако, вы можете задать ограничения, которые влияют на изменение размера этих дочерних элементов относительно их родительского фрейма. По умолчанию эти ограничения установлены на «Top» и «Left».
Настройка ограничений может быть очень полезна, когда вы хотите, чтобы элементы сохраняли размер и положение относительно фрейма, что обычно требуется при создании отзывчивых компонентов. В приведенном ниже примере показаны различия между группами, фреймами и фреймами с заданными ограничениями.
Совет: если вы хотите игнорировать ограничения при изменении размера фрейма, удерживайте клавишу ⌘ (Mac) или Ctrl (Win) при перетаскивании фрейма
Контент, выходящий за границу фрейма
Поскольку границы фрейма можно регулировать независимо от его дочерних элементов, функция «clip content» (доступная на правой панели свойств) может использоваться различными способами. Вот несколько распространенных примеров:
- Скрытие контента за пределами границ: Функция «clip content» (обрезать контент) позволяет скрыть любую часть элемента, выходящую за пределы фрейма.
- Отображение содержимого за пределами границ: Отключая функцию «clip content», вы можете включить отображение элементов, выходящих за границы ваших фреймов. Например, если вы хотите создать фрейм, содержащий цитату с кавычкой, вы можете изменить размер фрейма так, чтобы его границы были выровнены по левому краю текстового поля, оставляя кавычку за пределами фрейма. В подобных ситуациях, так гораздо проще выровнять объекты в вашем дизайне.
- Раскрытие дополнительного контента: Установив надлежащие ограничения и включив «clip content», вы сможете создавать фреймы и компоненты, которые раскрывают больше контента при расширении. Например, у вас есть выпадающее меню, которое используется в разных местах с различным количеством опций. Это дает вам простой способ показать больше пунктов меню, всего лишь изменив размер фрейма.
- Контент, выходящий за границу фрейма, в прототипе: Элементы, которые выходят за границы фрейма, можно настроить для прокрутки внутри прототипа. Например, вы используете фрейм для размещения прокручиваемой карусели. Вы можете настроить поведение выхода за границу таким образом, чтобы его можно было прокручивать при просмотре в режиме прототипа.
Сетки
Сетки макетов (Layout grids) являются уникальной функцией фреймов и могут применяться к любому фрейму или компоненту в вашем дизайне. Это действительно полезно, потому что иногда вы хотите, чтобы области вашего дизайна имели свои собственные независимые сетки. Ограничения изменения размера в Figma также могут работать в сочетании с сетками макетов. В приведенном ниже примере вы можете видеть, что на верхнем уровне есть сетка из 2 столбцов и вложенный вторичный фрейм для панели вкладок, который имеет собственную сетку из 3 столбцов. При установке ограничений, когда размер фрейма верхнего уровня изменяется, дочерние элементы изменяют размер относительно сетки макета.
Вывод
Вы можете по-разному использовать группы и фреймы (вместе или по отдельности) для достижения различных результатов.
Коротко о главном. Используйте группы, если:
- Вы хотите объединить несколько объектов в один управляемый слой
- Вы хотите сгруппировать элементы, которые будут поддерживать фиксированные отношения при масштабировании (например, логотип или символ, состоящий из нескольких фигур)
- Вы хотите, чтобы границы группы автоматически адаптировались к дочерним объектам при манипулировании с ними
Коротко о главном. Используйте фреймы, если:
- Вы хотите контролировать размер фрейма независимо от его содержимого
- Вы хотите определить поведение дочерних элементов при изменении размера
- Вы хотите, чтобы объекты были обрезаны по границам фрейма или находились вне его границ
- Вы хотите использовать вложенный скроллинг в своем прототипе (например, горизонтальная карусель или карта, которую вы можете перемещать по вертикали и горизонтали)
- Вы хотите использовать сетку макета внутри него
Подробнее об использовании фреймов и групп читайте в нашей статье.
Если вы хотите увидеть, как создавались примеры из этой статьи, нажмите здесь, чтобы добавить копию файла в Figma.
Перевод статьи Thomas Lowry
Как использовать теги в HTML-коде
Устарело в HTML5. Не использовать.
In Deprecated, HTML-теги
Раскрытие информации: Ваша поддержка помогает сайту работать! Мы зарабатываем комиссионные за некоторые услуги, которые мы рекомендуем на этой странице. Узнать больше- Элемент
- HTML-фреймы устарели в HTML5: вот как сделать их адаптивными
- Что делает
Как использовать теги в HTML-коде
? - Элемент использовался для разделения одного окна браузера на несколько независимых контекстов просмотра.Фреймы устарели и не должны использоваться современными веб-сайтами.
- Дисплей
- Блок
- Использование
- Структура
vs.
Фреймы позволяют разделить окно браузера на несколько отдельных контекстов просмотра, каждый из которых отображает независимый документ HTML. Вы, вероятно, пострадали от ряда плохо спроектированных веб-сайтов, основанных на фреймах, если вы проводили какое-то время в Интернете в начале 21-го века. Наиболее распространенным шаблоном проектирования, в котором использовались «элементы», был подход с панелью меню и отображения, при котором некоторый контент перезагружался во фрейме при нажатии на элементы меню (и все это без изменения URL-адреса на панели навигации, что делало невозможным ссылку на какой-либо конкретный элемент). Посмотреть).
Фреймы больше не поддерживаются в HTML5, но возможность поместить один документ внутри другого по-прежнему существует. Вы можете сделать это в [ ](/tags/iframe/). И важно понимать, что
— это не просто переименованная или обновленная версия .
— это «встроенный» кадр (или, как его называют некоторые, «внутренний кадр»). Это не разбивает окно браузера на отдельные контексты, а встраивает один документ в другой.
Атрибуты фрейма
Имя атрибута | Значения | Примечания |
---|---|---|
src | Определяет исходный URL для фрейма. Фреймы устарели в HTML5. | |
имя | Определяет имя фрейма. Фреймы устарели в HTML5. | |
marginwidth | Используется для управления полями фрейма. Фреймы устарели в HTML5. | |
прокрутка | Используется для управления поведением прокрутки внутри фреймов.Фреймы устарели в HTML5. | |
noresize | Используется для запрета пользователям изменять размер фреймов в окне браузера. Фреймы устарели в HTML5. | |
frameborder | Используется для управления границами вокруг фреймов. Фреймы устарели в HTML5. | |
bordercolor | Указывает цвет границы рамки. Фреймы устарели в HTML5. |
Навигация по сообщению
Создание фреймов — как работают веб-страницы
Некоторые веб-дизайнеры используют фреймы на своих страницах в целях дизайна и для того, чтобы сделать сайт более удобным для пользователя.Фреймы облегчают навигацию по сайту, так сказать, не теряя своего места. Вы знаете, что фреймы используются, когда часть веб-страницы остается неподвижной, а другая часть той же страницы изменяется при нажатии на ссылку. Чтобы просмотреть веб-страницу с фреймами, посетите The Birch Aquarium.
На странице «Березовый Аквариум» верхняя и нижняя части страницы остаются неизменными, а средняя часть изменяется в соответствии с выбранной ссылкой. Эта страница разделена на три фрейма, что означает, что одновременно отображаются три разных HTML-документа.Вы можете выбрать, на сколько разделов вы хотите разделить свою страницу, каким образом они будут разделены и какие HTML-документы вы хотите включить в каждый фрейм.
Во-первых, важно хорошо спланировать свою страницу. Рассмотрим макет с точки зрения строк и столбцов. Сколько горизонтальных секций или строк вы хотите отобразить? Сколько вертикальных секций или столбцов? Как вы оцениваете, сколько места в пикселях или процентах потребуется для каждой секции?
Документ с набором фреймовДокумент с набором фреймов — это HTML-документ, который указывает браузеру упорядочивать содержимое веб-страницы определенным образом.В документе с набором фреймов тег «набор фреймов» заменяет тег «тело».
Вы начнете документ набора фреймов в обычном формате HTML:
Затем вставьте тег «frameset»:
Пример: < frameset rows="20%, 80%">
Этот тег указывает, что страница будет разделена на две части, верхнюю и нижнюю, как указано двумя значениями внутри тега. Если бы требовалось три строки, вы бы включили три значения:
Пример: