HTML - Frames

Os quadros HTML são usados ​​para dividir a janela do navegador em várias seções, onde cada seção pode carregar um documento HTML separado. Uma coleção de quadros na janela do navegador é conhecida como conjunto de quadros. A janela é dividida em quadros de forma semelhante às tabelas são organizadas: em linhas e colunas.

Desvantagens das molduras

Existem algumas desvantagens no uso de frames, então nunca é recomendado usar frames em suas páginas da web -

  • Alguns dispositivos menores não conseguem lidar com frames frequentemente porque sua tela não é grande o suficiente para ser dividida.

  • Às vezes, sua página será exibida de forma diferente em computadores diferentes devido à resolução de tela diferente.

  • O botão Voltar do navegador pode não funcionar como o usuário espera.

  • Ainda existem poucos navegadores que não suportam a tecnologia de quadros.

Criação de quadros

Para usar frames em uma página, usamos a tag <frameset> em vez da tag <body>. A tag <frameset> define como dividir a janela em frames. orows atributo da tag <frameset> define quadros horizontais e colsatributo define quadros verticais. Cada quadro é indicado pela tag <frame> e define qual documento HTML deve ser aberto no quadro.

Note- A tag <frame> tornou-se obsoleta em HTML5. Não use este elemento.

Exemplo

A seguir está o exemplo para criar três quadros horizontais -

<!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>

Isso produzirá o seguinte resultado -

Exemplo

Vamos colocar o exemplo acima da seguinte maneira, aqui substituímos o atributo de linhas por cols e alteramos sua largura. Isso criará todos os três quadros verticalmente -

<!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>

Isso produzirá o seguinte resultado -

Os atributos da tag <frameset>

A seguir estão atributos importantes da tag <frameset> -

Sr. Não Atributo e descrição
1

cols

Especifica quantas colunas estão contidas no conjunto de quadros e o tamanho de cada coluna. Você pode especificar a largura de cada coluna de uma das quatro maneiras -

Valores absolutos em pixels. Por exemplo, para criar três quadros verticais, use cols = "100, 500, 100" .

Uma porcentagem da janela do navegador. Por exemplo, para criar três quadros verticais, use cols = "10%, 80%, 10%" .

Usando um símbolo curinga. Por exemplo, para criar três quadros verticais, use cols = "10%, *, 10%" . Nesse caso, o curinga ocupa o restante da janela.

Como larguras relativas da janela do navegador. Por exemplo, para criar três quadros verticais, use cols = "3 *, 2 *, 1 *" . Esta é uma alternativa às porcentagens. Você pode usar larguras relativas da janela do navegador. Aqui, a janela é dividida em sextos: a primeira coluna ocupa metade da janela, a segunda ocupa um terço e a terceira ocupa um sexto.

2

rows

Este atributo funciona exatamente como o atributo cols e assume os mesmos valores, mas é usado para especificar as linhas no conjunto de quadros. Por exemplo, para criar dois quadros horizontais, use rows = "10%, 90%" . Você pode especificar a altura de cada linha da mesma forma como explicado acima para as colunas.

3

border

Este atributo especifica a largura da borda de cada quadro em pixels. Por exemplo, border = "5". Um valor de zero significa sem borda.

4

frameborder

Este atributo especifica se uma borda tridimensional deve ser exibida entre os quadros. Este atributo assume o valor 1 (sim) ou 0 (não). Por exemplo, frameborder = "0" não especifica nenhuma borda.

5

framespacing

Este atributo especifica a quantidade de espaço entre os quadros em um conjunto de quadros. Isso pode assumir qualquer valor inteiro. Por exemplo, framespacing = "10" significa que deve haver um espaçamento de 10 pixels entre cada frame.

Os atributos da tag <frame>

A seguir estão os atributos importantes da tag <frame> -

Sr. Não Atributo e descrição
1

src

Este atributo é usado para dar o nome do arquivo que deve ser carregado no quadro. Seu valor pode ser qualquer URL. Por exemplo, src = "/html/top_frame.htm" carregará um arquivo HTML disponível no diretório html.

2

name

Este atributo permite que você dê um nome a um quadro. É usado para indicar em qual quadro um documento deve ser carregado. Isso é especialmente importante quando você deseja criar links em um quadro que carrega páginas em outro quadro; nesse caso, o segundo quadro precisa de um nome para se identificar como o destino do link.

3

frameborder

Este atributo especifica se as bordas desse quadro são ou não mostradas; ele sobrescreve o valor fornecido no atributo frameborder na tag <frameset> se um for fornecido, e isso pode assumir valores 1 (sim) ou 0 (não).

4

marginwidth

Este atributo permite que você especifique a largura do espaço entre a esquerda e a direita das bordas do quadro e o conteúdo do quadro. O valor é dado em pixels. Por exemplo marginwidth = "10".

5

marginheight

Este atributo permite que você especifique a altura do espaço entre as partes superior e inferior das bordas do quadro e seu conteúdo. O valor é dado em pixels. Por exemplo marginheight = "10".

6

noresize

Por padrão, você pode redimensionar qualquer quadro clicando e arrastando nas bordas de um quadro. O atributo noresize impede que um usuário seja capaz de redimensionar o quadro. Por exemplo noresize = "noresize".

7

scrolling

Este atributo controla a aparência das barras de rolagem que aparecem no quadro. Isso leva os valores "sim", "não" ou "automático". Por exemplo, scrolling = "no" significa que não deve haver barras de rolagem.

8

longdesc

Este atributo permite que você forneça um link para outra página contendo uma longa descrição do conteúdo do quadro. Por exemplo longdesc = "framedescription.htm"

Suporte de navegador para frames

Se um usuário estiver usando qualquer navegador antigo ou qualquer navegador que não ofereça suporte a quadros, o elemento <noframes> deve ser exibido para o usuário.

Portanto, você deve colocar um elemento <body> dentro do elemento <noframes> porque o elemento <frameset> deve substituir o elemento <body>, mas se um navegador não entende o elemento <frameset>, ele deve entender o que está dentro do Elemento <body> que está contido em um elemento <noframes>.

Você pode colocar uma mensagem agradável para o seu usuário com navegadores antigos. Por exemplo, desculpe !! O seu navegador não suporta frames. conforme mostrado no exemplo acima.

Nome do quadro e atributos de destino

Um dos usos mais populares de frames é colocar barras de navegação em um frame e carregar as páginas principais em um frame separado.

Vamos ver o exemplo a seguir, onde um arquivo test.htm tem o seguinte código -

<!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>

Aqui, criamos duas colunas para preencher com dois quadros. O primeiro quadro tem 200 pixels de largura e conterá a barra de menu de navegação implementada pormenu.htmArquivo. A segunda coluna preenche o espaço restante e conterá a parte principal da página e é implementada pormain.htmArquivo. Para todos os três links disponíveis na barra de menu, mencionamos o quadro de destino comomain_page, portanto, sempre que você clicar em qualquer um dos links na barra de menu, o link disponível será aberto na página principal.

A seguir está o conteúdo do arquivo 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>

A seguir está o conteúdo do arquivo 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>

Quando carregamos test.htm arquivo, ele produz o seguinte resultado -

Agora você pode tentar clicar nos links disponíveis no painel esquerdo e ver o resultado. O atributo target também pode assumir um dos seguintes valores -

Sr. Não Opção e descrição
1

_self

Carrega a página no quadro atual.

2

_blank

Carrega uma página em uma nova janela do navegador. Abrindo uma nova janela.

3

_parent

Carrega a página na janela pai, que, no caso de um único conjunto de quadros, é a janela principal do navegador.

4

_top

Carrega a página na janela do navegador, substituindo quaisquer quadros atuais.

5

targetframe

Carrega a página em um targetframe nomeado.