Escolar Documentos
Profissional Documentos
Cultura Documentos
3 Formatando o Texto.....................................................................................................................................10
3.1 Introdução.......................................................................................................................................10
3.2 Formatando o texto.........................................................................................................................10
3.3 Criando títulos e sub−títulos...........................................................................................................11
3.4 Alterando a formatação da fonte.....................................................................................................11
3.5 Fazendo parágrafos.........................................................................................................................12
3.6 Trabalhando com texto pré−formatado...........................................................................................13
3.7 Inserindo uma linha horizontal.......................................................................................................13
3.8 Listas...............................................................................................................................................13
3.9 Marquee..........................................................................................................................................14
3.10 Exercício Proposto........................................................................................................................16
5 Links...............................................................................................................................................................20
5.1 Introdução.......................................................................................................................................20
5.2 O que é e como funciona................................................................................................................20
5.3 Links relativos e links absolutos.....................................................................................................20
5.4 Links para uma seção da página.....................................................................................................22
5.5 Imagens como links........................................................................................................................23
5.6 Links para e−mail...........................................................................................................................24
5.7 Exercício Proposto..........................................................................................................................24
5.7.1 Exercício 1:............................................................................................................................24
i
Índice
6 Tabelas...........................................................................................................................................................25
6.1 Introdução.......................................................................................................................................25
6.2 Apresentando o conteúdo com tabelas............................................................................................25
6.3 Inserindo uma tabela.......................................................................................................................25
6.4 Adicionando conteúdo a uma célula da tabela................................................................................26
6.5 Exibindo e definindo propriedades da tabela..................................................................................27
6.6 Exibindo e definindo propriedades de célula, linha e coluna.........................................................28
6.7 Redimensionando tabelas................................................................................................................28
6.8 Mesclando células...........................................................................................................................30
6.9 Exercício Proposto..........................................................................................................................32
6.10 Aninhando tabelas.........................................................................................................................32
6.11 Utilizando tabelas para trabalhar com imagens fatiadas...............................................................33
7 Formulários...................................................................................................................................................35
7.1 Introdução.......................................................................................................................................35
7.2 Entendendo o funcionamento dos formulários...............................................................................35
7.3 Conhecendo os objetos dos formulários.........................................................................................35
7.4 Criando um formulário...................................................................................................................37
7.5 Utilizando os campos do formulário...............................................................................................37
7.6 Inserindo caixas de seleção e botões de rádio.................................................................................39
7.7 Inserindo listas e menus..................................................................................................................40
7.8 Adicionando botões de formulário..................................................................................................42
7.9 Inserindo um objeto image..............................................................................................................43
7.10 Adicionando o objeto file..............................................................................................................43
8 Frames............................................................................................................................................................45
8.1 Introdução.......................................................................................................................................45
8.2 O que são frames.............................................................................................................................45
8.3 Decidindo se as molduras devem ser usadas..................................................................................45
8.4 Criando páginas da web com molduras..........................................................................................46
8.5 Redimensionando molduras em um conjunto de molduras............................................................47
8.6 Editando o conteúdo de uma moldura............................................................................................47
8.7 Controlando o conteúdo de uma moldura com links......................................................................48
8.8 Inserindo frames inline...................................................................................................................49
8.9 Exercício Proposto..........................................................................................................................50
9 Recursos de Multimídia................................................................................................................................51
9.1 Introdução.......................................................................................................................................51
9.2 Inserindo áudio................................................................................................................................51
9.3 Inserindo vídeo................................................................................................................................52
9.4 Inserindo animações em Flash........................................................................................................52
ii
Índice
11 Anexo − Código de Cores RGB..................................................................................................................66
iii
1 A Internet e suas características
1.1 Introdução
Internet − O foco do assunto abordado nesta obra, ou melhor, como produzir informações para este meio de
comunição, nos leva a refletir sobre os objetivos desta grande rede de computadores, que hoje se destaca
como a maior fonte de pesquisa do planeta.
A dimensão ocupada por esta mídia é tão extensa e difusa, que nos permite permanecer horas perdidos entre
as milhares de páginas espalhadas por todos os quatro cantos do mundo.
Veremos no decorrer destas páginas como funciona a Internet dos bastidores, podendo ao final da leitura, nos
aventurar por este submundo virtual, tanto fazendo uso de seus intermináveis assuntos, como também, sendo
parte deles.
Para isso, devemos compreender o funcionamento de um dos elementos da base da Internet: a linguagem
HTML. E este será nosso objetivo. Este trabalho está direcionado para a parte de programação de sites,
procurando construir um embasamento que será fundamental para a produção de páginas para a Internet,
podendo interagir em um segundo momento com linguagens de script Cliente e Servidor. Temas como design
de páginas, criação de animações e tratamento de imagens não serão abordados neste livro.
A princípio pode parecer desordenado e confuso, e realmente é, mas a Internet funciona sobre uma estrutura
de protocolos denominada TCP/IP, aos quais couberam a responsabilidade de tornar esta bagunça algo
relativamente fácil de usar.
Esta tecnologia surgiu em 1969, dentro das trincheiras militares dos Estados Unidos. Tinha o objetivo de
difundir informações de forma rápida pelo território americano, sem que elas pudessem se perder durante um
eventual combate, onde os meios de comunicação são os alvos principais. A Arpanet, como foi chamada no
início, conseguiu então, interligar vários computadores em diversas partes dos Estados Unidos, trafegando as
informações de forma completamente livre, ou seja, cada ponto da rede podia mandar e receber os dados, e
repassá−los para outros computadores sem ter ninguém gerenciando tudo isso. Dessa forma as informações
conseguiam coexistir em várias fontes, eliminando assim, o risco de se perderem.
Com o passar dos anos, isso tudo foi sendo disseminado e com o avanço da tecnologia, criação de
computadores menores e mais baratos, a Internet se tornou o que é hoje. Segundo dados das Nações Unidas
ONU, em pesquisa realizada no ano 2000, existiam 13,5 milhões de brasileiros conectados a Internet.
• Acesso Dial Up este tipo de acesso é feito através de linha telefônica convencional. É necessário
estar conectado a um provedor de serviços que fará a ligação com a rede. É uma conexão instável e
provê baixas taxas de transmissão.
• ADSL(Asymetric Digital Subscriber Line) o acesso ADSL é a grande onda do momento. Além de
não ocupar a linha telefônica, permite acessos superiores a 6 Mbps(download) e conexão estável
durante 24 horas por dia.
• Correio Eletrônico: os e−mails, sem dúvida são a forma mais utilizada de se comunicar dentro da
grande rede. Cada pessoa pode ter o seu próprio endereço eletrônico e utilizá−lo para enviar
mensagens para quem desejar.
• Listas de Discussão: como o próprio nome enfoca, são páginas que dispõem de fórums para divulgar
opiniões e debater sobre os mais variados temas.
• Usenet Newsgroup: Muito parecido com as Listas de Discussão, funcionando sobre o protocolo
NNTP e sendo necessário o acesso a um servidor de News e um Messenger.
• FTP (File Transfer Protocol): o FTP, é utilizado para a transferência de arquivos. É através deste
serviço que podemos enviar os arquivos do nosso site para o servidor e vice−versa.
• Telnet: o telnet é um serviço que permite a conexão com outras máquinas em qualquer lugar. É como
se o usuário estivesse na própria máquina a qual se conectou, mas com acesso limitado, podendo
apenas visualizar arquivos em forma de texto.
• WWW: a World Wide Web, ou simplesmente Web, é onde passamos a maior parte do tempo quando
estamos conectados a Internet. A WWW é a grande responsável pela popularização da Internet. É
onde está toda a fonte de informação devidamente apresentada através de páginas, que se interligam
em uma malha sem início e fim.
O W3C regulamenta e rege a forma de como a Web deve se comportar e que padrões deve seguir para prover
serviços de forma totalmente compatível com as mais diversas tecnologias e sistemas existentes no mercado.
São através desses padrões estabelecidos que se garante a operacionalidade da Internet.
Basicamente, existem protocolos e linguagens padrões, que ao interagirem produzem este espaço virtual. A
base de todos os protocolos é o TCP/IP e a base de todas as linguagens de construção de Hipertexto é o
SGML, do qual o HTML é o subconjunto mais utilizado.
1.6 Os servidores
Quando digitamos no nosso navegador um determinado endereço de algum site, começa uma viagem muito
longa e rápida entre o nosso computador e os servidores de páginas.
Isso quer dizer que, ao escrevermos o endereço estamos solicitando um determinado arquivo que se encontra
no servidor. Suponhamos que queremos acessar a página da Sistemas Abertos.
Para isso, informarmos o endereço ao navegador, que é www.sistemasabertos.com.br. Neste instante, é feita
uma requisição ao servidor que contém a página. Se o arquivo existir neste servidor, então é encaminhado um
documento codificado ao browser, que o reproduzirá na tela do usuário. Caso o arquivo não exista, uma
mensagem de que a página não foi encontrada será enviada.
Cada URL está ligada á um código de identificação que somente os servidores Web podem decifrar. É a
organização da rede. Esse código é chamado de TCP/IP.
http://www.sistemasabertos.com.br/news/noticias.php?id_not=25&titulo=HTML
• http:// − esta parte da URL representa o protocolo HTTP Hypertext Transfer Protocol, que é
responsável pela transferência de hipertextos pela rede. Hipertextos são outro nome que podemos dar
a páginas.
• www.sistemasabertos.com.br o endereço aqui representado, exatamente na forma como
costumamos digitar, na verdade é o servidor que contém a nossa página. Quando digitamos o
endereço acima, o servidor pesquisa qual é o endereço IP que possui aquele apelido e faz a pesquisa
nele.
• /news é um diretório virtual do servidor que irá conter o arquivo que queremos acessar.
• noticias.php é o próprio arquivo.
• ?id_not=25&titulo=HTML esta parte do endereço talvez possa parecer um pouco confusa, mas se
torna muito importante conhecê−la, a partir do momento que queremos trabalhar com outras
linguagens de script Cliente e Servidor. O ponto de interrogação(?) indica que estamos enviando para
o arquivo noticias.php, variáveis que serão necessárias para o carregamento perfeito da página. Quais
seriam essas variáveis? A primeira vem logo a seguir e é representada pelo nome id_not e possui o
valor 25. Temos na seqüência um e comercial(&), que informa que queremos passar nova variável.
Esta nova variável é chamada de titulo e possui o valor HTML.
1.8 O navegador
Falaremos agora um pouco sobre os navegadores.
Os navegadores são os programas Cliente que utilizamos para visualizar as páginas web. São eles que
conseguem se comunicar com os servidores de páginas e reproduzi−las no seu computador. Eles conseguem
entender todo o código HTML que compõem as páginas.
Os browsers, como também são chamados, mais utilizados são: Netscape Navigator, Internet Explorer,
Mozilla e Opera. Temos um outro grande número desses programas, cada um com suas características e
funções, mas sempre tendo como base a linguagem dos hipertextos. Neste livro usaremos um navegador de
sua preferência para testarmos todo o código que iremos produzir.
Muitos dizem que o HTML não é propriamente uma linguagem de programação, por não possuir estruturas de
controle, repetição ou armazena dados. Mas o fato é que, o HTML é composto de vários comandos
denominados tags que ao se unirem dentro de uma determinada lógica, produz um documento codificado
assim como qualquer outra linguagem.
Essa linguagem de marcação de hipertexto, como a tradução nos informa, é a base de toda representação
visual existente na Internet. Qualquer página, seja ela estática ou dinâmica, apresentará algum tipo de
formatação HTML.
Poderíamos dizer que sem o HTML não haveria informação na rede. Haveriam sim, muitos dados, mas sem
formatação, sem diagramação ou apresentação. Apenas texto puro. E convenhamos, não existiria esse fascínio
que possui hoje, fazendo com que seja a maior fonte de informação e comunicação do planeta.
A partir de agora começaremos a entender melhor tudo isso que falamos. Iremos construir páginas,
procurando trabalhar todas as possibilidades que a linguagem possa nos oferecer. E, dependeremos
exclusivamente de nossa criatividade para criarmos o nosso site. Bons estudos e nos vemos no Capítulo 2.
1.8 O navegador 4
2 Criando uma página
2.1 Introdução
Neste capítulo aprenderemos a escrever a nossa primeira página, utilizando comandos HTML. Veremos como
se deve estruturar um documento, suas partes principais, tags básicas e seus atributos. Para isso iremos utilizar
um editor de textos simples, como o notepad para escrevermos o código e um navegador de sua preferência,
para a visualização da página.
Lembre−se de salvar os seus arquivos somente como texto puro, sem nenhuma formatação específica do
editor que você esteja utilizando. Salve−o também com a extensão .htm ou .html.
As tags são comandos, aninhados dentro de sinais <>. Elas demarcam o início de uma determinada ação e
muitas vezes necessitam de uma outra tag, para sinalizar o fim da interação do comando. Essa tag de
finalização é uma cópia da tag de abertura, exceto pela barra que precede o comando. Veja:
Um exemplo de tag poderia ser o par de abertura e finalização de um documento HTML. Toda página web
possui um único par desses, sem exceção:
<HTML></HTML>
Ao escrevermos vários desses comandos, formatando e diagramando conteúdo, estamos produzindo páginas
para a Web.
As tags também possuirão atributos que poderão ter o valor modificado para melhor atender ao objetivo de
um determinado comando.Algumas tags não têm necessidade do seu par de fechamento. Neste caso, elas não
estariam realizando nenhuma ação específica, devendo então acrescentar algo ao conteúdo, como uma
imagem.Outras, não deverão fazer efeito, dependendo do navegador que o usuário esteja utilizando. Portanto,
é necessário fazermos uso das tags mais simples e comuns, para evitar que partes da nossa página não consiga
ser visualizada.
Os cabeçalhos armazenam informações sobre a página, como o título da página, meta−dados(veremos mais
sobre isso), estilos CSS e até scripts de outras linguagens.
Já a parte do corpo da página, irá representar tudo aquilo que for visível ao usuário. Todos os nossos textos,
imagens, links, tabelas e formulários estarão contidos neste bloco. A parte que permitirá a interação com o seu
visitante será declarada aqui.
Digitem o código abaixo para que possamos conhecer novos comandos. Acompanhem a seqüência passo a
passo logo abaixo do exemplo.
<HTML>
<HEAD>
<TITLE>Minha primeira página!!!</TITLE>
</HEAD>
</HTML>
Acompanhem agora, uma seqüência explicando passo a passo o código descrito acima.
Iniciamos o código com a tag <HTML> para informar que o documento é do tipo página para a Internet.
Logo em seguida utilizamos a tag <HEAD> para declarar os cabeçalhos que serão utilizados no
documento.
A tag <TITLE> representa o título da página e deve estar descrita dentro da tag de cabeçalhos. Abram o
documento no navegador e verifiquem o título da janela que está sendo exibido. É exatamente aquilo que foi
declarado na tag de títulos. Precisamos dizer ao código onde o título termina. Para isso utilizamos a tag de
fechamento </TITLE>, assim poderemos prosseguir com o resto do código.
Se não houverem mais cabeçalhos, então informamos o fim da declaração destes, escrevendo a tag
</HEAD> .
Meta tags são pequenas informações úteis para indexar e categorizar páginas para serviços de busca. Possuem
ainda informações sobre o tipo de padrão W3C utilizado para construir a página e ainda pode fazer
direcionamentos e atualizar sua página de acordo com os parâmentros especificados.
<HTML>
<HEAD>
<TITLE>Minha primeira página!!!</TITLE>
<META name="Author" content="Nome do autor">
<META name="Description" content="Descrição da página">
<META name="Keywords" content="Palavras chave">
<META http−equiv="refresh" content="9;URL=http://www.sistemasabertos.com.br">
</HEAD>
<BODY>
Nosso endereço mudou. Aguarde uns instantes para acessar a nova página.
</BODY>
</HTML>
Incluímos no exercício algumas meta tags. As meta tags não possuem fechamento. Elas possuem atributos
que informam ao navegador exatamente o que ele precisa saber. Os atributos deve ser declarados no corpo da
meta tag e seu conteúdo deve estar entre aspas.
A primeira meta tag tem a propriedade name com valor Author. Isso significa que o conteúdo existente
na propriedade content terá informações sobre o autor da página, ou a pessoa que escreveu o código.
Logo em seguida, temos a meta tag Description. Seu conteúdo guardará uma breve descrição sobre o
assunto da página. Isso será muito útil para os serviços de busca.
A meta tag Keywords tem comportamento semelhante à meta Description. Só que agora
armazenamos palavras chaves que irão facilitar as buscas realizadas na Internet. Seu site será encontrado com
maior precisão através dessas keywords.
Finalmente temos a meta tag Refresh. Aqui temos uma ação a ser realizada pelo browser. Informamos que
ao passar de 9 segundos, a página será direcionada para o endereço descrito. Se quisermos apenas que a
página seja recarregada em certos intervalos de tempo, eliminamos a parte que se refere à URL. É um recurso
muito utilizado em sites de notícias, que atualizam suas informações freqüentemente. Observe também que a
propriedade name foi substituidada pela http−equiv informando ao navegador que esta propiedade é um
cabeçalho Http.
Temos também uma outra tag codificada no exercício. A tag <BODY> representa tudo aquilo que será
visível ao usuário. Colocamos um texto para testar a meta tag Refresh. É dentro da tag <BODY> que se
concentrará o conteúdo deste livro.
Abram esta página no seu navegador e aguarde alguns segundos para ser redirecionado para a página
especificada.
Cada tag poderá ter um conjunto de propriedades que lhe proporcionará melhor caracterização. Essas
propriedades devem ser declaradas junto com a inicialização da tag e seus valores estarão acondicionados
entre aspas.
Veja o exemplo:
<BODY bgcolor="#FF0000">
...
</BODY>
As cores que utilizamos na nossa página estão em código hexadecimal. Cada cor tem o seu próprio código e o
padrão de cores RGB. Veja no final do livro, o anexo sobre cada cor e seu respectivo código hexadecimal. As
cores mais comuns podem ser escritas com o seu nome equivalente em inglês. Veja o exemplo:
A tag <BODY> suporta várias outras propriedades, mas só veremos no decorrer do livro, quando
aprenderemos quando elas poderão ser utilizadas. Observe a descrição de cada uma:
As propriedades link, vlink e alink dizem quais cores os links assumirão quando eles estiverem no estado
inicial, quando for um link que já foi visitado e quando ele estiver ativo, respectivamente.
Podemos utilizar todas essas propriedades juntas ou somente aquelas que precisarmos efetivamente.
Agora altere as cores de fundo da página e dos textos. Acrescente mais texto dentro da tag <BODY> e altere
também as margens. Verifique o resultado.
Como nossas páginas ainda não estão no servidor, precisamos carregar o arquivo no browser. Clique em
arquivo e depois abrir. Selecione o arquivo desejado e clique em ok. Não é necessário repetir essa operação a
cada alteração da página. Os navegadores possuem comandos para atualizar a página corrente sem a
necessidade de abrir o arquivo novamente. Verifique a melhor forma de executar esta atualização no seu
navegador.
<HTML>
<HEAD>
<TITLE>Documento com fundo azul!!</TITLE>
</HEAD>
<BODY bgcolor="#0000FF" text="#00FF00">
Página com fundo e texto coloridos!
</BODY>
</HTML>
Agora veremos como trabalhar com texto dentro da página. Formatação do texto, alinhamento e listas serão
algumas das tags que trabalharemos neste capítulo.
A partir de agora, será exibida uma lista com as propriedades de cada tag e suas funções. Os exercícios não
deverão contemplar todas, mas você pode e deve testar o maior número de opções possíveis, para aprimorar
seus conhecimentos da linguagem.
Vamos utilizar agora, tags que podem ser muito úteis quando queremos exibir um certo destaque ao nosso
texto:
O HTML possui várias outras tags de formatação de texto, mas um pouco menos comuns. Antes de
trabalharmos as novas tags que acabamos de aprender, precisamos abrir um parênteses sobre como funciona a
diagramação do texto dentro da página.
As quebras de linhas e espaços inseridos atráves do uso das teclas ENTER ou SPACE do seu teclado não
terão efeito visual na página.
A linguagem HTML interpreta apenas um espaço entre cada palavra ou caracter ou outro elemento da
linguagem. Se quisermos inserir mais de um espaço temos uma tag especial para isso. É a tag . Cada
significa um espaço visual na página.
Assim acontece também com as quebras de linha. O uso de ENTER com a intenção de quebra de linha não
terá efeito na diagramação da página. Para fazer isso utilize a tag <br>. Cada <br> dentro do código
representará uma quebra de linha. Detalhe, esta tag não possui seu par de fechamento.
3 Formatando o Texto 10
$LOGOIMAGE 3 Formatando o Texto
Monte o exemplo a seguir e visualizem no seu web browser como texto está sendo apresentado. Salve o
arquivo, atribua o nome de conteudo.htm.
<HTML>
<HEAD>
<TITLE>Formatando o texto!!!</TITLE>
</HEAD>
<BODY>
<strong>HTML − <s>Sistemas Abertos</s></strong><br>
<br>
Esta é a página do Curso de HTML<sup>1</sup>.<br>
O <u>HTML</u> é a linguagem para a construção de páginas
para a <i>Internet</i>.<br>
<br>
<b>HTML</b>: Hypertext Markup Language
</BODY>
</HTML>
Observem o aninhamento de tags, sempre lembrando de finalizar cada uma delas, de acordo com a sua
exigência. Modifiquem o exemplo inserindooutras tags ao texto. Depois verifiquem o resultado.
• <hn></hn> − onde n é o nível do título ou sub−título, lembrando que o título de maior expressão é o
primeiro(<h1>), e o de menor, o último(<h6>).
Vejamos agora uma nova tag que posiciona um determinado elemento HTML, seja ele texto, imagem, tabela
ou qualquer outro, na região central da página.
Como estamos trabalhando com textos, nosso exemplo será baseado na centralização desse elemento. A tag
em questão é a:
Porém, tudo isso ainda é pouco se quisermos uma página mais apresentável. Parar escolher o tipo de fonte que
queremos utilizar, seu tamanho e suas cores,basta utilizar a tag <font>. Esta tag possui algumas propriedades,
exatamente aquelas que acabamos de mencionar. Vejamos alguns exemplos:
onde:
• face a propriedade face define qual é a fonte que queremos utilizar no nosso texto. Neste caso
utilizamos a fonte Verdana. Poderíamos especificar mais de uma, separando−as por uma vírgula. Caso
• size com esta propriedade informamos qual é o tamanho da fonte a ser utilizada no nosso texto. O
size varia de 1 a 7 e funciona de forma inversa aos tamanhos dos títulos. Aqui a menor fonte é a de
tamanho 1 e a maior, tamanho 7, seu tamanho real depende do browser .
• color como o nome sugere, podemos definir qual a cor assumida pelo texto, expressada
preferencialmente em código hexadecimal.
Se quisermos inserir uma certa identação ao texto, para que ele fique a uma certa distância do elemento que o
contém, no nosso caso a própria página, utilizamos a tag <blockquote>.
<blockquote>Texto identado</blockquote>
Coloque em prática o que aprendemos, modificando o exemplo anterior, de forma que ele se apresente mais
interessante aos olhos do usuário.
<HTML>
<HEAD>
<TITLE>Formatando o texto!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center><h3>HTML − Sistemas Abertos</h3></center>
<blockquote>
<font face="Verdana" size="3" color="#000000">
Esta é a página do
<font color="#FF0000">Curso de HTML</font>
<sup>1</sup>.<br>
O <u>HTML</u> é a linguagem para a
construção de páginas para a
<i>Internet</i>.<br>
<br>
<b>HTML</b>: Hypertext Markup Language
</font>
</blockquote>
</BODY>
</HTML>
Podemos visualizar a disposição do texto entre vários parágrafos, a principal função deles no Html será o
alinhamento do texto.
A tag <p> nos diz que o texto inserido dentro dela e de seu par de fechamento é um parágrafo. Este parágrafo
possui uma propriedade que é o alinhamento (align). O alinhamento pode ser centralizado (center), à esquerda
(left), à direita (right) e justificado (justify). Observe:
<p align="left">
Utilizando Parágrafos
</p>
<p align="justify">
O texto inserido aqui será apresentado com alinhamento
justificado. Podemos utilizar outros três tipos de alinhamento:
centralizado, utilizando o valor center para a propriedade
Porém, existe uma tag que imprime o texto na tela exatamente como o digitamos no código,respeitando todos
os espaços, tabulações e quebras de linha, sem que para isso seja necessário utilizar as tags descritas acima.
Estamos falando da tag <pre>. Esta tag não altera a formatação dos textos do documento, apenas preserva sua
diagramação de acordo com a forma que foi digitada.
− <pre>
− Ao utilizarmos a tag pre,
− podemos escrever da forma
− como queremos ver na tela,
− sem nos preocuparmos com espaços
− ou quebras
− de linha, ou
− tabulações.
− </pre>
A tag <hr> possui alguns parâmetros como comprimento, espessura, cor, sombra.
• align posiciona a linha de acordo com os valores dados: pode ser center, right ou left.
• width representa o comprimento da linha, podendo ser expressado em pixels ou porcentagem
relativa ao tamanho da tela ou ao elemento que contém a linha horizontal.
• size define a espessura da linha, neste caso especial, 10 pixels.
• color é a cor da linha, sempre dando preferência às cores expressas em código hexadecimal.
• noshade neste caso, queremos dizer não haverá sombreamento na linha. Caso o queiramos, basta
omitirmos esta propriedade.
3.8 Listas
O conceito de listas em HTML significa estar diagramando tópicos em formatos de marcadores. Temos três
tipos de listas: numeradas, não numeradas e uma lista de definição de termos. Vamos entender cada uma
delas:
Observação: a tag <li> deve estar contida dentro da tag <ol> ou <ul>, formando uma certa hierarquia na
declaração.
• Listas de definição de termos: esta lista trabalha com a idéia de que um certo termo textual possui um
significado que deve ser apresentado ao usuário. A tag que declara uma lista de definição de termos é
a <dl>. Cada termo é representado pela tag <dt> e o seu significado é dado pela tag <dd>.
Escreva o exercício abaixo para visualizar o funcionamento de cada uma das listas acima.
<HTML>
<HEAD>
<TITLE>Trabalhando com listas!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<p><b>Carreira Desenvolvedor Web − Programa</b></p>
<ol>
<li>Lógica de Programação</li>
<li>HTML</li>
<li>JavaScript</li>
<li>PHP</li>
<li>PHP Avançado</li>
</ol>
<p><b>Curso de HTML Total − Programa</b></p>
<ul>
<li>Dia 1 − Introdução</li>
<li>Dia 2 − Links e Tabelas</li>
<li>Dia 3 − Frames</li>
<li>Dia 4 − Formulários</li>
<li>Dia 5 − CSS</li>
</ul>
<dl>
<dt>HTML</dt>
<dd>Hypertext Markup Language</dd>
<dt>PHP</dt>
<dd>Hypertext Pre Processor</dd>
<dt>CSS</dt>
<dd>Cascade Style Sheets</dd>
</dl>
</BODY>
</HTML>
3.9 Marquee
Existem algumas tags HTML que são restritas a um browser específico. Isso quer dizer que, quando as
usamos podem não funcionar em alguns navegadores. A tag marquee é um desses casos.
Ao utilizarmos esta tag, estamos informando ao navegador, que o texto que ela contém terá um movimento de
deslizar pela tela. Atenção: a tag <marquee> só funciona no Internet Explorer.
• behavior a propriedade behavior pode ter três valores, admitindo que ainda não declaramos a
propriedade direction:
♦ alternate o texto começa o seu movimento da direita para a esquerda e continua até
alcançar o lado esquerdo, retornando à direita novamente em um vai e vem sem fim.
3.9 Marquee 14
$LOGOIMAGE 3 Formatando o Texto
♦ scroll o valor scroll para a propriedade behavior, indica que o movimento iniciará do lado
direito e atravessará o lado esquerdo, reaparecendo novamente no lado direito, realizando
aquilo que podemos dizer, ser uma trajetória circular.
♦ slide utilizando este valor, o texto iniciará seu movimento pela direita e será executado até
atingir a borda direita, onde deverá parar.
• direction esta propriedade define a direção que o texto deverá seguir quando iniciar seu movimento.
Temos quatro direções possíveis:
♦ down o texto deslizará de cima para baixo.
♦ left o movimento será da direita para a esquerda.
♦ right o movimento será da esquerda para a direita.
♦ up o texto deslizará de baixo para cima.
• width a propriedade width representa o comprimento da área de deslizamento. Pode ser expressa em
pixels ou porcentagem, neste caso, sempre em relação ao local que contiver o texto.
• height define a espessura ou a altura da área de deslizamento. Também pode ser expressa em pixels
ou porcentagem, porém é mais comum a primeira opção.
• bgcolor é a cor de fundo da área imaginária onde o texto estará deslizando. É recomendável a
utilização das cores em formato hexadecimal.
Antes de colocarmos em prática estes novos elementos, é de bom tom, apresentar−lhes um concorrente da tag
<marquee>. É necessário dizer que esta nova tag só terá efeitos no Netscape. Estamos falando da tag <blink>.
<blink>Texto piscando!!!</blink>
Como dissemos anteriormente, é muito importante utilizarmos fontes que sejam comuns e possam ser
encontradas facilmente. Esta observação serve também para os casos em que determinadas tags não se
aplicam de forma geral.
Ao utilizarmos um código padrão, estamos garantindo que nossas páginas poderão ser visualizadas
corretamente em qualquer navegador.
<HTML>
<HEAD>
<TITLE>Utilizando o Marquee!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>
<marquee behavior="scroll" direction="up" width="50%" height="60" bgcolor="#00000
<font face="Verdana" size="3"
color="#FFFF00">
Isto é um exemplo da tag Marquee
</font>
</marquee>
</center>
</BODY>
</HTML>
3.9 Marquee 15
$LOGOIMAGE 3 Formatando o Texto
As imagens devem ser utilizadas com muita cautela dentro de um site, porque podem tornar o acesso muito
demorado e cansativo aos olhos do usuário. Na programação atual, muitos dos efeitos produzidos pelas
imagens, foram cedendo espaço para a utilização das folhas de estilo (veremos em capítulo mais adiante), por
fazerem parte da programação e não sobrecarregar a visualização de páginas muito pesadas.
Com o recurso do uso de Tabelas, veremos em capítulo mais adiante, podemos fatiar uma imagem muito
grande de forma que ela seja carregada em partes.
Isso significa que todos os gráficos(imagens) que forem utilizadas nas nossas páginas deverão estar em um
desses formatos.
Veremos então, quais as propriedades que nos permitirão um maior controle deste elemento.
Vamos inserir nossa primeira imagem dentro da nossa página. Escrevam o código abaixo e visualizem no
navegador.
<HTML>
<HEAD>
<TITLE>Trabalhando com imagens!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<img src="logosa.gif">
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>Trabalhando com imagens!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC" background="img_back.gif">
<img src="logosa.gif">
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>Trabalhando com imagens!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC" background="img_back.gif">
<center><img src="logosa.gif"></center>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>Trabalhando com imagens!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC" background="img_back.gif">
<center>
<img src="logosa.gif" alt="Texto informativo">
</center>
</BODY>
</HTML>
Podemos então, criar thumbnails(imagens reduzidas) para facilitar o carregamento de todas as imagens e
ainda dar uma opção ao usuário, de ao clicar em cima da imagem que ele quer ver, essa imagem seja então
carregada no tamanho natural. Isso é feito com o auxílio das propriedades width e height.
A redução ou o aumento forçado de uma imagem pode causar uma certa deformação na mesma. Lembre−se
de reduzí−la ou aumentá−la proporcionalmente.
<HTML>
<HEAD>
<TITLE>Trabalhando com imagens!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC" background="img_back.gif">
<img src="logosa.gif" width="161" height="26"
alt="Sistemas Abertos"><br><br>
<img src="logosa.gif" width="161" height="26"
align="right">
Imagem à direita do texto<br><br>
<img src="logosa.gif" border="1">
Imagem com borda<br><br>
<img src="logosa.gif" width="161" height="26"
align="middle">
Texto alinhado ao meio<br><br>
</BODY>
</HTML>
• Selecione imagens no formato jpeg ou gif e substitua os nomes "figura" colocados nas tags <img>
• Combine diferentes atributos para as imagens
• Escreva os atributos de cada figura
<HTML>
<HEAD>
<TITLE>Utilizando figuras!</TITLE>
</HEAD>
<BODY bgcolor="#C0C0C0">
<img src="FIGURA">
<br><br>
<img src="FIGURA">
<br><br>
<img src="FIGURA">
<br><br>
<img src="FIGURA">
<br><br>
</BODY>
</HTML>
Os links são ligações de uma página para outra ou até mesmo um link para ela mesma. E essas páginas que
foram requisitadas por um link, também possuirá vários outros links que levarão a novas páginas e assim por
diante. É uma navegação que nunca acaba. Quanto mais navegamos, mais a Internet se agiganta.
Sua sintaxe básica é a seguinte, <a href=local de destino>Nome do link</a> onde href é a propriedade que
armazena a página de destino do usuário, e o Nome do link, o texto clicável que será a chamada do
link:Vamos praticar um pouco.
<HTML>
<HEAD>
<TITLE>Trabalhando com links!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>
Clique aqui para visitar o site da
<a href="http://www.sistemasabertos.com.br">
Sistemas Abertos
</a>
</center>
</BODY>
</HTML>
Observação: na propriedade href podemos ligar tanto páginas externas ao nosso servidor, como o exercício
acima faz, como também arquivos da nossa própria página e até arquivos para downloads. Veremos como isso
irá influir na declaração do código no tópico seguinte.
Os links absolutos servem para fazermos uma chamada a uma página que está fora do nosso site, como por
exemplo, o exercício anterior. Neste caso, é necessário especificarmos o link por completo, desde o protocolo
http. Se colocarmos apenas www.sistemasabertos.com.br, não estará correto.
Já quando o destino for uma página que pertence à nossa própria página, e estiver armazenado no próprio
servidor, basta que o nome do arquivo e seu caminho seja referenciado. Precisamos entender melhor como
funciona a nossa estrutura de diretórios.
5 Links 20
$LOGOIMAGE 5 Links
• /www/
♦ nosso_site/
◊ imagens/
◊ scripts/
◊ index.htm
◊ ex1.htm
◊ ex2.htm
◊ news/
⋅ news.htm
Queremos que nossa página principal, chamada de index.htm, tenha um link para a página ex2.htm. Observem
que eles estão no mesmo nível na árvore de diretórios. Neste caso, para criarmos o link, basta especificarmos
o nome do arquivo que queremos chamar. Veja a sintaxe a seguir (este código deverá ser colocado na página
index.htm):
Agora, suponhamos que a página ex2.htm tenha um link para a página news.htm. A página de origem e a
página de destino não estão no mesmo nível. Temos que acessar o diretório news para ver a página. É preciso
informar todo o caminho para o link.
Atenção: páginas web não trabalham com letras de unidades, como a sintaxe seguinte. Os servidores web não
aceitam essa declaração: c:\www\nosso_site\news\news.htm. Então como deve ser feito? Observem agora:
Da mesma forma, o caminho inverso também requer que o endereço seja declarado nestes termos. Agora, a
página news.htm, tem um link para a página ex1.htm. Utilizaremos um duplo ponto para informar que
estamos saindo do diretório news, e aí sim, poderemos acessar a página ex1.htm.
Vamos então criar alguns arquivos para podermos trabalhar com links. É recomendável salvar os arquivos
com os mesmos nomes utilizados aqui, para que o código seja executado com perfeição.
<HTML>
<HEAD>
<TITLE>Trabalhando com links!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<b><i><font face="Verdana" size="2">
Trabalhando com links − PÁGINA 1
</font></i></b>
<br><br>
<a href="pagina2.htm">Página 2</a><br>
<a href="links/pagina3.htm">Página 3</a><br>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>Trabalhando com links!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<b><i><font face="Verdana" size="2">
5 Links 21
$LOGOIMAGE 5 Links
Trabalhando com links − PÁGINA 2
</font></i></b>
<br><br>
<a href="pagina1.htm">Página 1</a><br>
<a href="links/pagina3.htm">Página 3</a><br>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>Trabalhando com links!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<b><i><font face="Verdana" size="2">
Trabalhando com links − PÁGINA 3
</font></i></b>
<br><br>
<a href="../pagina1.htm">Página 1</a><br>
<a href="../pagina2.htm">Página 2</a><br>
</BODY>
</HTML>
Abram no navegador o arquivo pagina1.htm e utilizem os links criados para acessar todas as páginas.
Essas seções específicas que são chamadas pelos links têm o nome de âncoras. Para utilizarmos as âncoras,
temos que aprender uma nova propriedade da tag <a>:
• name utilizamos esta propriedade para dar um nome à seção que queremos linkar. A âncora deve
ser criada da seguinte forma:
<a name="nome_secao">
Quando a âncora estiver criada, agora precisamos criar o link que a chamará. É só acrescentar o sinal # na
frente do nome da âncora:
Se for uma âncora de um outro arquivo, precisaremos chamar o arquivo e a âncora juntas:
<a href="pagina.htm#nome_secao">
Clique aqui para ir para a seção desejada
no arquivo pagina.htm
</a>
Vamos editar os exercícios pagina2.htm e pagina3.htm, que fizemos anteriormente. Teremos que acrescentar
conteúdo suficiente para que seja criado uma certa barra de rolagem e possamos navegar na própria página.
Para isso, acrescentem várias vezes a tag <br> ou texto, para forçar a situação desejada:
pagina2.htm
pagina3.htm
<HTML>
<HEAD>
<TITLE>Trabalhando com links!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<b><i><font face="Verdana" size="2">
Trabalhando com links − PÁGINA 3
</font></i></b>
<br><br>
<a href="#fim">Clique aqui para ir ao fim desta página</a>
<a href="../pagina2.htm#fim">Clique aqui para ir ao fim
do exercício pagina2.htm
</a>
<a href="../pagina1.htm">Página 1</a><br>
<a href="../pagina2.htm">Página 2</a><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<a name="fim">Fim da Página</a>
</BODY>
</HTML>
Ao inserirmos imagens ao invés do texto dentro da tag <a>, temos então, uma imagem que também é um link.
Vamos editar o arquivo pagina1.htm.
pagina1.htm
<HTML>
<HEAD>
<TITLE>Trabalhando com links!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<b><i><font face="Verdana" size="2">
Trabalhando com links − PÁGINA 1
</font></i></b>
<br><br>
<a href="pagina2.htm">Página 2</a><br>
<a href="links/pagina3.htm">Página 3</a><br><br>
Este tipo de sintaxe, embora muito utilizado, não é recomendável. Uma vez que a maioria das pessoas
utilizam webmail, este link apenas chamará o programa de e−mail e muitas vezes não estará configurado para
o envio de e−mails.
Atenção: este link não envia e−mails, apenas carrega o programa cliente de e−mails com o nome do
destinatário especificado na declaração da tag.
Vamos agora finalizar este capítulo colocando em prática este novo recurso que aprendemos. Podemos alterar
o arquivo pagina1.htm para que ele tenha um link para e−mail.
<HTML>
<HEAD>
<TITLE>Trabalhando com links!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<b><i><font face="Verdana" size="2">
Trabalhando com links − PÁGINA 1
</font></i></b>
<br><br>
<a href="pagina2.htm">Página 2</a><br>
<a href="links/pagina3.htm">Página 3</a><br><br>
<a href="mailto:atendimento@sistemasabertos.com.br">
Clique aqui para enviar um email
</a>
<br><br>
Clique na imagem para visitar a Sistemas Abertos<br><br>
<a href="http://www.sistemasabertos.com.br">
<img src="logosa.gif" border="0">
</a>
</BODY>
</HTML>
Em HTML, as tabelas são o único recurso para se obter uma boa diagramação e organização do conteúdo das
páginas. Com o seu uso, é possível promover a junção de qualquer conteúdo, sem que a página ocupe mais
espaço que o definido previamente, causando imperfeição na visualização.
Uma boa prática de programação é definir todas as margens da página com tamanho zero e incluir uma tabela
que servirá como container para todo o resto da página.
Essa tabela terá apenas uma célula. Se as margens estão zeradas e a tabela principal ocupa exatamente o
tamanho que queremos, então não fica difícil distribuir os objetos da forma desejada.Assim que a tabela
principal estiver desenhada, basta que imaginemos o resultado final e acrescentar o conteúdo, sempre dentro
de novas tabelas. Vamos entender melhor.
Devemos seguir uma certa hierarquia para não desenharmos uma tabela errada. Uma célula ou <td> deve estar
sempre dentro de uma linha ou <tr>, que por sua vez, deve ser descrita dentro de uma tabela ou <table>.
Podemos ter quantas linhas(<tr>) e quantas células(<td>) quanto desejarmos.
Podemos ainda ter tabelas dentro de outras tabelas, o que chamamos de aninhamento de tabelas, assim como
fazemos com as outras tags. Mas esta etapa será visualizada nos tópicos seguintes, quando estivermos mais a
vontade na criação de tabelas.
Vejam o exemplo abaixo. Nele iremos construir uma tabela simples, apenas para exercitar a sintaxe. Esta
tabela terá apenas um célula, conseqüentemente, uma linha e uma coluna.
<HTML>
<HEAD>
<TITLE>Trabalhando com tabelas!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<table border="1">
<tr>
<td>O conteúdo vem aqui!!!</td>
</tr>
</table>
</BODY>
</HTML>
6 Tabelas 25
$LOGOIMAGE 6 Tabelas
Notem que usamos a propriedade border com valor 1. Esse valor representa a espessura da borda da tabela. Se
utilizarmos o valor 0, estamos omitindo a borda, senda esta sua declaração padrão.
<HTML>
<HEAD>
<TITLE>Trabalhando com tabelas!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<table border="1">
<b>Campeonato de F1</b><br><br>
<tr>
<td><b>Classificação Final</b></td>
</tr>
<tr>
<td>1º − Ayrton Senna</td>
</tr>
<tr>
<td>2º − Nigel Mansell</td>
</tr>
<tr>
<td>3º − Alain Prost</td>
</tr>
</table>
</BODY>
</HTML>
Agora temos várias linhas na nossa tabela e uma célula por linha. Em cada célula temos um conteúdo.
Tentamos dar um aspecto de título na primeira célula, por isso usamos a tag de negrito para dar esse realce.
Queremos mostrar que o aninhamento de outras tags dentro da tabela é permitido e muito útil.
Mas podemos economizar algum código se utilizarmos tags específicas para título da tabela e título das
colunas. Substituam no exemplo anterior conforme o código abaixo.
<HTML>
<HEAD>
<TITLE>Trabalhando com tabelas!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<table border="1">
<caption>Campeonato de F1</caption>
<tr>
<th>Classificação Final</th>
</tr>
<tr>
<td>1º − Ayrton Senna</td>
</tr>
<tr>
<td>2º − Nigel Mansell</td>
</tr>
<tr>
<td>3º − Alain Prost</td>
</tr>
</table>
</BODY>
</HTML>
A tag <caption> exibe o título da tabela. E onde quisermos utilizar títulos para as colunas, trocamos o <td>
pelo <th>.
• border determina uma borda na tabela em pixels. Caso esse atributo não apareça, a tabela não terá
bordas.
• width especifica a largura da tabela. Pode ser expressa em pixels ou em porcentagem, em relação a
onde a tabela está contida.
• height define a altura da tabela, também podendo utilizar pixels e porcentagem como medidas.
• cellpading com esta propriedade, dizemos qual a distância entre as bordas da célula e o conteúdo
devem ficar.
• cellspacing o cellspacing define qual a distância entre cada uma das células da tabela.
• align − define o alinhamento horizontal da tabela. Pode ser à esquerda, left, centralizado, center, e
alinhada à direita, right.
• valign controla como será o alinhamento vertical da tabela em relação à página web. Pode ser no
alto, top, no centro, middle ou no final, bottom.
• bgcolor a propriedade bgcolor, configura a cor de fundo da tabela, de preferência utilizando o
código hexadecimal de cores.
• bordercolor aqui temos a cor da borda da tabela, seguindo a mesma declaração das cores de fundo.
• background se quisermos inserir uma imagem como fundo da tabela, então devemos utilizar esta
propriedade.
• rules finalmente, podemos especificar se queremos mostrar as bordas internas das linhas ou das
colunas, ou se ambas ou nenhuma.
Para mostrarmos todas as bordas internas, utilizamos o valor all. Se não quisermos exibir nenhuma borda
interna, o valor a ser fixado é o none. Para mostrarmos apenas as linhas, declaramos o atributo rules como
rows. E se quisermos apenas as linhas das colunas, utilizamos cols.Escrevam o código do exemplo abaixo e
visualizem no navegador.
<HTML>
<HEAD>
<TITLE>Trabalhando com tabelas!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<table border="1" width="30%" align="center"
cellspacing="5" bordercolor="#000000" rules="rows">
<caption>BOLETIM ESCOLAR</caption>
<tr>
<th>Alunos</th>
<th>Notas</th>
</tr>
<tr>
<td>Fulano</td>
<td>9.5</td>
</tr>
<tr>
<td>Cicrano</td>
<td>5.7</td>
</tr>
<tr>
<td>Beltrano</td>
<td>7.8</td>
</tr>
</table>
</BODY>
</HTML>
Observem agora que temos duas células por linha, embora o atributo rules não permita a visualização das
bordas internas das colunas.
<HTML>
<HEAD>
<TITLE>Trabalhando com tabelas!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<table border="1" width="30%" align="center"
cellspacing="5" bordercolor="#000000" rules="rows">
<caption>BOLETIM ESCOLAR</caption>
<tr>
<th>Alunos</th>
<th>Notas</th>
</tr>
<tr>
<td>Fulano</td>
<td align="center" bgcolor="#0099FF">9.5</td>
</tr>
<tr>
<td>Cicrano</td>
<td align="center" bgcolor="#CC3333">5.7</td>
</tr>
<tr>
<td>Beltrano</td>
<td align="center" bgcolor="#0099FF">7.8</td>
</tr>
</table>
</BODY>
</HTML>
Contudo não é uma tarefa difícil, basta que façamos passo a passo para não haver uma anomalia na tabela.
Imaginem uma tabela com duas linhas e duas células, como na figura abaixo:
<HTML>
<HEAD>
<TITLE>Trabalhando com tabelas!!!</TITLE>
</HEAD>
<BODY>
<table border="1" width="10%" align="center">
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</BODY>
</HTML>
Como nossa tabela possui duas linhas e duas células, temos obrigatoriamente que ter duas tags <td>, células,
para cada tag <tr>, linhas, que serão duas ao final.
A tag , que define um espaço visual, dentro de cada célula, representa um preenchimento imaginário
para a célula, não possuindo nenhum efeito, podendo inclusive, ser omitida do código. Foi colocada apenas
por questão de didática.
Agora, queremos que nossa tabela tenha mais um célula por linha, conforme a nova figura:
Para obtermos esta nova tabela, precisamos inserir uma nova coluna. Essa nova coluna, assim como as outras
é possuidora de duas células, uma por linha. Então, basta acrescentarmos um novo <td> (célula), em cada um
dos <tr> (linha), que possuimos.
<HTML>
<HEAD>
<TITLE>Trabalhando com tabelas!!!</TITLE>
</HEAD>
<BODY>
<table border="1" width="10%" align="center">
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
Agora que aprendemos a inserir uma nova coluna, então vamos aprender a inserir uma nova linha. Como
sabemos, as linhas da nossa tabela, possuem três células cada. Para obtermos uma tabela com três linhas e três
colunas, partindo do exemplo anterior, basta acrescentarmos um novo <tr> (linha), e dentro dele, inserirmos
três <td>, que representa o número de células que vamos precisar.
Para finalizarmos este tópico, vamos dar um pouco de vida à nossa tabela, definindo a propriedade bgcolor de
cada célula com uma cor diferente. O fica a critério do leitor a escolha dessas cores, porém, vamos utilizar
algumas, para que o resultado final seja obtido corretamente. Então, mãos à obra.
<HTML>
<HEAD>
<TITLE>Trabalhando com tabelas!!!</TITLE>
</HEAD>
<BODY>
<table border="1" width="10%" align="center">
<tr>
<td bgcolor="#FF0000"> </td>
<td bgcolor="#000000"> </td>
<td bgcolor="#00FF33"> </td>
</tr>
<tr>
<td bgcolor="#FF6600"> </td>
<td> </td>
<td bgcolor="#3333FF"> </td>
</tr>
<tr>
<td bgcolor="#FF99CC"> </td>
<td bgcolor="#990066"> </td>
<td bgcolor="#FFFF00"> </td>
</tr>
</table>
</BODY>
</HTML>
• por colunas a mesclagem por colunas acontece quando as células que queremos mesclar são
colunas de uma mesma linha. Neste caso, utlizaremos a propriedade colspan indicando quantas
células serão mescladas.
• por linhas a mesclagem por linhas deverá ser usada quando quisermos unir células que ocupam
várias linhas. Para mesclarmos as células de várias linhas, definimos a propriedade rowspan com o
número de células desejadas.
Em princípio, criaremos uma tabela com três linhas e três colunas. Podemos utilizar o exemplo anterior, mas
antes removam as propriedades de cor de fundo de cada célula, apenas para melhorar a visualização.
Alterem também a propriedade width para 30%. O resultado deve se parecer com isto:
Primeiramente vamos mesclar as três primeiras células da linha 1, onde iremos colocar um texto qualquer que,
ao final do exemplo, ocupará toda a linha conforme a figura abaixo:
células mescladas
<HTML>
<HEAD>
<TITLE>Trabalhando com tabelas!!!</TITLE>
</HEAD>
<BODY>
<table border="1" width="30%" align="center">
<tr>
<td colspan="3" align="center">
células mescladas
</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</BODY>
</HTML>
Vamos acompanhar o raciocínio. Queríamos mesclar as três células da primeira linha, tornando−a apenas uma
célula única. Então definimos a propriedade colspan da primeira célula com o valor 3, que representa o
número de células que serão mescladas.
Ao fazermos isso, nossa linha conterá apenas uma célula e não precisaremos mais escrever o código para as
outras duas que existiam antes.
As outras linhas continuam com três células cada uma, ou seja, três <td> para cada <tr>.
3 células
2
células
A primeira linha não será modificada. As 2ª e 3ª células das 2ª e 3ª linhas também não serão alteradas. Apenas
a 1ª célula da 2ª linha será mesclada com a 1ª célula da 3ª linha, que deixará de existir, tornando−se uma única
célula. Vamos ao código:
<HTML>
<HEAD>
<TITLE>Trabalhando com tabelas!!!</TITLE>
</HEAD>
<BODY>
<table border="1" width="30%" align="center">
<tr>
<td colspan="3" align="center">3 células</td>
</tr>
<tr>
<td rowspan="2" align="center">2 células</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</BODY>
</HTML>
Portanto, se o objetivo é colocar uma nova tabela dentro de outra tabela, essa nova tabela deve também estar
dentro de uma célula. Observem a seguinte imagem:
Agora, o código:
<HTML>
<HEAD>
Após esse fatiamento, utilizamos as tabelas para juntar a imagem novamente para que ela tenha a aparência
normal.
O detalhe é colocarmos o espaçamento entre as células com valor 0 e depois colocar cada pedaço da imagem
dentro de uma célula.
<HTML>
<HEAD>
<TITLE>Trabalhando com tabelas!!!</TITLE>
</HEAD>
<BODY>
<table border="0" align="center" cellspacing="0">
<tr>
<td>
<img src="pordosol1.gif">
</td>
</tr>
<tr>
<td>
<img src="pordosol2.gif">
</td>
</tr>
<tr>
<td>
<img src="pordosol3.gif">
</td>
</tr>
<tr>
<td>
<img src="pordosol4.gif">
</td>
</tr>
</table>
Os formulários são essenciais para que haja uma interação entre o usuário que acessa nossa página. Isso quer
dizer que os elementos declarados dentro da tag <form>, são a principal fonte de feedback ou entrada de
dados da máquina cliente, que serão armazenados no servidor ou enviados por email para o administrador do
site.
• action esta propriedade define qual programa ou script deverá analisar e processar os dados que
serão enviados para o servidor.
• method os métodos de envio podem ser dois:
♦ get a diferença básica entre esses dois métodos é o fato de que, ao usarmos o método get,
todos os dados a serem enviados serão passados diretamente na URL. Embora ligeiramente
codificados, esses dados são passíveis de entendimento pelo usuário. Caso os dados possuam
certa discrição, torna−se incompatível o seu uso.
♦ post já o método post, submete os dados de forma oculta, não alterando a URL. Deve ser
utilizado em casos de autenticação de usuários, consultas de bancos de dados e onde haja
tráfego de informações que não devem se tornar públicas.
• enctype com esta propriedade informamos qual é o tipo de mídia ou dado que está transitando pelos
nossos formulários. O tipo mais comum e default é o application/x−www−form−urlencoded,
responsável pela transmissão de dados típicos de formulários, ou melhor, pelos valores que esses
elementos estão assumindo. Há uma excessão no caso de transmissão de arquivos, como em um
upload. Neste caso, o enctype a ser usado é o multipart/form−data. E se os dados forem enviados
diretamente por e−mail, o valor a ser utilizado é o text/plain.
• name é a propriedade que define o nome de acesso ao nosso objeto em questão, o formulário.
Nos tópicos a seguir, veremos a declaração e uma implementação progressiva do uso de formulários.
7 Formulários 35
$LOGOIMAGE 7 Formulários
• text o objeto text é uma caixa de texto, limitando o tamanho do texto a 255 caracteres ou de acordo
com a propriedade maxlength.
• password campo texto destinado à inserção de valores de senha. É igual ao objeto text, porém o
texto digitado pelo usuário aparece em forma de asteriscos ou marcadores para ocultar a senha.
• textarea também permite a entrada de texto, porém de forma livre, sem um limite de caracteres
pré−estabelecido.
• hidden o objeto hidden armazena um determinado valor, pré−estabelecido ou não, de forma oculta
ao usuário.
• checkbox a checkbox permite que o usuário decida se quer ou não aceitar uma determinada cláusula
estabelecida na página, como receber e−mails de propaganda ou newsletters.
• radio os botões de rádio permitem que o usuário escolha apenas uma entre várias alternativas
exibidas na página, como por exemplo o campo sexo em um cadastro qualquer. Sabemos que é uma
escolha de uma única resposta.
• select o objeto select se parece muito com as combo box de outras linguagens de programação. É
dado ao usuário uma lista com várias opções e ele pode escolher apenas uma.
• select multiple a sintaxe é igual ao objeto select, exceto pela cláusula multiple, que permitirá ao
usuário selecionar uma ou mais opções, utilizando as teclas shift ou ctrl para a seleção múltipla.
• image muitas páginas utilizam imagens como botões. Isso poderia ser feito com o auxílio de uma
linguagem de script cliente, como o JavaScript. Porém o HTML fornece o objeto image, que tem a
mesma funcionalidade.
7 Formulários 36
$LOGOIMAGE 7 Formulários
• file o objeto file somente será aproveitável com o auxílio de uma outra linguagem que poderá tratar
o dado que foi submetido, no caso um arquivo. Este objeto é composto de uma caixa de texto e um
botão, que ao ser clicado abre a árvore de diretórios da máquina do usuário.
• submit este é um botão que já vem com uma tarefa específica: enviar todos os dados para o
programa ou script que irá tratar esses dados, que foi definido na propriedade action da tag <form>.
• reset este também é um botão com tarefa pré−definida: limpar os valores de todos os objetos
incluídos no formulário.
• button este último botão não tem atividade pré−programada. A programação dele depende de outra
linguagem de script, como o JavaScript. Essa programação dependerá do objetivo desejado, como por
exemplo processar uma determinada informação.
<HTML>
<HEAD>
<TITLE>Trabalhando com formulários!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>Currículo ON−Line</center><br><br>
<form action="" method="get" enctype="multipart/form−data">
</form>
</BODY>
</HTML>
Estaremos utilizando a propriedade enctype com valor multipart/form−data apenas para fins didáticos, já que
não faremos nenhum envio de formulário, conforme consta na propriedade action do formulário. Após a
visualização deste exemplo, você ainda não poderá ver nada do formulário, porque ainda não declaramos
nenhum objeto. Faremos isso nos tópicos seguintes.
Vamos então inserir algumas caixas de texto para obter os dados do usuário, como nome e endereço.
<HTML>
<HEAD>
Vamos entender agora a declaração e as propriedades das caixas de texto. As caixas de texto são tags <input>
com tipo text:
• type define o tipo do objeto input, neste caso, uma caixa de texto(text).
• name é o nome pelo qual outras linguagens acessarão o valor deste objeto.
• size define um tamanho para o objeto, baseado em números de caracteres desejados.
• maxlength limita o tamanho do texto, conforme o valor estabelecido.
O exemplo será alterado agora, para que o usuário possa inserir uma senha de acesso ao seu currículo.
Estamos falando do objeto password. O password também é um objeto input, só que com o tipo password.
Veja a declaração:
<HTML>
<HEAD>
<TITLE>Trabalhando com formulários!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>Currículo ON−Line</center><br><br>
<form action="" method="get" enctype="multipart/form−data">
<table width="50%" align="center" border="0">
<tr>
<td align="right">Nome:</td>
<td>
<input type="text" name="nome" size="40" maxlength="50">
</td>
</tr>
<tr>
<td align="right">Endereço:</td>
<td>
<input type="text" name="ende" size="40" maxlength="100">
</td>
</tr>
As propriedades de password são as mesmas do objeto text. Todos os objetos tem ainda uma propriedade que
contém o valor do objeto. Nas caixas de texto não é comum usá−la, pois espera−se que o usuário insira algum
texto. Somente em casos particulares seu uso pode ser útil, como por exemplo induzir a entrada com um
determinado formato.
Vamos perguntar ao usuário se ele quer que seus dados sejam públicos.
<HTML>
<HEAD>
<TITLE>Trabalhando com formulários!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>Currículo ON−Line</center><br><br>
<form action="" method="get" enctype="multipart/form−data">
<table width="50%" align="center" border="0">
.
.
.
<tr>
<td align="right"> </td>
<td>
<input type="checkbox" name="publicar" value="sim" checked>
Quero que meu currículo seja público.
</td>
</tr>
</table>
</form>
</BODY>
</HTML>
Perguntaremos o sexo do usuário utilizando o objeto de escolha radio. Sua sintaxe de declaração é a seguinte:
Vejam o código:
<HTML>
<HEAD>
<TITLE>Trabalhando com formulários!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>Currículo ON−Line</center><br><br>
<form action="" method="get" enctype="multipart/form−data">
<table width="50%" align="center" border="0">
.
.
.
<tr>
<td align="right">Sexo:</td>
<td>
<input type="radio" name="sexo" value="Masculino">Masculino<br>
<input type="radio" name="sexo" value="Feminino">Feminino
</td>
</tr>
</table>
</form>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>Trabalhando com formulários!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>Currículo ON−Line</center><br><br>
<form action="" method="get" enctype="multipart/form−data">
<table width="50%" align="center" border="0">
.
.
.
<tr>
<td align="right">Escolaridade:</td>
<td>
Vamos entender a declaração deste objeto. Cada opção que o usuário terá deverá estar dentro das tags
<select></select>. Estamos falando das tags
• name é o nome pelo qual este objeto será acessado por outras linguagens de programação.
• value como termos várias opções para o usuário, é conveniente que cada uma delas tenha um valor
diferente. Após a submissão deste formulário teremos um objeto select com apenas um valor, aquele
que foi selecionado pelo usuário.
Queremos que o usuário também informe quais as tecnologias que ele domina. Como podem ser várias,
precisamos de um objeto que possa permitir a seleção de uma ou mais opções. Este objeto é o mesmo select
visto no exemplo anterior, mas agora, com uma cláusula multiple, que habilitará este objeto para que seja
possível um seleção múltipla com auxílio das teclas shift e ctrl.
<HTML>
<HEAD>
<TITLE>Trabalhando com formulários!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>Currículo ON−Line</center><br><br>
<form action="" method="get" enctype="multipart/form−data">
<table width="50%" align="center" border="0">
.
.
.
<tr>
<td align="right">Tecnologia:</td>
<td>
<select name="tecnologias" multiple size="3">
<option value="php">PHP</option>
<option value="html">HTML</option>
<option value="js">Javascript</option>
<option value="java">Java</option>
</select>
</td>
</tr>
</table>
</form>
</BODY>
</HTML>
Como vimos, a declaração é exatamente igual ao objeto select, exceto pela cláusula multiple. Vejamos que
propriedades este objeto possui:
• name nome pelo qual outros linguagens de programação poderão acessar este objeto.
• size define quantas opções serão mostradas ao usuário sem criar barras de rolagem no objeto. Caso
o número de opções seja superior ao informado, uma barra de rolagem é automaticamente inserida.
• value são os valores que serão transmitidos após a submissão. Como podem ser vários, este objeto
Vamos começar com o botão de submissão. O input de tipo submit, é o responsável pelo envio dos dados para
o script ou programa de processamento. Observe a sintaxe:
<HTML>
<HEAD>
<TITLE>Trabalhando com formulários!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>Currículo ON−Line</center><br><br>
<form action="" method="get" enctype="multipart/form−data">
<table width="50%" align="center" border="0">
.
.
.
<tr>
<td align="center" colspan="2">
<input type="submit" name="enviar" value="Enviar">
</td>
</tr>
</table>
</form>
</BODY>
</HTML>
• type é o tipo deste input, que é submit, ou seja, um botão que tem a função de submeter o
formulário.
• name nome pelo qual este objeto será acessado por outras linguagens de programação.
• value é o valor que será exibido no botão para informar ao usuário, qual a função do mesmo.
Aproveitaremos o código acima para adicionar um botão que tem a tarefa de limpar todos os campos que
estão declarados dentro das tags form></form>.
<HTML>
<HEAD>
<TITLE>Trabalhando com formulários!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>Currículo ON−Line</center><br><br>
<form action="" method="get" enctype="multipart/form−data">
<table width="50%" align="center" border="0">
.
.
.
As propriedades para o botão reset são as mesmas do botão submit. Apenas o tipo de input é diferente: como a
função deste botão é limpar o conteúdo dos campos do formulário, então seu tipo é reset.
Não vamos inserir um input do tipo button, porque não teríamos funcionalidade para ele, uma vez que não
possuímos conhecimento para acrescentar−lhe uma funcionalidade. Suas propriedades também são idênticas
aos botões submit e reset, apenas seu tipo será button. Vejamos apenas sua sintaxe de declaração:
Como já utilizamos botões no exemplo acima, vamos entender apenas a sintaxe de declaração e as
propriedades deste objeto:
Como ainda não aprendemos a processar os valores recebidos do usuário, trabalharemos apenas com a
declaração e propriedades deste formulário:
Este é um input de tipo file. A propriedade name permitirá que o programa ou script que irá receber este
arquivo saiba qual objeto está acessando. Entretanto, a propriedade mais importante, o value, só será definida
quando o usuário selecionar um arquivo para enviá−lo.
O entendimento deste capítulo será de fundamental importância quando vocês estiverem aprendendo as
linguagens de script que tanto falamos.
A página acima na verdade é composta por outras duas páginas que representam efetivamente o conteúdo. A
página principal é chamada de frameset.
O frameset é quem define o formato das molduras e quais páginas serão carregadas em cada uma delas.
Quando usamos frames, omitimos a tag <body> do código, uma vez que o frameset não tem conteúdo e sim
suas páginas internas.
8 Frames 45
$LOGOIMAGE 8 Frames
De fato, causam uma certa poluição visual. Eis a questão: usar ou não usar frames?
Hoje observamos algumas tendências no desenvolvimento de sites. Muitos sites preferem chamar várias
páginas independentes, carregando novamente cada parte da página que poderia estar fixa no layout. Isso pode
ser ligeiramente mais lento, mas sua interferência fica próxima da nulidade. Porém, há casos em que não há
como fugir das molduras. Alguns sites, têm como única solução o seu uso.
De forma alguma, estamos desmerecendo esta funcionalidade. Existem várias formas de se contornar as barras
de rolagem. Com o uso de folhas de estilo, por exemplo, pode−se dar novas formas e cores às barras de
rolagem, suavizando o seu aparecimento.
Queremos dar todas as possibilidades para que você possa estar escolhendo a melhor hora e o melhor layout
para o seu site.
<HTML>
<HEAD>
<TITLE>Trabalhando com frames!!!</TITLE>
</HEAD>
<FRAMESET cols="20%, *">
<frame src="pag1.htm" name="pagina1">
<frame src="pag2.htm" name="pagina2">
</FRAMESET>
</HTML>
Com a declaração <frameset> estamos informando o uso das molduras. A propriedade cols da forma como foi
declarada, indica que serão duas molduras verticais ocupando a página. A primeira moldura será carregada
com a página pag1.htm e ocupará 20% do frameset. A segunda moldura será carregada com a página
pag2.htm e ocupará todo o resto do frameset, conforme a declaração do asterisco(*).
A tag <frame> se refere a cada uma das páginas que foram estabelecidas no frameset. O parâmetro src deve
ser preenchido com o nome da página que se deseja carregar, juntamente com o caminho completo, caso esta
página não se encontre no mesmo diretório do frameset. A propriedade name, será o nome com que cada
frame será referenciado através de links e outras linguagens que venham acessar esta página.
• rows define se teremos a página dividida em linhas. O seu valor pode ser declarado em pixels ou
porcentagem e devem ser separados por vírgula.
• cols semelhante ao rows, porém divide a página em colunas.
• frameborder define se o frameset terá ou não bordas, caracterizando as divisões da página. Pode
conter os valores: "yes" ou "no".
• border o valor aqui atribuído mostrará a espessura da borda.
• bordercolor aqui especificamos a cor que a borda deverá assumir, de preferência utilizando cores
no formato hexadecimal.
Surpresa! Duas páginas não puderam ser localizadas. É preciso criar os arquivos mencionados: pag1.htm e
pag2.htm. Então, crie−os sem código algum, apenas para o navegador poder chamar o frameset corretamente.
Executem novamente e observem o resultado.
Agora sim temos três páginas carregadas. O frameset que gerencia os frames, que são cada uma das páginas
que estamos vendo.
<HTML>
<HEAD>
<TITLE>Trabalhando com frames!!!</TITLE>
</HEAD>
<FRAMESET rows="20%, *">
<frame src="pag1.htm" name="pagina1">
<frame src="pag2.htm" name="pagina2">
</FRAMESET>
</HTML>
Será que podemos utilizar linhas e colunas para moldar nossa página? A resposta é afirmativa, basta
combinarmos as propriedades cols e rows como no exemplo abaixo:
<HTML>
<HEAD>
<TITLE>Trabalhando com frames!!!</TITLE>
</HEAD>
<FRAMESET rows="20%, *">
<frame src="pag1.htm" name="pagina1">
<FRAMESET cols="20%,*">
<frame src="pag2.htm" name="pagina2">
<frame src="pag3.htm" name="pagina3">
</FRAMESET>
</FRAMESET>
</HTML>
O exemplo acima é um exemplo especial. Nele definimos que nossa página será constituída de três frames. O
primeiro frameset informa que serão duas linhas, ocupando a primeira 20%, e a segunda, todo o resto da
página. Declaramos o primeiro frame normalmente e logo em seguinda, ao invés de declararmos o segundo
frame, dizemos que ele será um novo frameset, agora dividido em duas colunas. A primeira coluna, ocupará
20% do segundo frameset e será carregada com a página pag2.htm. A segunda coluna terá todo o resto do
segundo fremeset para carregar a página pag3.htm.
Vamos criar aqui três arquivos. Tomaremos o exemplo do primeiro frameset que estudamos:
<HTML>
<HEAD>
<TITLE>Trabalhando com frames!!!</TITLE>
</HEAD>
<FRAMESET cols="20%, *" frameborder="yes" border="1">
<frame src="pag1.htm" name="pagina1">
<frame src="pag2.htm" name="pagina2">
</FRAMESET>
</HTML>
<HTML>
<HEAD>
<TITLE>Trabalhando com frames!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<a href="http://www.globo.com">Globo</a><br><br>
<a href="http://www.pop.com.br">POP</a><br>
<a href="http://www.bol.com.br">BOL</a><br>
<a href="http://www.terra.com.br">Terra</a><br>
<a href="http://www.yahoo.com.br">Yahoo</a><br>
<a href="http://www.google.com.br">Google</a><br>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>Trabalhando com frames!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<br><br>
<center>
<font face="Verdana" color="#0000FF" size="3">
Nos tópicos seguinte aprenderemos como carregar os links ao lado, aqui, neste fra
</font>
</center>
</BODY>
</HTML>
Visualizem agora no navegador. Lembre−se de abrir o arquivo do frameset. É ele quem se encarregará de
chamar os frames internos.
Aproveitando o exemplo que acabamos de fazer, cliquem nos vários links que criamos. Nenhum deles foi
carregado no frame da direita, como queríamos. Precisamos informar isso. O faremos através da propriedade
target da tag <a>, responsável pela criação dos links.
• target é propriedade da tag <a> que armazena o local de destino da página que foi referenciada. O
seu valor deve ser preenchido com os nomes que demos aos frames na declaração do frameset. Se
queremos carregar as páginas no frame da direita, veremos na declaração do frameset qual o seu
nome.
Alterem o código do arquivo pag1.htm para que os links passem a suportar esta propriedade.
<HTML>
<HEAD>
<TITLE>Trabalhando com frames!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<a href="http://www.globo.com" target="pagina1">Globo</a>
<br>
<a href="http://www.pop.com.br" target="pagina1">POP</a>
<br>
<a href="http://www.bol.com.br" target="pagina1">BOL</a>
<br>
<a href="http://www.terra.com.br" target="pagina1">Terra</a>
<br>
<a href="http://www.yahoo.com.br" target="pagina1">Yahoo</a>
<br>
<a href="http://www.google.com" target="pagina1">Google</a>
<br>
</BODY>
</HTML>
Como queremos carregar todas essas páginas no frame da direita, devemos referenciar seu nome na
propriedade target dos links. Agora verifique se realmente essas páginas estão sendo carregadas no seu devido
lugar.
Se quisermos que outra janela se abra quando cliquemos, basta inserirmos na propriedade target um nome que
não foi declarado, porém o mais utilizado é escrever _blank. Utilizando _top, o link será aberto na
mesma janela dos frames. Por default, se não especificarmos nada, a página será carregada de onde ela foi
chamada ou seja, se o link estiver na pagina1, ele será aberto na própria pagina1, seria a mesma coisa de
atribuirmos o valor _self na propriedade target dos links.
Alterem o arquivo pag2.htm com o seguinte código. No parâmetro src, criem um novo arquivo sem nenhum
código..
<HTML>
<HEAD>
<TITLE>Trabalhando com iframes!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<br><br>
<center>
Observem que agora o target dos links está com o valor do name do iframe.
Sons ou músicas, vídeos e animações em Flash são amplamente utilizadas para a disseminação de conteúdo na
rede. Embora seu uso acrescente um certo peso no carregamento das páginas, se feito com simplicidade e
adequando−o aos objetivos do site, torna−se uma solução interessante.
Os arquivos de som e vídeo são, geralmente, muito grandes, o que torna demorado o seu carregamento no
navegador do usuário. Por isso é comum em algumas páginas, que esses arquivos não sejam carregados
automaticamente, e sim, através de um link específico, para que o internauta escolha se quer ou não acessá−lo.
A inserção desses elementos em uma página é relativamente simples e neste capítulo aprenderemos como
faze−la.
O que faremos aqui será apenas a declaração de um elemento que fará o carregamento e o controle de
execução de um arquivo de mídia. A tag para esta tarefa é a <embed>. Ela possui algumas propriedades que
iremos entender agora:
• src aqui declaramos o arquivo de mídia, neste caso específico de áudio, que será carregado.
• autostart podemos definir com esta propriedade se o arquivo será executado automaticamente pela
página logo após o seu carregamento. Em caso afirmativo, declaramos como true o valor desta
propriedade, caso contrário, o usuário terá a opção de iniciar a execução quando ele quiser. O valor
então desta propriedade seria false.
• loop define quantas vezes a execução da mídia será repetida.
• hidden define se o controle de execução será visível ao usuário. Se for visível, o valor de hidden
será false, se não for visível, true. Lembre−se de colocar a propriedade autostart como true, caso
deseje um controle invisível.
• width se o controle for vísivel, podemos definir qual será o tamanho que ele ocupará na tela. Aqui
definimos sua largura, em pixels, de preferência.
• height da mesma forma que a propriedade anterior, definimos a altura do controle de execução com
esta propriedade.
Procurem o arquivo flourish.mid e copiem−no para o seu diretório de trabalho para iniciarmos o exercício a
seguir.
<HTML>
<HEAD>
<TITLE>Trabalhando com áudio!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>
<embed src="flourish.mid" autostart="false" hidden="false" width="300" height="15
</center>
9 Recursos de Multimídia 51
$LOGOIMAGE 9 Recursos de Multimídia
</BODY>
</HTML>
No exercício acima definimos um elemento de áudio, que deverá ser inicializado pelo usuário. Observem o
status false da propriedade autostart. Controles de play, pause, stop e até volume serão exibidos para ele
decidir como quer que seja executado, uma vez que a propriedade hidden também está com status false.
Vamos mudar um pouco a declaração de código para obtermos uma execução no momento em que a página
for carregada. Os controles também não estarão disponíveis para o usuário.
<HTML>
<HEAD>
<TITLE>Trabalhando com áudio!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>
<embed src="flourish.mid" autostart="true" loop="2" hidden="true">
</center>
</BODY>
</HTML>
Agora também definimos que esta mídia será executada duas vezes. Fizemos isso através da propriedade loop.
O uso de vídeos também tem suas limitações quanto ao formato. Deve−se utilizar formatos que possam ser
lidos na web. Neste caso o formato padrão é o mpeg. Se forem utilizados formatos como avi e mov, deverá
existir na máquina cliente, programas que possam ler e executar estes arquivos.
A tag para o uso de vídeos pela rede é a mesma que usamos para a inserção de sons: <embed>. As
propriedades também são idênticas, exceto pelo fato de não podermos atribuir à propriedade hidden o valor
true. Caso façamos isso, estaremos ocultando o controle de execução e conseqüentemente não veríamos as
imagens.
Copiem o arquivo clock.avi para a pasta de trabalho que estejam utilizando e escrevam o exercício abaixo:
<HTML>
<HEAD>
<TITLE>Trabalhando com áudio!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>
<embed src="clock.avi" autostart="true">
</center>
</BODY>
</HTML>
Caso as propriedades de tamanho sejam omitidas, prevalecerá o tamanho original do arquivo de vídeo.
Cuidado para não definir estas propriedades com tamanho inferior ao original.
De fato, o Flash é muito atrativo, mas caímos novamente no detalhe do peso da página. Assim como sons e
vídeos, ele pode se tornar uma inconveniência, caso não seja usado corretamente. A sintaxe é idêntica ao uso
dos elementos multimídia que usamos até o momento.
Copiem o arquivo banner01.swf para o seu diretório de trabalho e codifiquem o exercício abaixo:
<HTML>
<HEAD>
<TITLE>Trabalhando com áudio!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>
<embed src="banner01.swf" width="458" height="95">
</center>
</BODY>
</HTML>
Quando utilizamos flash em nossas páginas, é necessário que o usuário possua instalado em sua máguina o
plugin para a execução das animações. É conveniente acrescentar à tag <embed> propriedade que armazenará
o local de download e o solicitará automaticamente caso não seja identificado sua presença na máquina
cliente. Esta propriedade é a pluginspage e deve conter a url de donwload do plugin.
<HTML>
<HEAD>
<TITLE>Trabalhando com áudio!!!</TITLE>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>
<embed src="banner01.swf" width="458" height="95" pluginspage="http://www.macrome
download/index.cgi?P1_Prod_Version=ShockwaveFlash">
</center>
</BODY>
</HTML>
Tudo isso que acabamos de aprender é muito interessante e com certeza prendem a atenção dos usuários. Mas
deve−se analisar a necessidade de uso desses elementos, porque páginas muito pesadas − que demoram a ser
carregadas pelo browser − costumam ser dispensadas antes mesmo de terem seu conteúdo completamente
visualizado na tela.
Faça suas páginas com simplicidade e criatividade, procurando utilizar todos os recurso disponíveis desde que
eles se encaixem da forma mais correta no objetivo e público alvo do seu site.
A partir do momento que identificamos como o código deverá se aplicar ao design da página, o uso das folhas
de estilo irá tornar extremamente fácil nossa programação.
Imaginem que todos os parágrafos da nossa página utilizem como fonte Verdana e o tamanho dessa fonte seja
12 pixels. Imaginem também que temos muitos parágrafos nesta página. Bom, pelo que aprendemos até agora,
teríamos que declarar para cada parágrafo uma tag <p> e além disso aplicar a formatação que queremos em
cada um deles com a tag <font>. Isso seria um grande trabalho, não?
Agora, imaginem se pudéssemos dizer ao browser que todas as tags <p>, ao serem declaradas, já assumissem
a formatação desejada?
Seria excelente! As folhas de estilo podem fazer esse trabalho para nós. Assim identificamos uma primeira
vantagem no seu uso: precisamos programar menos. E se um determinado momento, acharmos que o tamanho
da fonte está muito pequeno e tenhamos que mudá−lo !
Isso seria muito trabalhoso se nosso código fosse somente HTML. Teríamos que ir em cada tag <font> e
alterar o tamanho. Mas lembrem−se que estamos utilizando CSS e declaramos isso apenas uma vez. Então
precisamos apenas alterar o estilo que foi estabelecido? Isso mesmo. A manutenção do site se tornará muito
mais fácil e rápida de ser feita.
• estilos inline a declaração que é feita dentro da própria tag HTML é chamada inline. Seu efeito
estará restrito a essa única tag.
• estilos vinculados ou externos neste caso, um arquivo contendo toda a formatação das folhas de
estilo é criado e podemos chamá−lo de qualquer página do nosso site. Este arquivo deverá ter
extensão .css e é a declaração mais utilizada, pois centraliza todos os estilos do site.
• estilos incorporados os estilos incorporados são declarados no corpo do documento HTML e seu
efeito figura apenas na página que foi declarado. Sua declaração é feita dentro do escopo da tag
<head>.
elemento {
p1: v1;
p2: v2;
O elemento é a tag ou objeto HTML no qual o estilo será aplicado. Veremos que esse elemento poderá ser
ainda uma classe que poderá ser aplicada em várias tags ou objetos HTML. P1 e p2 são as propriedades que
serão aplicadas no elemento declarado. E v1 e v2, os valores que essas propriedades deverão assumir ao
elemento.
Observem a declaração do estilo imaginado na introdução do capítulo. Queremos que todos os parágrafos
tenham fonte Verdana e tamanho 12px.
p {
font−family: Verdana;
font−size : 12px;
}
No exemplo acima, estamos dizendo que, onde for inserida uma tag <p>, de parágrafo, no nosso código, ela
deverá assumir a formatação especificada na declaração do CSS, que é fonte Verdana e tamanho 12px.
Voltando ainda na imaginação do exemplo, achamos que esta fonte precisar ser um pouco maior. Vejam que
simples. Se esse estilo será assumido por todos os parágrafos, basta que eu altere sua declaração, inclusive
acrescentar novos efeitos:
p {
font−family: Verdana;
font−size : 16px;
color : #0000FF;
}
Precisamos ainda informar que iremos utilizar CSS dentro das páginas. Faremos isso através da tag <style>.
Vamos à prática. Seguindo nosso primeiro exemplo, codifique o exercício abaixo e visualizem o resultado no
navegador.
<HTML>
<HEAD>
<TITLE>Trabalhando com CSS!!!</TITLE>
<style type="text/css">
p {
font−family: Verdana;
font−size : 16px;
color : #0000FF;
}
</style>
</HEAD>
<BODY bgcolor="#FFFFCC">
<p>
Estes parágrafos estão pré−formatados de acordo com
Observem no navegador que os nossos parágrafos estão com a cor azul, fonte e tamanhos diferentes do
padrão, sem sequer termos inserido nenhuma tag <font>. Tudo isso foi definido através do CSS no cabeçalho
da página.
No exercício, existem também três expressões em negrito, mas esteticamente, não ficaram muito bem
destacadas.
Vamos inserir um novo estilo para que onde houver uma tag de negrito, o texto assuma a cor vermelha, sem
perder é claro, a formatação do estilo de parágrafo.
<HTML>
<HEAD>
<TITLE>Trabalhando com CSS!!!</TITLE>
<style type="text/css">
p {
font−family : Verdana;
font−size : 16px;
color : #0000FF;
}
b { color : #FF0000 }
</style>
</HEAD>
<BODY bgcolor="#FFFFCC">
<p>
Estes parágrafos estão pré−formatados de acordo com
as regras de estilo definidas no cabeçalho da
página. Todos os parágrafos possuirão essa mesma
formatação.
</p>
<p>
As <b>folhas de estilo</b> permitem uma codificação
mais organizada, o que reflete no <b>tempo de
programação</b> e <b>manutenção do site</b>,
economizando tempo nestas tarefas.
</p>
</BODY>
</HTML>
<HTML>
<HEAD>
A declaração dos estilos inline, como vimos, deve estar dentro da tag. No exemplo acima, mudamos o cursor
do mouse (seta) com o valor hand para que quando o mouse passe em cima da imagem, seja substituido pelo
cursor de link (imagem da mãozinha).
Observem a declaração do estilo inline. Deve ser feita com se fosse uma propriedade da tag, mas sempre
seguindo a sintaxe padrão de declaração de estilos: propriedade e valor.
Simplesmente colocamos os estilos no código e chamamos este arquivo da página que precisará dele.
Vamos criar um arquivo com o nome estilo.css e acrescentar alguns estilos. Digitem exatamente como está
abaixo:
td {
background−color: #FFFFCC;
}
input {
border : 2px solid #0000FF;
font−family : Verdana;
font−size : 9px;
color : #000099;
}
O primeiro estilo, diz que, onde houver uma célula de uma tabela, ela deverá ter a cor de background com o
valor #FFFFCC. Já o estilo da tag input, diz que qualquer input, neste caso, é preferível uma caixa de texto,
terá borda de 2 pixels com o formato solid e cor #0000FF. O texto digitado dentro desta caixa de texto será
com a fonte Verdana, tamanho 9 pixels e cor #000099.
Para fazermos uma chamada a este arquivo de estilos, devemos declarar da seguinte forma:
<HTML>
<HEAD>
<TITLE>Trabalhando com CSS!!!</TITLE>
<link rel="stylesheet" href="estilo.css" type="text/css">
</HEAD>
• Acrescente novas linhas à tabela e também outras caixas de texto, para certificar que o estilo esteja
sendo aplicado corretamente em todos os elementos.
Existem algumas variações de declaração para o uso dessas tags pessoais. Podemos criar vários estilos para
uma mesma tag HTML. Isso é muito útil quando utilizamos um único arquivo de estilos para todo o site.
Temos os estilos que são padrão a todas as páginas e outros estilos que podem ser aplicados apenas em
algumas, porém eles estão se referindo a uma mesma estrutura do HTML.
Para iniciarmos nossos trabalhos, precisamos entender como esses estilos serão aplicados nos elementos, se
existem vários estilos para um único elemento.
Primeiramente, devemos informar que a aplicação dos estilos está baseada no conceito de classes. Uma classe
funcionará como um atributo da tag que desejamos alterar com as configurações de CSS.
Esse atributo é o class. O valor que lhe será atribuído será o nome da classe declarada. No exercício a seguir,
estaremos utilizando vários links com um determinado estilo. Logo em seguida, criaremos uma variação do
estilo utilizado e o atribuíremos somente em alguns dos links existentes.
Observem: teremos dois estilos diferentes, aplicados em em um mesmo elemento HTML, ao mesmo tempo.
<HTML>
<HEAD>
<TITLE>Trabalhando com CSS!!!</TITLE>
<style type="text/css">
a {
font−family : Verdana;
font−size : 12px;
color : #0000FF;
text−decoration : none;
}
a.links {
font−family : Verdana;
font−size : 12px;
color : #FF0000; −
text−decoration : none;
}
p {
text−align : center;
}
</style>
</HEAD>
A declaração de uma classe, neste caso, deve ser feita com o nome da tag que se deseja aplicar o estilo,
seguida de um ponto . e o nome da class, que é definido pelo programador. No exemplo acima, temos o
estilo da tag <a> e uma classe para esta mesma tag <a>, que é a.links.
Você deve estar se perguntando: todos os links estão iguais? Correto, ainda não dissemos ao programa que ele
deve usar a classe que declaramos. Acrescentem ao link do site Terra o seguinte código, de forma que ele se
pareça com o seguinte:
Agora visualize novamente a página e verá que este link assumiu as características do estilo definido pela
classe links da tag <a>.
No exercício de estilos vinculados, criamos um estilo para o elemento input, com o intuito de aplicá−lo em
caixas de texto.
Sabemos que os elementos input têm vários tipos: caixas de texto, checkbox, botões entre outros. Se
tivéssemos declarados outros objetos input, além das caixas de texto, o resultado poderia não ser o esperado.
Então como declarar um estilo somente para as caixas de texto se os objetos input podem ser de vários tipos?
A resposta é simples: com o uso de classes.
Mas ainda assim se criarmos uma classe para o elemento input, assim como fizemos na tag , esse estilo será
aplicado a todas as variações do input.
Correto, a diferença estará na forma de declaração da classe. Não mais ligaremos a classe ao objeto. A
declaração da classe será feita da seguinte forma:
Para exercitarmos essas novas possibilidades, abram o exercício Currículo Online, que fizemos no capítulo 7.
Insiram no cabeçalho do exercício, os seguintes estilos:
<style type="text/css">
.texto {
font−family : Verdana;
font−size : 11px;
color : #333333;
text−align : right;
}
.cxtexto {
font−family : Verdana;
font−size : 11px;
color : #000066;
Ao declararmos estas classes, queremos que os texto informativos assumam as características da classe texto.
Para isso devemos aplicar essa classe nas células ou tags <td> que possuam os textos.
A classe cxtexto deverá ser aplicada somente nas caixas de texto, ou seja, em todos os elementos input de tipo
text e password. Os outros elementos input deverão permanecer da forma original e não devem conter essa
declaração.
Agora, vamos aplicar essas classes nos lugares desejados. Observe as linhas destacadas:
− <HTML>
− <HEAD>
− <TITLE>Trabalhando com formulários!!!</TITLE>
− <style type="text/css">
− .texto {
− font−family : Verdana;
− font−size : 11px;
− color : #333333;
− text−align : right;
− }
− .texto2 {
− font−family : Verdana;
− font−size : 11px;
− color : #333333;
− }
− .cxtexto {
− font−family : Verdana;
− font−size : 11px;
− color : #000066;
− width : 200px;
− border : 2px groove;
− }
− select {
− font−family : Verdana;
− font−size : 11px;
− color : #000066;
− width : 200px;
− }
− </style>
− </HEAD>
− <BODY bgcolor="#FFFFCC">
* <center class="texto">Currículo ON−Line</center><br><br>
− <form action="" method="get" enctype="multipart/form−data">
− <table width="50%" align="center" border="0">
− <tr>
* <td align="right" class="texto">Nome:</td>
− <td>
* <input type="text" name="nome" size="40" maxlength="50" class="cxtexto">
− </td>
− </tr>
− <tr>
* <td align="right" class="texto">Endereço:</td>
− <td>
* <input type="text" name="ende" size="40" maxlength="100" class="cxtexto">
− </td>
− </tr>
− <tr>
* <td align="right" class="texto">Senha:</td>
As caixas de seleção ou <select> assumem o estilo declarado sem que haja necessidade de uso de classe, uma
vez que usamos a própria tag para a declaração.
Estamos falando das tags <div> e <span>. A tag <span> é comumente utilizada para dar características a
pequenos trechos de texto ou alguns caracteres.
Após sua declaração, a classe responsável pela caracterização do texto ou o uso de estilos diretamente na
tag(estilos inline), deverá ser atribuído à tag <span>. Como esta tag envolve o texto que queremos aplicar o
estilo, todas as características declaradas serão automaticamente repassadas ao texto.
Observe o exercício abaixo. Declaramos uma classe de nome texto e definimos que o tamanho da fonte deverá
ser de 2pt ou 2 pontos. Nosso estilo ainda converterá todos os caracteres que estiverem escritos em minúsculas
para maiúsculas. A propriedade que fará essa conversão é a text−transform, e o valor para esta tarefa é o
uppercase.
Essa propriedade também suporta os seguintes valores: capitalize, que ao ser aplicado transforma as primeiras
letras de todas as palavras para maiúsculas. E ainda, lowercase, que muda para minúsculas todos os caracteres
do texto estilizado.
<HTML>
<HEAD>
<TITLE>Trabalhando com CSS!!!</TITLE>
<style type="text/css">
.texto {
font−size : 10pt;
text−transform : uppercase;
}
</style>
</HEAD>
<BODY bgcolor="#FFFFCC">
<span class="texto">
O texto aqui impresso deverá estar todo em LETRAS MAIÚSCULAS.
</span>
</BODY>
</HTML>
O exemplo acima usou como solução, uma classe com propriedade font−weight com valor bold. A tag <div>
tem funcionalidade idêntica à tag <span>. A sintaxe de declaração e o objetivo final também são os mesmos,
porém convencionou−se que a tag <div> deveria ser utilizada para estilizar seqüências definidas de textos ou
elementos, blocos inteiros que possuiriam as mesmas características.
A princípio, você pode usar qualquer uma delas da forma que desejar, tanto em pequenos trechos de
caracteres como em blocos completos, mas é muito interessante que seu código possa seguir os padrões
definidos por programadores mais experientes da rede.
<HTML>
<HEAD>
<TITLE>Trabalhando com CSS!!!</TITLE>
<style type="text/css">
.texto {
width : 370px;
border−style : dashed;
border−width : thin;
border−color : #FF0000;
}
</style>
</HEAD>
<BODY bgcolor="#FFFFCC">
<center>
<div class="texto">
A tag div serve para a aplicação de estilos
CSS em blocos de texto que deverão assumir
as mesmas características, como esse que
acabamos de escrever.
</div>
<center>
</BODY>
</HTML>
A tag <div> também pode ser utilizada para formatar uma determinada área da página. Essa área estilizada
será chamada de layer.
As layers ou camadas, são muito utilizadas para a construção de menus, banners, e também quando há a
necessidade de se estipular uma área da página que obedecerá a certas interações do usuário.
No exemplo a seguir, construiremos uma layer que, ao ser visualizada, terá o aspecto de um menu. A
princípio, ela estará com um estilo invisível e somente quando o usuário passar o mouse em cima de um
botão, ela se tornará visível. Porém, para conseguirmos este efeito, teremos que aplicar um pequeno código
Javascript, mas você não deve se preocupar com isso neste curso.
O objetivo deste exercício será apenas apresentar ao leitor, possibilidades no uso das folhas de estilo.
Vamos ao exemplo:
<HTML>
<HEAD>
<TITLE>Trabalhando com CSS!!!</TITLE>
<style type="text/css">
.botao {
background−color : #0000FF;
color : #FFFFFF;
}
</style>
</HEAD>
<BODY bgcolor="#FFFFCC">
<div id="menu" style="position: absolute;
visibility: hidden; left: 104px; top: 11px;
Declaramos uma classe botao que foi aplicada ao input de tipo button. Isso significa que o botão terá cor de
fundo #0000FF e cor da fonte #FFFFFF.
Definimos um div que terá o aspecto de uma layer. O estilo foi inserido diretamente na tag <div> e contempla
as seguintes características:
• position com esta propriedade definimos que a layer não ocupará nenhum espaço dentro da página.
Funcionará como se estivesse flutuando sobre os outros elementos.
• visibility define se a layer será ou não visível ao usuário.
• left posição da margem esquerda ao início da visualização da layer.
• top posição da margem superior ao início da visualização da layer.
• width largura da layer.
• height altura da layer.
• border borda da layer.
• background−color cor de fundo da layer.
O menu só deverá aparecer quando o usuário passar com o mouse por sobre o botão, por isso sua propriedade
visibility está com valor hidden(oculta).
Declaramos um botão para servir de ponto de referência da layer, e ser o objeto de inicialização do menu
através do uso de Javascript. O código onMouseOver utilizado é da linguagem Javascript. Esse código é
correspondente ao movimento do mouse sobre o objeto onde foi declarado. Quando esse evento ocorre, então
o código declarado é executado. No caso do exercício, atribui−se o valor visible a layer e ela se tornará
visível.
A tabela a seguir ilustra alguns dos estilos utilizados neste livro e alguns outros muito úteis:
Estilo Valores
Verdana, Arial, Helvética, Times New Roman, Courier
font−family tipo da fonte
entre outras.
Pode ser expresso em pontos(pt), pixels(px), polegadas(in),
font−size tamanho da fonte
centímetros(cm), milímetros(mm) entre outros.
Deve ser utilizado preferencialmente, o código hexadecimal
color cor da fonte
de cores.
font−style estilo da fonte Pode ser italic, oblique ou normal.
font−weight peso da fonte Pode ser: bold, bolder, normal, ligther entre outros.
text−decoration decoração da fonte Pode ser: none, underline, overline, line−through, blink.
text−transform define o caso da fonte Pode ser capitalize, uppercase, lowercase ou none.
background−color define a cor de fundo Utilizar preferencialmente código hexadecimal de cores
text−align alinhamento do texto Pode ser left, right, center ou justify.
Pode ser expresso em pontos(pt), pixels(px), polegadas(in),
width largura de um elemento
centímetros(cm), milímetros(mm) entre outros.
top distância da margem superior ao Pode ser expresso em pontos(pt), pixels(px), polegadas(in),
elemento que foi estilizado centímetros(cm), milímetros(mm) entre outros.
list−style−type define o estilo dos Pode ser: circle, disc, square, decimal, lower−roman,
marcadores de uma lista upper−roman, lower−alpha, upper−alpha e none.
As propriedades descritas acima são apenas algumas das mais comuns. Com certeza, são inúmeras e quanto
mais conhecê−las, maior o número de possibilidades teremos.
Como vimos no decorrer deste capítulo, as folhas de estilo se tornaram essenciais no mundo da construção de
páginas para a web. Seu uso constante produz resultados dos mais simples até os mais refinados estilos.
Além de tudo, gera economia na codificação e facilita imensamente a manutenção e o gerenciamento das
páginas.