sexta-feira, 17 de junho de 2011

Tutorial de HTML 2

Além de imagens, também existe a possibilidade de colocar um pequeno reprodutor de som na página. Embora muita gente ache a musica de fundo algo de gosto duvidoso, desta maneira será possível parar a música, através de um pequeno controle tipo aparelhagem.
<P ALIGN="CENTER">
<BGSOUND SRC="musica.mid">
<EMBED SRC="musica.mid" WIDTH="140" HEIGHT="25" AUTOSTART="TRUE" CONTROLS="SMALLCONSOLE" VOLUME="60"OOP="FALSE"></EMBED>
</P>


O aspecto será o seguinte:
 
 
Nota-se que foram utilizados dois ‘tags’ para fazer a mesma coisa. Porquê? Os dois browsers mais utilizados, o Internet Explorer da Microsoft e o Navigator da Netscape têm certas diferenças na sua interpretação do HTML. Por isso, por vezes, é necessário incluir dois comandos diferentes para uma mesma função, visto que cada um destes comandos se destina a um dos browsers.
O ‘tag’ <BGSOUND> tem no parâmetro SRC a localização do ficheiro de som a tocar. No exemplo trata-se de um ficheiro .MID, mas pode perfeitamente ser um som .WAV ou .AU.
De forma similar, o ‘tag’ <EMBED> tem em SRC o ficheiro a tocar. Mas este ‘tag’ é substancialmente diferente. <EMBED> é um ‘tag’ poderosíssimo que tem como função a inserção de ‘plug-ins’ multimédia, que além de som também podem ser programas em Java, filmes ou mesmo visores de mundos em realidade virtual. Os parâmetros de <EMBED> são específicos conforme o conteúdo e é um domínio já bastante avançado da criação de páginas.

Na criação de páginas em HTML, as tabelas são algo que serve para muito mais que para a criação de tabelas propriamente ditas. Na verdade, é rara a página bem construída que não as utilize para melhor controlar a localização do texto, imagens e outros elementos de uma página.
Vamos seguir atentamente a criação de uma página com tabelas, visto que este é um dos processos onde os iniciados ao HTML encontram mais dificuldades.
<HTML>
<HEAD><TITLE>Página com uma tabela simples
</TITLE></HEAD>
<BODY>

<TABLE ALIGN="CENTER" BORDER="2">
Isto parece um pouco óbvio. O ‘tag’ <TABLE> inicia a nossa tabela. O parâmetro ALIGN define a localização da tabela na página (neste caso ficará centrada), e BORDER define a largura da borda.
<TR>
Agora, este ‘tag’ parece bem mais estranho. <TR> significa Table Row, e indica que vamos introduzir uma linha na nossa tabela. Parece lógico, dado que normalmente as tabelas se definem por linhas e colunas. No entanto…
<TD ALIGN="CENTER">Uma célula</TD>
<TD ALIGN="CENTER">Duas células</TD>

Poder-se-ia dizer que o <TD> diz respeito à divisão em colunas, duas neste caso. No entanto, isto é pouco exacto visto que, como vamos ver mais à frente, um <TD> não corresponde necessariamente a uma coluna da nossa tabela. Na verdade este ‘tag’ apenas divide a linha actual em várias células. Mas atenção! Se quisermos apenas uma célula, teremos sempre que utilizar na mesma um <TD>! Outra coisa a notar, o parâmetro ALIGN deste ‘tag’ diz respeito ao alinhamento por defeito do texto contido na célula.
</TR>
</TABLE>

</BODY>
</HTML>

Fechamos todos os ‘tags’ abertos e assim concluímos a nossa tabela:
 
 
vamos ver agora mais alguns exemplos de como utilizar tabelas.Primeiramente vamos ver como se utiliza uma tabela para fazer uma página de entrada num site, com uma imagem centrada no ecrã.
<HTML>
<HEAD>
<TITLE>Site de Eduardo Sousa – Carregue na imagem para entrar</TITLE>
</HEAD>
<BODY BGCOLOR="#000000" TEXT="#FFFFFF">
<TABLE ALIGN="CENTER" WIDTH="100%" HEIGHT="100%">
<TR>
<TD ALIGN="CENTER" VALIGN="MIDDLE">
<A HREF="principal.htm">
<IMG SRC="imagem.jpg" ALT="Clique para entrar">
</A>
</TD></TR>
</TABLE>
</BODY>
</HTML>


O resultado será este:
 

Como vimos, é obrigatório respeitar sempre a hierarquia <TABLE><TR><TD> e o facto de esta tabela ter apenas uma célula não dispensa nenhum destes ‘tags’.
Começando por <TABLE>, WIDTH HEIGHT definem o tamanho da tabela. Neste caso foi fornecido um valor em percentagem, relativo ao tamanho do ecrã. Assim conseguimos criar uma tabela que ocupa a totalidade do ecrã. Caso estivesse escrito <TABLE WIDTH="100">, o valor seria interpretado em termos absolutos, em pixeis, e tendo em conta que a maioria das pessoas têm o seu ecrã com 800 pixeis de largura, o resultado da tabela seria bem diferente. Cabe a cada um julgar as situações em que devem ser utilizadas percentagens ou valores em pixeis
Em <TD>, surgem ALIGN e VALIGN. Se o primeiro é um parâmetro que surge em muitos ‘tags’ e diz respeito ao alinhamento horizontal (pode conter "CENTER", "LEFT" ou "RIGHT"), VALIGN é um parâmetro que nos surge apenas no ‘tag’ <TD>, e diz respeito ao alinhamento vertical. Pode por isso conter os valores "MIDDLE", "TOP" ou "BOTTOM", respectivamente para o centro, em cima ou em baixo.
 
Finalmente, vamos analisar uma tabela complexa:<BODY BGCOLOR="#000000" TEXT="#FFFFFF">
<TABLE BGCOLOR="#000099" ALIGN="CENTER" WIDTH="400" HEIGHT="300" BORDER="3">

<TR>
<TD ALIGN="CENTER" COLSPAN="3"> 1 </TD>
</TR>

<TR>
<TD ALIGN="CENTER" ROWSPAN="2"> 2 </TD>
<TD ALIGN="CENTER" ROWSPAN="2"> 3 </TD>
<TD ALIGN="CENTER"> 4 </TD>
</TR>

<TR><TD ALIGN="CENTER"> 5 </TD></TR>
</TABLE>
</BODY>

Para melhor compreender esta estrutura é conveniente vermos o resultado final:
 
 
É por isto que não se pode associar os ‘tags’ <TR> e <TD> com linhas e colunas. Se bem que exista alguma verdade nessa associação, podemos, de facto, ter apenas um <TD> para várias colunas, e um <TR> para várias linhas, como se pode ver no resultado. Analisemos então o HTML que inserimos.Começamos por introduzir um novo parâmetro em <TABLE>. Através de BGCOLOR conseguimos definir, tal como fizemos para a o corpo da página, a cor de fundo da tabela. Este parâmetro também pode ser utilizado em <TR> e em <TD> para definir a cor de fundo de uma determinada linha ou célula.
Depois introduzimos <TD COLSPAN="3">. Este parâmetro define o número de colunas que uma determinada célula ‘percorre’. Assim, como acontece na nossa tabela, se tivermos uma única célula com três células por baixo, teremos que percorrer três colunas. No entanto, teremos sempre que considerar como número de colunas na nossa tabela o maior numero possível, por exemplo, se a célula 5 estivesse dividida em duas colunas, o parâmetro COLSPAN da célula 1 teria que ter um valor igual a 4.
Semelhante temos também ROWSPAN, que se aplica a linhas. Vemos este parâmetro aplicado nas células 2 e 3, o que faz com que o <TR> seguinte a ser aberto vá ocupar o espaço que ficou debaixo da célula 4.

Quem já navegou um pouco pela Internet com certeza já encontrou páginas em que, por exemplo, existe um menu estático no lado esquerdo do ecrã e o conteúdo do lado direito é que vai mudando.

Para tal é utilizado um processo mais complexo no qual visualizamos ao mesmo tempo no ecrã mais que uma página HTML. Para isso usa-se aquilo que iremos chamar de sistema de ‘frames’.

O princípio é simples. Temos uma página que nos indica a posição na qual as outras páginas serão colocadas. No exemplo referido de um menu do lado esquerdo, ateríamos, por exemplo uma página principal.htm que nos diz para exibir a página menu.html no lado esquerdo e a página conteudo.htm no lado direito.

Vamos agora ver como criar uma página com três ‘frames’, uma do lado esquerdo, e do lado direito um cabeçalho e o corpo, como no seguinte esquema:
 
esquerda
cima
conteudo
 
<HTML>
<HEAD><TITLE>Página com Frames</TITLE></HEAD>

<FRAMESET COLS ="160,*" BORDER="0" FRAMESPACING="0">
<FRAME SRC="esquerda.htm" NAME="esquerda" NORSIZE FRAMEBORDER="NO">

<FRAMESET ROWS ="90,*">
<FRAME SRC="cima.htm" NAME="cima" NORESIZE SCROLLING="NO" FRAMEBORDER="NO"><FRAME SRC="conteudo.htm" NAME="conteudo" FRAMEBORDER="NO">
</FRAMESET>

</FRAMESET>

<NOFRAMES>
<BODY BGCOLOR="#FFFFFF">
Esta página usa frames, mas o seu browser não as consegue visualizar.
</BODY>
</NOFRAMES>
</HTML>


Vejamos: esta página é algo diferente daquilo que aprendemos até agora. Isto porque aquilo que vemos no ecrã não é esta página, mas sim aquelas que esta refere.

Para definir frames, utiliza-se o ‘tag’ <FRAMESET>. Como não se trata propriamente do corpo da página, este ‘tag’ define uma área após a área <HEAD>, mas não contido dentro do ‘tag’ <BODY>. Ao utilizar o parâmetro COLS, divide a página em colunas, neste caso definidas por "160,*". Isto significa que são criadas duas, uma com 160 pixeis de largura e outra que ocupa o resto do espaço disponível no ecrã. As medidas das frames podem ser fornecidas em pixeis, em percentagem do espaço disponível ou por um asterisco, que significa ‘o resto’. Estas colunas são definidas da esquerda para a direita. Temos também BORDER e FRAMESPACING, que definem a borda e o espaçamento entre frames.

Dentro de <FRAMESET>, podemos então definir a frame propriamente dita ou subdividi-la pela ordem em que foram criadas as colunas. Temos então inserido o ‘tag’ <FRAME>, que se refere à primeira coluna (de 160 pixeis). SRC define qual o ficheiro HTML a ser exibido nessa frame, NAME, muito importante, indica qual o nome da frame, para que as links possam lá recair (veremos isto mais à frente). NORESIZE indica que a frame não pode ser redimensionada com o rato, e FRAMEBORDER, mais uma vez, a borda da frame. Utiliza-se <FRAME FRAMEBORDER> e <FRAMESET BORDER> mais uma vez por uma questão de compatibilidade entre o Internet Explorer e o Netscape Navigator. SCROLLING pode ser definido com "YES" ou "NO" para obrigar a barra de scroll a estar sempre visível ou escondida.
 
 
A segunda coluna que definimos é então ocupada por um novo <FRAMESET>, este agora que divide essa área em duas linhas, utilizando ROWS. De forma semelhante a COLSROWS divide a área a que diz respeito em linhas, lidas de cima para baixo.
No final temos ainda uma estranha área<NOFRAMES>. Esta, que dentro de si contém uma área<BODY>, destina-se a alojar o conteúdo do corpo da página visível nos browsers antigos (anteriores ao Netscape 2.0), que não suportam frames.

Como é que fazemos com que as links ‘caiam’ sobre uma das frames que criamos?

Aí entra o parâmetro NAME de <FRAME>. Através do nome que definimos, podemos usar o seguinte código, por exemplo no ficheiro ‘esquerda.htm’:

<A HREF="link.htm" TARGET="conteudo">Link</A>
Através de TARGET podemos definir o ‘alvo’ de uma link, que terá o nome que atribuímos à frame desejada. Podemos ainda utilizar TARGET="_blank", que abre a link numa nova janela, e TARGET="_ top", que abre a link no topo de toda a hierarquia de frames no ecrã, apagando as frames existentes. Quando não é atribuído um TARGET, as links abrem por defeito na própria frame onde existem.

Nenhum comentário:

Postar um comentário