APOSTILA Curso de HTML com PHP HTML Pablo Dapont PET Computação - sala 202 Prédio 43424 ( prédio dos laboratórios ) Instituto de Informática - UFRGS email : [email protected] Av. Bento Gonçalves, 9500 bloco IV Bairro Agronomia - 91501-970 - Porto Alegre, RS 1. Introdução O objetivo do curso é fornecer aos participantes noções básicas da linguagem HTML, sabe-se que há várias ferramentas poderosas para editar o HTML de uma página, porém é de fundamental importância conhecer seu funcionamento. 1.1 O que é um arquivo HTML? • • • • • HTML significa Hyper Text Markup Language Um arquivo HTML é um arquivo texto contendo pequenas tags de marcação As tags de marcação indicam para o Navegador Web como mostrar a página A extensão de um arquivo HTML deve ser htm ou html Um arquivo HTML pode ser criado usando um editor de texto simples Todo documento HTML apresenta elementos entre parênteses angulares (< e >); esses elementos são as etiquetas (tags) de HTML, que são os comandos de formatação da linguagem. A maioria das etiquetas tem sua correspondente de fechamento: <tag>...</tag> Isso é necessário porque as etiquetas servem para definir a formatação de uma porção de texto, e assim marcamos onde começa e termina o texto com a formatação especificada por ela. Alguns elementos são chamados “vazios”, pois não marcam uma região de texto, apenas inserem alguma coisa no documento: <tag> Todos os elementos podem ter atributos: <tag atributo1=valor1 atributo2=valor2>...</tag> HTML é um recurso muito simples e acessível para a produção de documentos. Mais adiante veremos com detalhes os atributos das tags e seus valores. 2. Editores HTML: Como dito anteriormente, um arquivo html pode ser criado usando um editor de texto simples, como o bloco de notas. Porém há editores sofisticados para a criação de código HTML, alguns exemplos: - Dreamweaver – Macromedia HomeSite 5.5 – incluído no Dreamweaver FrontPage HTML-kit – free O ideal é sempre utilizarmos um editor que permita editar o código fonte HTML. As etiquetas HTML não são sensíveis à caixa, com isso tanto faz escrever: <HTML>, <Html>, <html>, <HtMl>, ... Na apostila, utilizamos maiúsculas, em muitos casos, para fins didáticos embora o padrão a ser utilizado seja em minúsculas. Estrutura mínima de uma página HTML: <HTML> <HEAD> <TITLE>Título da Página</TITLE> </HEAD> <BODY> Conteúdo da página </BODY> </HTML> 2.1 Atributos de <BODY> Através de atributos de <BODY>, podemos definir cores para os textos, links e para o fundo das páginas, bem como uma imagem de fundo (marca d’água): <BODY BGCOLOR="#rrggbb" TEXT="#rrggbb" VLINK="#rrggbb" BACKGROUND="URL"> LINK="#rrggbb" ALINK="#rrggbb" onde: BGCOLOR cor de fundo (quando não é indicada, o browser irá mostrar uma cor padrão, geralmente o cinza ou branco) TEXT cor dos textos da página (padrão: preto) LINK cor dos links (padrão: azul) ALINK cor dos links, quando acionados (padrão: vermelho) VLINK cor dos links, depois de visitados (padrão: azul escuro ou roxo) Seus valores são dados em hexadecimal, equivalentes a cores no padrão RGB (Red, Green, Blue). Browsers atuais aceitam 16 nomes de cores - por exemplo, podemos escrever BGCOLOR="BLUE". Porém, browsers mais antigos não apresentarão as cores indicadas. 3. Algumas Tags básicas Tag <html> <body> <h1> a <h6> <p> <br> <hr> <!--> <font> Descrição Define um documento HTML Define o corpo do documento Define cabeçalho 1 ao 6 Define um parágrafo Insere uma quebra de linha Define uma linha horizontal Define um comentário Define a formatação de um texto Há seis níveis de cabeçalhos em HTML, de <h1> a <h6>. Os cabeçalhos têm atributos de alinhamento, como no exemplo abaixo: <h3 ALIGN=CENTER>Cabeçalho de nível 3 centralizado</h3> <!— Aqui é um comentário --> <!— <P> tem atributo de alinhamento, como os cabeçalhos: --> <p ALIGN=CENTER>parágrafo centralizado<br>com quebra de linha</p> <!— <hr> insere uma linha horizontal: --> <hr WIDTH=30% ALIGN=RIGHT NOSHADE> <FONT FACE="Arial" COLOR="#00AA00">Fonte Arial verde</FONT> HTML automaticamente adiciona uma linha em branco extra antes e depois de um cabeçalho. Assim como também adiciona essa linha antes e depois de um parágrafo. O atributo ‘NOSHADE’ da tag <hr> deixa sem efeito tridimensional a linha horizontal a ser inserida. 4. HTML Links HTML usa a tag <a> (âncora) para criar um link para um outro documento. Uma âncora pode apontar para diversos destinos na Web: uma página HTML, uma imagem, um arquivo de som, um vídeo, etc. A sintaxe básica para criar uma âncora é: <a href="URL">Nome do texto a ser pressionado</a> Esta âncora define um link para uma outra página qualquer do site, no caso, o exemplo abaixo define um link para a página “pagina2.htm”: <a href="../pagina2.htm">Página 2</a> Esta âncora define um link para o site do PET computação: <a href="http://www.pet.ufrgs.br/computacao">Visite o site do PET!</a> Por padrão, um link abre sempre na mesma janela. Para alterar isso, temos o atributo TARGET que pode ser usado quando desejamos abrir a página em uma nova janela, por exemplo. TARGET="_blank" 5. Listas em HTML Listas Não Numeradas, essa lista pode ter marcadores diferentes, indicados através do atributo TYPE, que assume os valores CIRCLE, SQUARE e DISC (default): <UL TYPE=CIRCLE> <LI>Item um <LI>Item dois </UL> Como vai aparecer no Navegador: • • Item um Item dois Listas Numeradas, através do atributo TYPE pode-se lidar com a numeração dos itens: <OL TYPE=I> <LI>Documentos básicos <LI>Documentos avançados <OL TYPE=a> <LI>formulários <OL TYPE=i> <LI>CGI </OL> <LI>contadores <LI>relógios </OL> <LI>Detalhes sobre imagens </OL> Como vai aparecer no Navegador: I. II. III. Documentos básicos Documentos avançados a. formulários i. CGI b. contadores c. relógios Detalhes sobre imagens Listas de Glossário <dl> <dt>HTML</dt> <dd>Linguagem de marcação de páginas</dd> <dt>JAVA</dt> <dd>Linguagem de programação</dd> </dl> Como vai aparecer no Navegador: HTML Linguagem de marcação de páginas JAVA Linguagem de programação 6. Images em HTML Em HTML, imagens são definidas com a tag <IMG> Aqui temos um exemplo simples, onde definimos largura e altura da imagem a ser exibida: <p> Uma imagem: <IMG SRC="logotipo.gif" ALT="Logotipo" WIDTH="144" HEIGHT="50"> </p> Os atributos WIDTH="largura" HEIGHT="altura" não são necessários, porém uma das vantagens de se usar esses atributos é que o browser pode montar mais rapidamente as páginas, por saber de antemão o espaço que deverá ser reservado a elas. O atributo ALT="descrição_da_imagem" também não é obrigatório, ele indica um texto alternativo, descrevendo brevemente a imagem, que é apresentado no lugar da imagem nos browsers texto, ou quando se desabilita o carregamento de imagens em browsers gráficos. É recomendável que esteja sempre presente. Ainda temos os atributos BORDER e ALIGN: <IMG SRC="imagem" ALT="descrição" ALIGN=alinhamento BORDER=4 > O atributo BORDER traça uma borda ao redor da imagem, e nós definimos sua largura. Já o atributo ALIGN define o alinhamento da imagem. 7. HTML Frames Com frames, você pode mostrar mais de uma página HTML na mesma janela do navegador. Cada página HTML é chamada “frame”, e cada frame é independente dos outros. 7.1 Frameset Tag • • A marcação <frameset> define como dividir a janela em frames. Cada frameset define um conjunto de linhas ou colunas 7.2 Frame Tag • A tag <frame> define qual documento HTML colocar em cada frame Uma página com frames tem um texto fonte semelhante a: <HTML> <HEAD><TITLE>Página com Frames</TITLE></HEAD> <FRAMESET COLS="20%, 80%"> <FRAME SRC="frame_a.html" NAME="menu"> <FRAME SRC="frame_b.html" NAME="principal"> <NOFRAME> <BODY> <H2>Essa página usa frames e seu browser não suporta!</h2> </BODY> </NOFRAME> </FRAMESET> </HTML> No exemplo acima, temos a divisão da página em 2 colunas. É possível efetuar essa mesma divisão em linhas, com o atributo ROWS. Há outros atributos que permitem um maior controle sobre a apresentação de uma página com frames, o FRAMEBORDER e SCROLLING. Veja no exemplo abaixo: <FRAMESET ROWS="15%, 70%, 15%" FRAMEBORDER="no"> <FRAME SRC="banner.html" SCROLLING="no"> <FRAME SRC="principal.html"> <FRAME SRC="rodape.html SCROLLING="no"> </FRAMESET> É interessante o uso de Frames para apresentar conjuntos de páginas com um índice fixo para a navegação. Porém é preciso ter cuidado no controle da navegação, evitando que o acionamento de links não leve o leitor a ver seu browser criar frames dentro de frames, gerando uma grande confusão. As desvantagens de usar frames são: • • Sempre ter que manter vários documentos HTML para uma mesma página Dificuldades na impressão de uma página inteira Exercício 1 • Criar um modelo de página, em HTML, como mostrado ao lado treinando o uso de frames. 8. Tabelas A alternativa natural para não usarmos frames são as tabelas. As tags <TABLE>...</TABLE> delimitam uma tabela. As tags <CAPTION>...</CAPTION> definem o título da tabela. A tabela é dividida em linhas (com a tag <TR>), e cada linha é dividida em células (com a tag <TD>). As letras TD significam "table data" as quais é o conteúdo de uma célula. Ainda temos a tag <TH> que define um cabeçalho para colunas ou linhas (dentro de <TR>). Uma célula pode conter texto, imagens, listas, parágrafos, formulários, tabelas, etc. Como primeiro exemplo temos a tabela abaixo: <TABLE BORDER=4> <CAPTION>Primeiro exemplo</CAPTION> <TR> <TH>Coluna 1</TH><TH>Coluna 2</TH> </TR> <TR> <TD>linha1, coluna 1</TD><TD> linha 1, coluna 2</TD> </TR> <TR> <TD>linha 2, coluna 1</TD><TD>linha 2, coluna 2</TD> </TR> </TABLE> Como será mostrado no navegador: Primeiro exemplo Coluna 1 Coluna 2 linha1, coluna 1 linha 1, coluna 2 linha 2, coluna 1 linha 2, coluna 2 8.1 Títulos compreendendo mais de uma coluna ou linha É possível englobar colunas e linhas, através dos atributos COLSPAN (para colunas) e ROWSPAN (para linhas): <TABLE BORDER=1> <TR> <TH COLSPAN=2>Colunas 1 e 2</TH> </TR> <TR> <TD>linha1, coluna 1</TD><TD> linha 1, coluna 2</TD> </TR> <TR> <TD>linha 2, coluna 1</TD><TD>linha 2, coluna 2</TD> </TR> <TR> <TH ROWSPAN=3>3 linhas</TH><TD>uma linha</TD> </TR> <TR> <TD>duas linhas</TD> </TR> <TR> <TD>tres linhas</TD> </TR> </TABLE> Como aparecerá no navegador: Colunas 1 e 2 linha1, coluna 1 linha 1, coluna 2 linha 2, coluna 1 linha 2, coluna 2 uma linha 3 linhas duas linhas tres linhas Neste exemplo, vemos que o cabeçalho Colunas 1 e 2 compreende duas colunas (COLSPAN=2); o cabeçalho 3 linhas compreende, por sua vez, 3 linhas (ROWSPAN=3). 8.2 HTML Layout - Usando Tabelas É comum em HTML usar tabelas para a formatação de um layout de uma página. Nesse caso é usual utilizarmos o atributo <TABLE BORDER="0">. Uma tabela comum ajusta o tamanho de suas células ao conteúdo. Para apresentar uma tabela ocupando determinado espaço disponível na linha, usamos o atributo WIDTH. Esse atributo pode ser aplicado também a linhas e células. Essa largura pode ser definida em porcentagem (do espaço disponível) ou em pixels: WIDTH=x% ou WIDTH=x Há dois atributos que permitem o controle de espaçamento em tabelas: CELLPADDING= x , espaço entre o texto e as bordas da célula CELLSPACING= x , espaço entre células Ainda temos os atributos de cores: BGCOLOR – cor de fundo BORDERCOLOR – cor da borda Esses atributos de cores podem ser usados em toda tabela, assim como apenas em linhas ou até mesmo células. Exercício 2 • Criar o mesmo modelo anterior de página, em HTML, como mostrado ao lado, porém utilizando tabelas agora. 9. Folhas de Estilo em Cascata - CSS As folhas de estilo em cascata, CSS - Cascading Style Sheets foram um avanço interessante na linguagem HTML após a versão 3.2, elas permitem o uso de formatações uniformes em um site, de maneira bastante "econômica". Anteriormente, vimos que, para poder formatar um texto, era preciso escrever uma marcação parecida com: <h3><font face="Arial" color="#4A7D7B">Cabeçalho 3</font></h3> <p><font face="Arial" size="2">Um parágrafo</p> Com as folhas de estilo, podemos declarar estilos apropriados para seções de texto, aplicando esses estilos sem nos preocuparmos com detalhes de fontes, cor e tamanhos. A definição da folha de estilo deve ficar dentro de <HEAD>, da seguinte forma, se a folha for definida dentro do mesmo documento em que está sendo usada: <HEAD> ... <STYLE TYPE="text/css"> P { font: 10pt Arial } H3 { color:#4A7D7B } .destaque { color: red } </STYLE> ... </HEAD> Nesse caso a folha de estilo é definida no próprio documento HTML. Porém, ela pode, ainda, ser definida externamente. A grande vantagem é caso seja necessário modificar, algum dia, as cores de todos os títulos ou dos destaques ao longo dos textos de vários documentos html pertencentes à uma página web, com CSS simplesmente alteraríamos a folha de estilo, atualizando imediatamente a apresentação de todos os documentos que fazem referência a ela. Nesse caso, é criada a folha de estilo em outro documento e utilizamos a tag <LINK> nas páginas que queremos usar essa folha. <HEAD> ... <LINK REL="stylesheet" TYPE="text/css" HREF="folha_de_estilo.css"> ... </HEAD> Como monstrado acima, uma mesma folha de estilo pode ser usada por vários documentos HTML, que também poderão ter suas próprias folhas de estilo internas. Exercício 3 • Criar uma folha de estilo externamente, chamada ‘estilo.css’ que utilizaremos posteriormente em nossas páginas. Formatar ao menos: - cor de fundo (corpo, tabelas, cabeçalhos) - fonte (cor, família, tamanho) - títulos, elementos de tabela, texto em geral 10. Formulários em HTML Um formulário é um modelo que permite ao usuário entrar com um conjunto de dados. O primeiro passo para fazer formulários é aprender as etiquetas que desenham as janelinhas de entrada de dados, para depois trabalharmos com os scripts, que são os programas que permitem a manipulação dos dados. Um formulário é definido pela tag <form>, que irá conter uma seqüência de elementos de entrada e de formatação do documento. <FORM> <INPUT> <SELECT> <TEXTAREA> </FORM> Os formulários podem conter qualquer formatação - parágrafos, listas, tabelas, imagens exceto outros formulários. Em especial, colocamos dentro da marcação de <FORM> as formatações para campos de entrada de dados, que são três: <INPUT>, <SELECT> e <TEXTAREA>. 10.1 Input A tag mais usada em formulários é a tag <input>. O tipo de entrada é especificado com o atributo “type”. Todos os campos de entrada de dados têm um atributo NAME, ao qual associamos um nome, que será utilizado posteriormente pelo script. Alguns dos tipos mais comuns estão apresentados abaixo: <form> Login: <INPUT type="TEXT" NAME="login"> <br> Senha: <INPUT type="PASSWORD" NAME="senha"> </form> Como aparecerá no navegador: Login: Senha: A maioria dos navegadores tem como largura padrão de um campo de texto 20 caracteres. Porém, com o atributo SIZE é possível definirmos o tamanho do campo. Também é possível delimitarmos o número de caracteres aceito no campo de dados com o atributo MAXLENGHT. Esses dois atributos apenas são válidos para campos TEXT e PASSWORD. Ainda temos o atributo VALUE que pode ser usado para dar um valor inicial a um campo de tipo texto ou senha. Desse modo, se o usuário não preencher este campo, será adotado este valor padrão. Se o usuário quiser entrar dados, ele simplesmente apaga o que já estiver escrito e escreve suas informações. 10.2 Botões Radio – escolha única Botões Radio são utilizados quando se quer selecionar apenas uma opção dentre várias. <form> <INPUT TYPE=RADIO NAME="sexo" VALUE="masculino">Masculino <br> <INPUT TYPE=RADIO NAME="sexo" VALUE="feminino" CHECKED>Feminino </form> Como aparecerá no navegador: Masculino Feminino Note que apenas uma opção pode ser escolhida. Podemos perceber, também, que o atributo NAME tem o mesmo nome, porém, conforme a opção escolhida, seu VALUE é diferente. 10.3 Checkboxes – múltipla escolha Utilizamos Checkboxes quando queremos selecionar mais de uma opção dentre várias. <form> <INPUT TYPE=CHECKBOX NAME="check" VALUE="propagandas" CHECKED> Quero receber propagandas por email <br> <INPUT TYPE=CHECKBOX NAME="check" VALUE="atualizacoes" CHECKED> Quero receber atualizações por email </form> Como aparecerá no navegador: Quero receber propagandas por email Quero receber atualizações por email 10.4 Select A tag <SELECT> define uma seleção entre um conjunto de opções oferecidas ao usuário, estas opções são definidas na tag <OPTION>. Veja o exemplo abaixo: <SELECT> <OPTION value <OPTION value <OPTION value <OPTION value </SELECT> ="amarelo">Amarelo</OPTION> ="azul">Azul</OPTION> ="verde">Verde</OPTION> ="vermelho">Vermelho</OPTION> Como aparecerá no navegador: Podemos definir o tamanho na tag <option> com o atributo SIZE ou também com o atributo SELECTED definir qual campo estará inicialmente selecionado. O padrão é que esteja selecionado o primeiro campo. 10.5 TextArea A tag <TEXTAREA> define um campo texto, geralmente utilizado para comentários. Com os atributos COLS e ROWS definimos o tamanho do campo. Veja o exemplo abaixo: <FORM> <TEXTAREA COLS=40 ROWS=5 NAME="comentario">[comentários]</TEXTAREA> </FORM> Como aparecerá no navegador: 10.6 Botões de ação O atributo TYPE igual a SUBMIT apresenta o botão que causa o envio dos dados de entrada para o servidor, ou seja, quando o usuário clicar no botão "Enviar", todo o conteúdo do formulário é enviado para um outro arquivo. <FORM> <INPUT TYPE=SUBMIT VALUE="Enviar"> </FORM> Como aparecerá no navegador: Ainda podemos ter o atributo TYPE igual a RESET que restaura os valores iniciais das entradas de dados. <INPUT TYPE=RESET VALUE="Apagar!"> Exercício 4 • Criar um conjunto de 3 páginas: - página inicial com Nome e Senha (index.html); - página com formulário de cadastro (form.html); - página de agradecimentos (obrigado.html). Formulário deve conter: Nome, Sexo, Endereço, Cidade, Estado, CEP, E-mail, Telefone Fixo, Celular, Fax, Profissão, Cliente(sim,não), Interesse(Esportes, Informática, Carros, Aventura, Riqueza Material, Cabelos Longos, Luz de Velas, Drogas, Pornografia).