HTML - Фреймы

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

Недостатки фреймов

У использования фреймов есть несколько недостатков, поэтому никогда не рекомендуется использовать фреймы на ваших веб-страницах -

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

  • Иногда ваша страница будет отображаться по-разному на разных компьютерах из-за разного разрешения экрана.

  • Кнопка " Назад" в браузере может работать не так, как надеется пользователь.

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

Создание рамок

Чтобы использовать фреймы на странице, мы используем тег <frameset> вместо тега <body>. Тег <frameset> определяет, как разделить окно на фреймы. Вrows атрибут тега <frameset> определяет горизонтальные рамки и colsатрибут определяет вертикальные рамки. Каждый фрейм обозначается тегом <frame> и определяет, какой HTML-документ должен открываться во фрейме.

Note- Тег <frame> не рекомендуется в HTML5. Не используйте этот элемент.

пример

Ниже приведен пример создания трех горизонтальных рамок -

<!DOCTYPE html>
<html>

   <head>
      <title>HTML Frames</title>
   </head>
	
   <frameset rows = "10%,80%,10%">
      <frame name = "top" src = "/html/top_frame.htm" />
      <frame name = "main" src = "/html/main_frame.htm" />
      <frame name = "bottom" src = "/html/bottom_frame.htm" />
   
      <noframes>
         <body>Your browser does not support frames.</body>
      </noframes>
      
   </frameset>
   
</html>

Это даст следующий результат -

пример

Давайте представим приведенный выше пример следующим образом, здесь мы заменили атрибут rows на cols и изменили их ширину. Это создаст все три кадра по вертикали -

<!DOCTYPE html>
<html>
   
   <head>
      <title>HTML Frames</title>
   </head>
   
   <frameset cols = "25%,50%,25%">
      <frame name = "left" src = "/html/top_frame.htm" />
      <frame name = "center" src = "/html/main_frame.htm" />
      <frame name = "right" src = "/html/bottom_frame.htm" />
      
      <noframes>
         <body>Your browser does not support frames.</body>
      </noframes>
   </frameset>
   
</html>

Это даст следующий результат -

Атрибуты тега <frameset>

Ниже приведены важные атрибуты тега <frameset>:

Старший Нет Атрибут и описание
1

cols

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

Абсолютные значения в пикселях. Например, чтобы создать три вертикальных фрейма, используйте cols = "100, 500, 100" .

Процент окна браузера. Например, чтобы создать три вертикальных кадра, используйте cols = "10%, 80%, 10%" .

Использование подстановочного знака. Например, чтобы создать три вертикальных кадра, используйте cols = "10%, *, 10%" . В этом случае подстановочный знак занимает оставшуюся часть окна.

Как относительная ширина окна браузера. Например, чтобы создать три вертикальных фрейма, используйте cols = "3 *, 2 *, 1 *" . Это альтернатива процентам. Вы можете использовать относительную ширину окна браузера. Здесь окно разделено на шестые части: первый столбец занимает половину окна, второй - одну треть, а третий - одну шестую.

2

rows

Этот атрибут работает так же, как атрибут cols, и принимает те же значения, но используется для указания строк в наборе фреймов. Например, чтобы создать две горизонтальные рамки, используйте rows = "10%, 90%" . Вы можете указать высоту каждой строки так же, как описано выше для столбцов.

3

border

Этот атрибут определяет ширину границы каждого кадра в пикселях. Например, border = «5». Нулевое значение означает отсутствие границы.

4

frameborder

Этот атрибут указывает, должна ли отображаться трехмерная граница между кадрами. Этот атрибут принимает значение 1 (да) или 0 (нет). Например, frameborder = "0" не указывает границы.

5

framespacing

Этот атрибут определяет количество пространства между кадрами в наборе кадров. Может принимать любое целочисленное значение. Например, framepacing = "10" означает, что между кадрами должно быть 10 пикселей.

Атрибуты тега <frame>

Ниже приведены важные атрибуты тега <frame>:

Старший Нет Атрибут и описание
1

src

Этот атрибут используется для указания имени файла, который должен быть загружен во фрейм. Его значением может быть любой URL. Например, src = "/html/top_frame.htm" загрузит файл HTML, доступный в каталоге html.

2

name

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

3

frameborder

Этот атрибут указывает, отображаются ли границы этого фрейма; он переопределяет значение, указанное в атрибуте frameborder в теге <frameset>, если оно задано, и может принимать значения либо 1 (да), либо 0 (нет).

4

marginwidth

Этот атрибут позволяет вам указать ширину промежутка между левой и правой границами фрейма и содержимым фрейма. Значение указано в пикселях. Например, marginwidth = "10".

5

marginheight

Этот атрибут позволяет указать высоту пространства между верхней и нижней границами фрейма и его содержимым. Значение указано в пикселях. Например, marginheight = "10".

6

noresize

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

7

scrolling

Этот атрибут управляет внешним видом полос прокрутки, которые появляются во фрейме. Принимает значения «да», «нет» или «авто». Например, scrolling = "no" означает, что на нем не должно быть полос прокрутки.

8

longdesc

Этот атрибут позволяет вам предоставить ссылку на другую страницу, содержащую подробное описание содержимого фрейма. Например longdesc = "framedescription.htm"

Браузерная поддержка кадров

Если пользователь использует какой-либо старый браузер или любой браузер, который не поддерживает фреймы, пользователю должен отображаться элемент <noframes>.

Таким образом, вы должны поместить элемент <body> внутри элемента <noframes>, потому что элемент <frameset> должен заменить элемент <body>, но если браузер не понимает элемент <frameset>, он должен понимать, что находится внутри Элемент <body>, который содержится в элементе <noframes>.

Вы можете написать приятное сообщение своему пользователю, использующему старые браузеры. Например, Извините !! Ваш браузер не поддерживает фреймы. как показано в приведенном выше примере.

Имя фрейма и целевые атрибуты

Одно из самых популярных применений фреймов - это размещение панелей навигации в одном фрейме, а затем загрузка основных страниц в отдельный фрейм.

Давайте посмотрим на следующий пример, где файл test.htm имеет следующий код -

<!DOCTYPE html>
<html>

   <head>
      <title>HTML Target Frames</title>
   </head>
	
   <frameset cols = "200, *">
      <frame src = "/html/menu.htm" name = "menu_page" />
      <frame src = "/html/main.htm" name = "main_page" />
      
      <noframes>
         <body>Your browser does not support frames.</body>
      </noframes>
   </frameset>
	
</html>

Здесь мы создали два столбца, которые нужно заполнить двумя рамками. Первый кадр имеет ширину 200 пикселей и будет содержать панель меню навигации, реализованнуюmenu.htmфайл. Второй столбец заполняет оставшееся пространство и будет содержать основную часть страницы, и это реализуетсяmain.htmфайл. Для всех трех ссылок, доступных в строке меню, мы упомянули целевой фрейм какmain_page, поэтому всякий раз, когда вы щелкаете любую ссылку в строке меню, доступная ссылка будет открываться на главной странице.

Ниже приводится содержимое файла menu.htm.

<!DOCTYPE html>
<html>

   <body bgcolor = "#4a7d49">
      <a href = "http://www.google.com" target = "main_page">Google</a>
      <br />
      <br />
      
      <a href = "http://www.microsoft.com" target = "main_page">Microsoft</a>
      <br />
      <br />
      
      <a href = "http://news.bbc.co.uk" target = "main_page">BBC News</a>
   </body>
	
</html>

Ниже приводится содержимое файла main.htm -

<!DOCTYPE html>
<html>

   <body bgcolor = "#b5dcb3">
      <h3>This is main page and content from any link will be displayed here.</h3>
      <p>So now click any link and see the result.</p>
   </body>
	
</html>

Когда мы загружаем test.htm файл, он дает следующий результат -

Теперь вы можете попробовать щелкнуть ссылки, доступные на левой панели, и увидеть результат. Targetattribute также может принимать одно из следующих значений -

Старший Нет Вариант и описание
1

_self

Загружает страницу в текущий фрейм.

2

_blank

Загружает страницу в новое окно браузера. Открытие нового окна.

3

_parent

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

4

_top

Загружает страницу в окно браузера, заменяя все текущие фреймы.

5

targetframe

Загружает страницу в указанный целевой фрейм.