Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
AVISO DE RESPONSABILIDADE As informaes contidas neste material de treinamento so distribudas NO ESTADO EM QUE SE ENCONTRAM, sem qualquer garantia, expressa ou implcita. Embora todas as precaues tenham sido tomadas na preparao deste material, a Processor Alfamdia LTDA. no tem qualquer responsabilidade sobre qualquer pessoa ou entidade com respeito responsabilidade, perda ou danos causados, ou alegadamente causados, direta ou indiretamente, pelas instrues contidas neste material ou pelo software de computador e produtos de hardware aqui descritos.
01/08/2007 Alfamdia Prow LTDA Av. Cristvo Colombo 1496 Porto Alegre, RS (51) 3073-2100 http://www.alfamidia.com.br
UNIDADE 1 1.1 1.2 1.3 1.3.1 1.3.2 1.3.3 1.4 1.5 1.5.1 1.5.2 1.6 1.6.1 1.6.2 UNIDADE 2 2.1 2.2 2.3 2.4 2.5 UNIDADE 3 3.1 3.2 3.3 3.3.1 3.3.2 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 UNIDADE 4
ARQUITETURA DE APLICAES WEB................................................................................................. 7 INTERNET UM POUCO DE HISTRIA ............................................................................................... 7 PGINAS ESTTICAS ....................................................................................................................... 7 INTRODUO A CLIENT SIDE SCRIPTS E SERVER SIDE SCRIPTS ...................................................... 8 Client Side Scripts e Server Side Scripts ................................................................................... 8 Client Side scripts Javascript ................................................................................................. 8 Server Side Scripts ASP, ASP.NET, PHP e JSP ..................................................................... 9 AMBIENTE DE DESENVOLVIMENTO ............................................................................................... 11 SERVIDORES WEB E DE APLICAO ............................................................................................. 11 O que um Servidor WEB? ..................................................................................................... 11 O que um servidor de aplicaes? ........................................................................................ 13 NAVEGADORES ............................................................................................................................. 13 Padronizao e protocolos de acesso ...................................................................................... 14 HTTPS (HyperText Transfer Protocol Secure) ....................................................................... 14 INTRODUO AO HTML E WEB STANDARDS.................................................................................. 16 A LINGUAGEM HTML E A INTERNET ............................................................................................ 16 AS LIMITAES DO HTML ........................................................................................................... 16 OS WEB STANDARDS .................................................................................................................... 17 W3C ............................................................................................................................................. 17 IMPORTNCIA DOS WEB STANDARDS ........................................................................................... 17 HTML RECURSOS BSICOS ............................................................................................................. 19 POR QUE ENTENDER O HTML? ..................................................................................................... 19 CONCEITOS BSICOS DE HTML ................................................................................................... 19 TAGS BSICAS .............................................................................................................................. 20 Exemplo de HTML com Tags Bsicas ..................................................................................... 20 Familiarizando-se com o HTML ............................................................................................. 21 FORMATAO DE TEXTOS ............................................................................................................ 21 Exemplo de Ttulos e Subttulos ............................................................................................... 22 Exemplo de Alinhamentos ....................................................................................................... 23 Exemplo de Formatao de Textos.......................................................................................... 25 CORES EM HTML ......................................................................................................................... 26 Utilizando o Vermelho ............................................................................................................. 27 Utilizando o Vermelho com Verde ........................................................................................... 28 INCLUINDO IMAGENS EM UMA PGINA ............................................................................................ 29
4.1 FAZENDO REFERNCIA A OUTROS DOCUMENTOS ......................................................................... 29 4.1.1 Referncia Relativa ................................................................................................................. 29 4.1.2 Referncia Absoluta................................................................................................................. 29 4.1.3 Referncia Externa .................................................................................................................. 30
Web, HTML, CSS e JavaScript 4.2 INCLUINDO IMAGENS COM A TAG IMG ......................................................................................... 30 4.2.1 Incluindo Imagens Exemplo 1 .............................................................................................. 30 4.2.2 Alinhando Imagens Exemplo2 .............................................................................................. 31 4.3 INCLUINDO IMAGENS NO FUNDO DA PGINA TAG BODY ......................................................... 33 4.3.1 Fundo com Padronagem ......................................................................................................... 34 UNIDADE 5 CRIANDO LINKS .................................................................................................................................... 35
5.1 HIPERLINKS................................................................................................................................... 35 5.1.1 Pgina com Links Exemplo 1 ............................................................................................... 35 UNIDADE 6 CRIANDO TABELAS .............................................................................................................................. 37
6.1 TABELAS E LAYOUT DE PGINAS .................................................................................................. 37 6.2 CONSTRUINDO UMA TABELA ........................................................................................................ 37 6.2.1 Exemplo de uma Tabela Simples ............................................................................................. 38 6.2.2 Tabelas Mais Sofisticadas ....................................................................................................... 39 6.2.3 Construindo uma Tabela mais Sofisticada .............................................................................. 43 6.2.4 Integrando Recursos em Tabelas............................................................................................. 44 UNIDADE 7 7.1 7.2 7.3 7.4 7.5 7.6 UNIDADE 8 8.1 8.2 8.3 8.4 8.5 8.6 8.6.1 8.6.2 8.6.3 8.7 8.7.1 8.7.2 8.7.3 8.7.4 8.8 UNIDADE 9 9.1 9.2 9.3 9.4 9.5 9.6 FORMULRIOS ...................................................................................................................................... 45 INTRODUO A FORMULRIOS ..................................................................................................... 45 CRIANDO UM FORMULRIO .......................................................................................................... 45 UM PRIMEIRO FORMULRIO ......................................................................................................... 46 FORMULRIOS COM DIFERENTES TIPOS DO INPUT ...................................................................... 47 ENTRADA DE VRIAS LINHAS DE TEXTO - TEXTAREA ................................................................ 49 MENUS COM OPES - SELECT ................................................................................................... 50 INTRODUO A ESTILOS CSS ............................................................................................................ 52 O CSS ........................................................................................................................................... 52 BENEFCIOS EM UTILIZAR CSS ..................................................................................................... 52 CSS PARA SEPARAR CONTEDO DA APRESENTAO ................................................................... 53 PGINAS COM SEMNTICA CORRETA ........................................................................................... 54 SINTAXE DO CSS .......................................................................................................................... 55 APLICANDO ESTILOS A UMA PGINA ............................................................................................. 56 Aplicando estilos a toda a pgina HTML ................................................................................ 56 Aplicando estilos apenas uma tag HTML especfica ............................................................ 56 Utilizando um arquivo de estilos externo ................................................................................ 57 FORMAS DE UTILIZAO DOS SELETORES ..................................................................................... 57 Aplicando estilos uma tag: ................................................................................................... 57 Definindo estilos para mais um grupo de tags ........................................................................ 58 Definindo uma classe de estilos ............................................................................................... 59 Definindo um ID de estilos ...................................................................................................... 59 EXERCCIOS .................................................................................................................................. 62 CSS NA PRTICA .................................................................................................................................. 63 UTILIZANDO CSS EM SITUAES REAIS ....................................................................................... 63 CRIANDO TABELAS COM ESTILOS CSS ......................................................................................... 63 DADOS EXIBIDOS EM UMA TABELA COM CSS............................................................................... 63 ALTERANDO O ESTILO CSS .......................................................................................................... 65 DADOS E FORMULRIOS COM CSS................................................................................................ 66 EXERCCIOS COM CSS................................................................................................................... 68 INTRODUO AO JAVASCRIPT ..................................................................................................... 69
UNIDADE 10
Web, HTML, CSS e JavaScript 10.1 10.2 O QUE JAVASCRIPT?................................................................................................................... 69 ONDE OS SCRIPT PODEM SER EXECUTADOS ? ................................................................................ 69 NOES BSICAS DE JAVASCRIPT ............................................................................................. 70
UNIDADE 11
11.1 UTILIZANDO COMENTRIOS ......................................................................................................... 70 11.2 TIPOS DE DADOS............................................................................................................................ 70 11.2.1 Tipos de dados Primitivos (por valor) ................................................................................ 71 11.2.2 Tipos de dados Compostos (por referncia) ....................................................................... 71 11.2.3 Tipos de dados especiais (undefined e Null) ....................................................................... 71 11.3 VARIVEIS .................................................................................................................................... 72 11.4 OPERADORES ................................................................................................................................ 73 11.5 A ESTRUTURA DE UM SCRIPT JAVASCRIPT .................................................................................... 74 11.6 CRIANDO UM SCRIPT EM UMA PGINA HTML............................................................................... 75 11.7 ESTRUTURAS DE TESTE ................................................................................................................. 75 11.8 ESTRUTURAS DE REPETIO ......................................................................................................... 77 11.8.1 While ................................................................................................................................... 77 11.8.2 For ...................................................................................................................................... 77 UNIDADE 12 UTILIZANDO FUNES ................................................................................................................... 79
12.1 UTILIZANDO FUNES NO JAVASCRIPT......................................................................................... 79 12.2 AS FUNES INTRNSECAS DO JAVASCRIPT ................................................................................... 79 12.2.1 A funo Eval() ................................................................................................................... 79 12.2.2 A funo parseInt() e parseFloat() ..................................................................................... 80 12.2.3 Funo escape() e unescape() ............................................................................................ 81 12.2.4 A funo isNaN() ................................................................................................................ 81 12.3 FUNES CRIADAS PELO USURIO ................................................................................................ 81 UNIDADE 13 UTILIZANDO OBJETOS ................................................................................................................... 83
13.1 OBJETOS INTRNSECOS .................................................................................................................. 83 13.1.1 O Objeto Date ..................................................................................................................... 83 13.1.2 O Objeto Array ................................................................................................................... 84 13.1.3 O Objeto Math .................................................................................................................... 85 13.1.4 O Objeto String ................................................................................................................... 86 13.2 OBJETOS CRIADOS PELO USURIO ................................................................................................. 86 13.3 MTODOS...................................................................................................................................... 87 13.3.1 Mtodos estticos................................................................................................................ 87 13.3.2 A declarao this ............................................................................................................ 87 13.3.3 A declarao with ............................................................................................................ 87 UNIDADE 14 CONHECENDO OBJECTS DOM ...................................................................................................... 89
14.1 INTRODUO A DOM: .................................................................................................................. 89 14.2 O QUE HTML DOM? ................................................................................................................ 89 14.3 QUANDO DEVEMOS USAR JAVASCRIPT ......................................................................................... 89 14.4 AS DIVISES DE DOM ................................................................................................................... 89 14.5 ALTERAR CONTEDO COM HTML DOM ...................................................................................... 89 14.6 DOCUMENT OBJECTS .................................................................................................................... 90 14.7 PROPRIEDADES DO OBJETO BODY .................................................................................................. 90 14.8 OBJETO FORM ............................................................................................................................... 91 14.8.1 Atributos do Form............................................................................................................... 93 14.8.2 Mtodos de um FORM ........................................................................................................ 93 14.8.3 Eventos de um form ............................................................................................................ 93 14.8.4 Elements de um FORM................................................................................................... 94
Web, HTML, CSS e JavaScript 14.9 MTODO GETELEMENTBYID......................................................................................................... 94 14.10 OBJETO FRAMESET ....................................................................................................................... 95 14.10.1 Atributos do Objeto frameset .............................................................................................. 96 14.10.2 Metodos de Objeto Frameset .............................................................................................. 96 14.10.3 Eventos de objeto de um Frameset ..................................................................................... 96 UNIDADE 15 MANIPULANDO FORMS COM DOM ................................................................................................ 98
15.1 TUTORIAL ..................................................................................................................................... 98 15.2 MAPEANDO EVENTOS DE UM FORMULRIO ................................................................................. 102 15.2.1 Mapeando Eventos atravs da tag script .......................................................................... 102 15.2.2 Mapeando eventos atravs de funes .............................................................................. 103 15.2.3 Mapeamento de eventos atravs de atribuio ................................................................. 104 15.3 EXTRAINDO INFORMAES DOS FORMULRIOS HTML .............................................................. 105 15.3.1 Buscando informaes de formulrios no nomeados ..................................................... 105 15.3.2 Buscando informaes de formulrios nomeados ............................................................ 106 15.4 VALIDANDO INFORMAES NO FORMULRIO ............................................................................. 107 15.4.1 Validando informaes de caixas de texto ........................................................................ 107 15.4.2 Validando listas de seleo simples e mltipla (Combo e ListBox) .................................. 108 15.4.3 Validando caixas de escolha simples e mltipla (RadioButton e CheckBox) ................... 110 15.4.4 Criando uma funo para mascaras de campos ............................................................... 112 15.5 VALIDAO COM REGULAR EXPRESSIONS (REGEX)................................................................... 114 UNIDADE 16 7.1 UNIDADE 17 UNIDADE 18 OBJETO WINDOW .......................................................................................................................... 115 - ANEXO 1 PRINCIPAIS TAGS ....................................................................................................... 119 - ANEXO 2 FRAMES ....................................................................................................................... 124
18.1 ESTRUTURA BSICA - FRAMESET................................................................................................ 124 18.1.1 Atributos de Frameset ....................................................................................................... 125 18.1.2 Frame................................................................................................................................ 130
Solicitao HTTP 4. O navegador interpreta o HTML e exibe a pgina para o usurio. Ele tambm interpreta algumas linguagens de script, como JavaScript.
Tratando-se de pginas web, os client-side scripts tero de ser processados por um browser. O maior problema de se utilizar este tipo de artifcio em uma aplicao a incompatibilidade de interpretao da linguagem entre os browsers. O Microsoft Internet Explorer, por exemplo, capaz de interpretar o Visual Basic Script, porm o Netscape no o faz sem o auxlio de um plug in (que foi desenvolvido por terceiros). H ainda o problema de verses muito antigas de navegadores, que no conseguem interpretar nenhum script. Em grande parte das situaes, no possvel exigir que o usurio final disponha de determinado produto para acessar a aplicao. Portanto importante pesar todos estes fatores ao planejar alguma aplicao com client-side scripts. A linguagem script mais indicada para se construir client-side scripts o JavaScript, devido a sua compatibilidade com os diversos browsers (Internet Explorer, FireFox, Opera, Safri, etc). Os scripts client-side so geralmente indicados para: menus dinmicos movimento e trocas dinmicas de imagens e textos validao de campos de formulrios sem acesso ao servidor efeitos na pgina de acordo com o movimento do mouse
A cada acesso a uma pgina, estes scripts geram dinamicamente uma pgina que enviada para o browser. Desta forma, diferente de scripts no cliente, estes nunca so vistos pelo cliente, no podendo ser copiados. Os scripts server-side so geralmente indicados para: acesso a bancos de dados criao de pginas em tempo real lojas virtuais com carrinhos de compra sistemas de cadastro e consulta de dados sites de busca na Internet
Requisio Normal
10
11
Computador Cliente: Computador utilizado pelo usurio. Computador Servidor: Computador utilizado para armazenar sites, sistemas, arquivos e contedos em geral.
Resumo: Servidor WEB um programa de computador que responde requisies. Exemplo: quando digito www.alfamidia.com.br na barra de endereos do navegador e teclo ENTER, o meu computador localiza o servidor onde est hospedado o site, que responde a minha solicitao. Os servidores mais comuns so o IIS da Microsoft, o Apache da Apache Software Foundation e o TomCat da Apache Jakarta Project. Abaixo, listamos alguns servidores existentes no mercado: Apache HTTP Server BadBlue Boa Caudium, uma derivao do Roxen Covalent Enterprise Ready Server, baseado no Apache HTTP Server Fnord IBM HTTP Server (baseado no Apache HTTP Server), antigo Domino Go Webserver Internet Information Services (IIS) da Microsoft, incluso no Windows Light HTTP Server (lighttpd) NaviServer Oracle HTTP Server, baseado no Apache HTTP Server Roxen TomCat da Apache Jakarta Project. thttpd da ACME Laboratories Zeus Web Server
12
1.5.2.2 NET
Na plataforma Microsoft .NET, o servidor de aplicao no visto como um elemento separado. O sistema operacional Windows 2003 contm a infraestrutura necessria para servir aplicaes, como o IIS, COM+ e Framework .NET.
1.6 Navegadores
Um dos aspectos mais visados pelos usurios e desenvolvedores a segurana dos navegadores, devido ao crescimento e as inovaes das tcnicas de invases e infeces que existem hoje em dia na internet. Atualmente, os navegadores so obrigados a ter protees contra scripts maliciosos, javascripts entre outros contedos que poderiam existir em sites que os mesmos acessam. Atualmente o Mozilla Firefox considerado o navegador mais seguro (principalmente em relao ao Internet Explorer), mas a Microsoft est lanando periodicamente atualizaes em seu Windows Update. Na rea de segurana o Firefox possui um interruptor de scripts (caso venham a atrapalhar sua navegao ou caso sejam maliciosos) e uma proteo contra sites falsos que podem ocasionar em ataques do tipo phishing entre outros.
13
14
Eficincia: devido a demanda por recursos computacionais que este tipo de operao requer, o protocolo dispe da opo de armazenamento em cache de informaes referentes a sesso, diminuindo desta forma o esforo computacional em sucessivas conexes. Vantagens: O SSL preenche todos os critrios que o fazem aceitvel para o uso nas transmisses das mais sensveis informaes, como dados pessoais e nmeros do carto de crdito. A aplicao pode optar entre utilizar todos ou somente uma parte desses critrios dependendo do tipo e natureza das transaes que esto sendo efetuadas.
A criptografia a arte de empregar certas regras em mensagens ou informaes de forma a esconder seu verdadeiro contedo. A mensagem ou informao codificada pelo uso da criptografia, que pode ser transmitida por meios de comunicao considerados inseguros, pois s o receptor, conhecedor das regras poder reverter o processo e ler o documento original. Com o SSL, uma conexo estabelecida onde todos os dados trafegam criptografados pela rede, sem que haja o risco de serem interceptados e decifrados por algum. Para garantir a integridade dos dados, necessrio um protocolo seguro para orientar a conexo, como por exemplo, o TCP/IP. O uso do SSL se disseminou por meio de sua implementao nos EURZVHUV da Netscape, fornecendo aos usurios uma forma segura de acessar servidores ZHE, permitindo inclusive a execuo de transaes comerciais. Sua verso mais recente a 3.0. Seu funcionamento ocorre por meio do sistema de criptografia de chaves pblicas e privadas desenvolvido por Rivest, Shamir e Adleman, o RSA. O SSL mais usado nos browsers, como Mozilla, Internet Explorer entre outros.
15
16
2.4 W3C
O que o W3C? O World Wide Web Consortium (W3C) um consorcio de indstrias dedicado em levar a Web ao seu potencial mximo. Fundada em 1994 por Tim Berners-Lee (invertor da Web), o W3C tem mais de 450 organizaes associadas, incluindo Microsoft, America Online (incorporou a Netscape Communications), Apple ,Adobe, Macromedia, Sun Microsystems, e uma variedade de outras empresas fabricantes de hardware e software, provedores de contedo, instituies acadmicas e empresas de telecomunicaes. O consrcio tem o apoio (estrutura fsica e intelectual) de trs instituies de pesquisa: MIT nos EUA, INRIA na Europa e Keio University no Japo. Qual a sua funo? O W3C desenvolve especificaes abertas (padres) para aumentar a interoperabilidade de produtos relacionados com a Web. As recomendaes do W3C so desenvolvidas por grupos de trabalhos originados das organizaes membros e experts convidados.
17
Eric Meyer Autor do livro Cascading Style Sheets: The Definitive Guide.
18
19
<head>
<title>
<body>
<br>
20
<b> <i>
21
Web, HTML, CSS e JavaScript <u> <tt> Coloca o texto sublinhado Coloca o texto em fonte monoespaada. (fonte Courier,como mquina de escrever) Modifica a formatao do texto. Atributos: Size = define o tamanho da letra. Ex: <font size=5>Texto</font> Face = define o estilo da letra. Ex: <font face=verdana>Texto</font> Color = define a cor da letra. Ex:<font color=red>Texto</font>
<font>
<pre>
Marca um trecho formatado com fonte monoespaada. A formatao com espaos e entrada de pargrafos respeitada. Modifica a formatao padro do texto. Ex: <basefont size=5>
<basefont>
22
23
24
25
Nos exemplos acima, valores diferentes de cdigo permitem a definio de cores diferentes. importante entendermos como estas cores so formadas para podermos manipular estes cdigos, porm na prtica geralmente normalmente ser utilizado algum
26
editor visual para escolher a cor desejada. Abaixo vamos fazer alguns exerccios para entendermos melhor o uso de cores, utilizando as tags que j vimos anteriormente.
Observe o resultado em seu browser para poder conferir as tonalidades e note que no foram utilizadas as cores verde e azul. Obviamente podemos criar vrios tons de vermelho com parcelas tambm das outras cores.
27
28
Tambm podemos ter uma imagem ou outro arquivo referenciado que esteja em outro diretrio, acima ou abaixo do diretrio em que est nossa pgina HTML, como nos exemplos abaixo:
<img src=imagens/banner1jpg> <img src=../banner1.jpg>
29
30
31
Acompanhe com o professor como cada comando de alinhamento posiciona de forma diferente o texto e a imagem.
32
Quando definimos uma imagem para o fundo de uma pgina, se a pgina mostrada for maior que a imagem, ela ser replicada na horizontal, vertical ou em ambas as dimenses.
33
Esta caracterstica pode inclusive ser utilizada com um recurso de layout, permitindo, por exemplo, a repetio de um padro.
34
35
36
37
Web, HTML, CSS e JavaScript horizontal. Valign: valores top, middle e bottom definem o alinhamento vertical. <td> Esta a marcao que define cada clula de uma tabela. As clulas de uma tabela devem sempre aparecer entre as marcaes de linhas (<tr> e </tr>). Como padro, o texto nas clulas alinhado a esquerda. Atributos Align: valores left, right e center definem o alinhamento horizontal. Valign: valores top, middle e bottom definem o alinhamento vertical. Nowrap: no h quebra de linhas dentro das clulas Colspan: nmero de colunas que a clula ir ocupar Rowspan: nmero de linhas que a clula ir ocupar Width: largura da clula, em pixels ou valor percentual <th> Desta forma so definidos os ttulos de uma tabela. Estes podem ser posicionados em qualquer clula. A diferena entre a marcao de clula e ttulo de clula que o ttulo aparece em negrito. Atributos: os mesmos apresentados acima, para td
38
Como foi dito, a tabela construda linha a linha. Observe os comentrios no cdigo acima.
Tabela2.html exemplo de alinhamento horizontal (align) <table border=1> <tr> <td>Primeira clula</td><td>Segunda clula</td><td>Terceira clula</td> </tr> <tr> <td align=center>centro</td> <td align=left>esquerda</td> <td align=right>direita</td> </tr> </table>
Tabela3.html alinhamento vertical (valign) <table border=1> <tr> <td> Teste para alinhamento<br> com relao a bordas<br>
39
Tabela4.html Clula em vrias colunas (colspan) <table border=1> <tr> <td colspan=3>3colunas</td> <td>normal</td> <td>normal</td> </tr> <tr> <td>col 1</td> <td>col 2</td> <td>col3</td> <td>col 4</td> <td>col 5</td> </tr> </table>
Tabela5.html Clula em vrias linhas (rowspan) <table border=1> <tr> <td rowspan=3>3 linhas</td> <td>col 2</td> <td>col 3</td>
40
Tabela6.html borda maior (border) <table border=5> <tr> <td>teste1</td> <td>teste2</td> <td>teste3</td> </tr> <tr> <td>teste4</td> <td>teste5</td> <td>teste6</td> </tr> </table>
41
Tabela 8.html Espaamento interno a clula (cellpadding) <table border=2 cellpadding=8> <tr> <td>teste1</td> <td>teste2</td> <td>teste3</td> </tr> <tr> <td>teste4</td> <td>teste5</td> <td>teste6</td> </tr> </table>
Tabela9.html largura da tabela em percentuais (width) <table border=1 width=90%> <tr> <td>segunda</td> <td>terça</td> <td>quarta</td> </tr> <tr> <td>quinta</td> <td>sexta</td> <td>sábado</td> </tr> </table>
42
Tabela10.html espaamento em clula (width) <table border=1 width=90%> <tr> <td width=70% >segunda</td> <td>tera</td> <td>quarta</td> </tr> <tr> <td>quinta</td> <td>sexta</td> <td>sbado</td> </tr> </table>
43
44
Unidade 7 Formulrios
7.1 Introduo a Formulrios
At o presente momento vimos diversos recursos do HTML para criar uma pgina, definindo seu layout e contedo. Neste captulo apresentaremos a forma principal de obter dados do usurio e poder assim interagir com ele. O elemento FORM, da linguagem HTML, o responsvel por tal interao. Ele prov uma maneira agradvel e familiar para coletar dados do usurio atravs da criao de formulrios com janelas de entrada de textos, botes e outros elementos de entrada de dados. Os dados que o usurio preenche em uma pgina HTML so enviados para o servidor, para serem ento processados por um programa, por exemplo um CGI em linguagem PERL ou um pgina de acesso a banco de dados em ASP ou PHP. Tambm possvel processar localmente um campo de formulrio utilizando um script em JavaScript ou VBScript, o que muitas vezes feito para validar um campo antes do mesmo ser enviado ao servidor. Nesta lio iremos nos concentrar em aprender todos os tags HTML de criao de formulrios e a diferena entre eles.
45
Web, HTML, CSS e JavaScript hidden, no aparece para o usurio; checkbox, para marcar; radio, para escolher entre um conjunto de opes. submit cria um boto para enviar os dados e reset um boto para limpar o formulrio. Name: nome do campo Value: valor pr-definido para o campo Size: tamanho do campo a ser exibido Maxlength: tamanho mximo de caracteres Checked: para campos checkbox e radio, define como marcado <textarea> Define uma entrada de texto com vrias linhas Atributos Rows: nmero de linhas Cols: nmero de colunas <select> Define uma lista de opes para selecionar Atributos Name: nome do campo Multiple: permite selecionar vrios campos da lista Site: define o nmero de linhas a serem exibidas <option> Item de uma lista aberta Atributos Value: valor do campo se este item for selecionado Selected: indica que este valor est selecionado
46
Observe que o formulrio no tem um comando action, o que significa que, ao ser acionado, o formulrio ir chamar a prpria pgina. Digite seu nome, pressione ENTER e observe a URL no topo da pgina mudar para incluir o parmetro do formulrio. Experimente substituir o mtodo de envio para POST.
Obs: neste exemplo no faz sentido utilizarmos o mtodo get, pois a funo do tipo password perderia o sentido.
Form3.html Botes de limpar e enviar formulrio (submit e reset) <form method="get"> Qual o seu primeiro nome? <input type="text"><br> <input type="reset" value="limpa campos"> <input type="submit">
47
Form4.html Campos para marcar opes (checkbox) <form method="get"> <p> <input type="checkbox" name="boletim" checked>Sim, eu desejo receber o boletim de notcias. </p> <p> <input type="checkbox" name="info">Sim, eu gostaria de receber mais informaes tursticas. </p> <input type="reset" value="limpa campos"> <input type="submit"> </form>
Form5.html campos de opo (radio) <form method=get> Suas preferncias na viagem: <dl> <dd>Classe do bilhete: <input type="radio" name="classe" value="eco">econmica <input type="radio" name="classe" value="exe">executiva <input type="radio" name="classe" value="pri" checked>primeira </dd> <dd>Localizao: <input type="radio" name="local" value="frente">rea fumante <input type="radio" name="local" value="tras">rea no fumante </dd> </dl>
48
Obs: neste exemplo os dois grupos de botes tem o valor name diferente. Se fosse o mesmo, s poderia ser selecionada uma entre todas as cinco opes.
49
50
Form8.html Opo com mltiplas escolhas <form method="get"> Onde voc pretende fazer turismo nas frias? <select multiple size=3 name="lugares_para_ver"> <option>fortaleza <option value="sul">Florianpolis ou Porto alegre <option>Rio de janeiro <option selected>Braslia <option value="amazonia">Manaus </select> <br> <input type="reset" value="limpa campos"> <input type="submit"> </form>
51
52
Produtividade aumentada. Facilidade em criar sites com identidade visual unificada e coerente. Facilidade em fazer mudanas em todo o site basta alterar um arquivo CSS invs de mudar todas as pginas HTML. Arquivos mais leves => download mais rpido => experincia de usurio melhorada. Menos cdigo na pgina => mais fcil codificar. Permitir que visitantes dinamicamente. alterem suas preferncias definindo estilos
Mais acessvel para uma ampla variedade de aparelhos. Mais controle sobre o cdigo - interpretao do cdigo na ordem correta para os leitores de tela. Disponibiliza verses para impresso sem duplicao de contedo, somente alternando o CSS. Permite formatar elementos do HTML como formulrios e barras de rolagem, impossvel via atributos HTML. Permite controlar aspectos visuais como tipo e cor de borda, posicionamento, visibilidade e margens propriedades inexistentes no HTML.
53
Ao separar formatao do contedo, voc est tornando seu cdigo semanticamente correto. Ou seja, no utilizando marcao de contedo (HTML) para formatao (uso incorreto). Outra vantagem na separao a possibilidade de tornar disponvel o mesmo contedo para mltiplos devices (aparelhos) sem necessidade de duplicar o contedo, alterando somente a formatao (CSS). Isto inclusive pode ser feito de forma dinmica ou utilizando linguagem script (Javascript, por exemplo). Entre os devices que suportam contedo Web podemos citar: Browsers. Impressoras. PDAs (Personal Digital Assistants). Telefones Celulares. Equipamentos wireless. Para obter uma demonstrao do que pode ser conseguido visualmente por meio de um design baseado em CSS, acesse o site Zen Garden, onde diferentes desenvolvedores criaram para o mesmo contedo (documento HTML), diferentes arquivos CSS, resultando em documentos com o design 100% diferentes entre si. Vale a pena conferir! http://www.csszengarden.com/tr/portuguese/
54
Conceito concebido pelo fsico ingls Tom Berners-Lee, o criador do World Wide Web, cuja proposta, ainda em desenvolvimento, por um grupo de pesquisadores do W3C, por ele liderado, estruturar todo o contedo disponvel na Internet. Essa estruturao ser baseada num conjunto de regras, que permitir a localizao eficiente e precisa da informao desejada. Por mais sofisticados que sejam os mecanismos de buscas, atualmente existentes, todos, sem exceo, oferecem para cada solicitao um grande nmero de pginas, que, em sua maioria, no atendem s necessidades do usurio. Esse , ento, obrigado a verificar uma a uma, at encontrar exatamente o que procura. A Web semntica se prope objetivar essa busca, de modo que o contedo exato seja encontrado em uma nica consulta. Esse conceito baseia-se na insero, em cada arquivo da Web, de tags personalizadas, definidas pela linguagem XML e, com isso, indexar toda a informao disponvel de forma precisa. A localizao exata da informao que se busca estar a cargo de agentes. O conceito de Web semntica prev ainda o uso de RDF, um padro de descrio, composto por trios de informao, em que cada unidade ter funo prpria, como sujeito, verbo e objeto, em uma frase. Para cada diferente significado de uma palavra e sua funo numa frase ser criada uma identificao (URI). O maior desafio da Web semntica a padronizao desses URIs. Para isso prev-se o uso de ontologias, que fornecero aos agentes o vocabulrio necessrio para identificar de modo preciso a informao que se busca. A tempo: URL significa Uniform Resource Locator, ou Identifier, no caso de URI. Servem para localizar qualquer recurso na Internet.
As informaes sobre os estilos podem ser armazenadas: Interno - No cabealho de um documento HTML. Inline ou Em Linha - Junto a uma determinada tag. Externo Em um documento .css separado vinculado ao documento HTML atravs de uma referncia externa no cabealho do documento.
55
Neste caso especfico dispensamos o seletor, pois estamos aplicando o estilo diretamente em uma tag.
56
Feito isto, criamos um arquivo HTML que far referncia ao arquivo de estilos que ser utilizado atravs da tag <LINK>:
Arquivo 2: estilos.html <html> <head> <title>Utilizando css em um arquivo externo</title> <link rel=stylesheet type=text/css href=estilos.css> </head> <body> </body> </html>
57
Note que qualquer tag <FONT> contida nesta pgina automaticamente receber aplicao dos estilos definidos.
58
59
A tabela abaixo apresenta os principais atributos com suas descries, valores e como usamos no cdigo:
Atributo background Descrio Especifica uma imagem de segundo plano ou cor. Especifica a lateral da borda que sofre o efeito Especifica a cor da borda. Especifica o estilo da borda. Valores Permitidos URL ou o cdigo da cor Exemplos {background:#33 CC00}
border
{border-left}
border-color
Nome ou cdigo da cor. dotted / dashed / solid / double / none / grove / ridge / inset / outset thin / thick / medium Nome ou cdigo da cor.
border-style
border-width
color
60
Web, HTML, CSS e JavaScript font-family Seleciona o tipo de fonte. Nome da fonte (de acordo com o Windows) points (pt) inches (in) centimeters (cm) pixels (px) font-style Aplica o efeito itlico. Ajusta a espessura da fonte. normal italic extra-light light demi-light medium demi-bold bold extra-bold line-height Especifica a distncia entre as linhas. points (pt) inches (in) centimeters (cm) pixels (px) percentage(%) margin-left Ajusta a distncia da margem da esquerda. points (pt) inches (in) centimeters (cm) pixels (px) margin-right Ajusta a distncia da borda direita da pgina. points (pt) inches (in) centimeters (cm) pixels (px) {margin-right: 1cm} {margin-left: 5in} {line-height: 24pt} {font-weight: bold} {font-weight: extra-bold} {font-style: italic} {font-family: courier} {font-family: arial} {font-size: 12pt}
font-size
font-weight
61
Web, HTML, CSS e JavaScript margin-top Ajusta a distncia da borda superior da pgina points (pt) inches (in) centimeters (cm) pixels (px) text-align Especifica o alinhamento do texto. left center right text-decoration Aplica efeitos no texto. none underline italic line-trough text-indent Especifica a distncia entre o texto e a margem esquerda. points (pt) inches (in) centimeters (cm) pixels (px) {text-indent: 0.5in} {text-decoration: none} {text-align: right} {margin-top: 20px}
8.8 Exerccios
Aplique trs estilos a uma pgina HTML: Um estilo que se aplique toda a pgina, um estilo que se aplique apenas uma tag contida nesta pgina e um estilo que se aplique todas as tags <FONT> Transfira estes estilos para um arquivo externo e referencie-o nesta pgina HTML.
62
63
64
Observe que a construo da tabela em si est bastante simples, facilitando sua criao dinmica por um programa que, por exemplo, consulte um banco de dados. Observe, adicionalmente, que o layout est definido na parte em CSS que inclusive pode estar em um arquivo separado. Com isto, designers e programadores podem trabalhar em partes independentes do cdigo, de forma simultnea, um definindo detalhes do layout em CSS enquanto o outro constri o programa que monta dinamicamente os dados da tabela. Obs: o parmetro border-collapse permite definir que as bordas das clulas internas sero grudadas umas nas outras. um comando muito interessante de ser utilizado na definio de layouts de tabelas.
65
66
67
68
10.2
69
Os comentrios tambm podem ser criados em blocos no Javascript, utilizando a notao /* e */. Atravs desta notao, todo o texto colocado dentro destes dois delimitadores considerado como comentrio para a linguagem de script, conforme o exemplo a seguir:
/* Aqui iniciamos um comentrio em bloco note que mesmo estando em outra linha, este texto continua sendo comentrio at que seja colocado o delimitador de fim de comentrio */ <SCRIPT LANGUAGE=Javascript> var dtToday = new Date(); sProcessor = Atribuio a variavel !; // Este texto em linha </script>
70
11.2.1
<SCRIPT LANGUAGE=Javascript> var nNumber, sString, bBoolean; //As variveis ainda no assumiram um tipo especfico nNumber = 10; //nNumber assume tipo numrico sString = Exemplo; //sString assume tipo string / texto bBoolean = true; //bBoolean assume tipo booleano </script>
11.2.2
11.2.3
71
11.3 Variveis
Assim como qualquer linguagem de programao, o Javascript permite a criao de variveis dentro dos scripts. As vriaveis em JavaScript possuem dois escopos, um escopo global, que so variveis declaradas fora de funes, e um escopo local que so vriaveis declaradas dentro de funes. As variveis so declaradas utilizando a instruo var onde deve ser informado o nome das variveis que devem ser declaradas. possvel declarar mais de uma varivel em mesmo comando var, conforme o exemplo a seguir:
<html> <script> var mensagem; //Varivel global mensagem = "Hoje dia: "; function dataAtual(){ var dtHoje = new Date(); //varivel local var sDia, sMes, sAno; //atribuio de 3 variveis em uma linha sDia = dtHoje.getDate(); //Porque getDay o dia da semana sMes = dtHoje.getMonth() + 1; //Porque ele pega o ms sendo com um ndice, ou seja, inicia com o 0 sAno = dtHoje.getFullYear(); alert(mensagem + sDia + "/" } </script> <body> <a href="javascript:dataAtual();">Data Atual</a> </body> </html> + sMes + "/" + sAno); //Atribuindo valor varivel
Como podemos ver no exemplo acima, a atribuio de variveis feita atravs do operador de atribuio =, e pode ser feita tanto na declarao da varivel como posteriormente ao longo do cdigo de script.
72
11.4 Operadores
A linguagem Javascript possui um conjunto de operadores muito semelhante a qualquer linguagem de programao convencional, que permitem tanto realizar operaes aritmticas como operaes booleanas. Os operadores esto divididos em trs grupos principais: Computacionais, Lgicos e de Atribuio. Dentre os operadores computacionais, podemos encontrar os operadores que realizam operaes aritmticas, bem como operadores utilizados para realizar concatenaes de strings. A lista dos operadores computacionais pode ser visualizada abaixo:
Operador Incremento Decremento Multiplicao Diviso Mdulo Adio/Concatenao Subtrao
Smbolo ++ -* / % + -
Dentre os operadores lgicos, encontramos os operadores para testes lgicos convecionais, como equalidade e inequalidade. importante ressaltar a diferena entre o operador de atribuio = e o operador lgico de igualdade ==. Muitas vezes os desenvolvedores tendem a utilizar o operador de atribuio para realizar testes de igualdade, o que acarreta em erros de lgico nos scripts. Operadores lgicos podem ser visualizados a seguir.
Operador No Lgico Menor que Maior que Menor ou igual a Maior ou igual a Igual Diferente (no igual) E Lgico (AND) OU Lgico (OR)
! < > <= >= == != && || Smbolo
Alm destes dois conjuntos de operadores, ainda temos os operadores de atribuio. O operador de atribuio representado pelo smbolo =, que pode ser combinado com qualquer operador computacional a fim de combinar o valor atual da varivel com o valor que est sendo atribuido. Para utilizar esta funcionalidade, basta inserir o operador computacional na frente do operador de atribuio (Ex.: +=, -=, *=, /=). A seguir podemos ver uma srie de exemplos para utilizao de operadores:
73
<script> var nNumero1, nNumero2, nResultado; // Atribuio de 0 ao nmero nNumero1 = 1; nNumero2 = 2; // Atribui uma soma ao resultado nResultado = nNumero1 + nNumero2; // Incrementa o resulta em 1 nResultado++; // Soma 10 ao valor atual do resultado nResultado+=11; // Dispara o alert true caso a varivel nResultado seja igual a 25 ou false caso no seja. alert(nResultado == 25); </script>
O javascript permite ainda que conjuntos de instrues sejam agrupados em blocos, utilizando os delimitadores de chaves ( { } ). Instrues agrupadas em blocos, so consideradas como um nico comando na linguagem javascript, e so utilizados, em geral, onde a linguagem necessita de comando nicos, como em instrues de teste, estruturas de repetio e funes. A seguir podemos ver um exemplo de um cdigo JavaScript que utiliza delimitadores de bloco de instrues.
74
//Testa se a hora atual maior que 18 if (dtHoje.getHours() > 18){ // Bloco de instrues. Caso a hora seja maior que 18 entra neste bloco alert(Boa noite ! Este o curso de JavaScript !); alert(A hora atual : + dtHoje.getHours()); } else { // Bloco de instrues. Caso a hora no seja maior que 18 entra neste bloco alert(Boa tarde ! Este o curso de JavaScript !); alert(A hora atual : + dtHoje.getHours()); }
75
Alm do comando if, o comando switch pode ser utilizado para realizar testes lgicos na linguagem JavaScript. O comando switch um comando de teste de seleo mltipla, ou seja, no testa a expresso lgica apenas por um valor especfico, mas sim por uma srie de valores informados no cdigo de script. O comando script requer um bloco de comando inserido logo aps a expresso lgica, que ir conter os comandos executados no caso de cada uma das expresses. Ao final de cada conjunto de instrues de uma condio swicth, necessrio informar o comando break, para que o javascript no execute as condies posteriores ao teste, conforme o exemplo a seguir:
<script> var nMes; var dtData = new Date(); var sMes; // Atribuio do Ms a varivel nMes = dtData.getMonth(); switch (nMes) { case 0: sMes = "Janeiro"; break; case 1: sMes = "Fevereiro"; break;
76
11.8.2
For
Alm do comando while, temos o comando for, que pode ser utilizado para repetir um determinado conjunto de instrues de acordo com um ndice nmero especificado no prprio comando for. No comando for necessrio informar a varivel que servir como ndice, a condio para execuo do for, e o incremento utilizado para execuo da estrutura de repetio. Podemos ver um exemplo de utilizao do comando for a seguir.
77
O comando for ainda pode ser utilizado com a clusula in para realizar enumeraes de propriedades em objetos ou mesmo itens contidos em arrays. Para a utilizao da clusula in, necessrio definir uma varivel que ir receber o valor de cada membro solicitado dentro de cada iterao da estrutura de repetio. Com a clusula in podemos, por exemplo, buscar todas as propriedades disponveis de um determinado objeto criado no JavaScript. No exemplo a seguir podemos visualizar todas as propriedades disponveis no objeto window, que representa a janela do browser.
<script> var prop; for(prop in window) { var sMensagem; sMensagem = "Propriedade da janela do Browser: "; sMensagem += prop; alert(sMensagem); } </script>
78
Exemplo 1:
<script > var nContador; for(nContador=0;nContador<5;nContador++) { eval("var sTeste" + nContador + ";"); eval("sTeste" + nContador + "=" + nContador + ";"); } for(nContador=0;nContador<5;nContador++) { eval("alert(sTeste" + nContador + ");"); } </script>
79
Exemplo 2:
<html> <script> function compute(f) { f.result.value = eval(f.expr.value); } </script> <body> <form name="teste"> Digite uma expresso matemtica (exemplo: 2+2 ou 3*5): <input type="text" name="expr" Size="15"> <input type="button" value="Calcula" onclick="javascript:compute(this.form)"> <BR> Resultado: <input type="text" name="result" size="15"> </form> </body> </html>
12.2.2
80
12.2.3
12.2.4
A funo isNaN()
A funo isNaN utilizada para verificar se uma varivel contm um valor especial NaN. O valor representa uma converso nmerica mal sucedida (NaN = Not a Numeric). Quando tentamos converter uma string (Ex.: ABC) para um valor nmerico utilizando as funes parseInt e parseFloat, o resultado da funo um valor NaN.
81
Como podemos ver a funo pode conter diversos parmetros de entrada que podem ser utilizados para clculos ou algum processamento especial dentro do corpo da funo. Para definir os parmetros, basta informar os nomes das varivies que iro representar os parmetros na funo. Podemos ver um exemplo de funo no cdigo abaixo:
<script> function MostraMensagem(sMsg) { var dtData = new Date(); var sData; sData = dtData.getDay() + "/" + dtData.getMonth() + "/" + dtData.getFullYear(); alert(sData + " - " + sMsg); } MostraMensagem("Mensagem de Teste !"); </script>
As funes do Javascript ainda permitem que o usurio retorne valores. Para retornar um valor em uma funo, basta criar a funo da mesma forma como apresentado no exemplo anterior, porm com a utilizao do comando return. O comando return serve para interromper o processamento de uma funo ou um bloco de script, com a opo de retornar um valor no caso de estar dentro de uma funo. Podemos ver um exemplo de utilizao do comando return a seguir.
<script> function Soma(nNumero1, nNumero2) { return nNumero1+nNumero2; } alert(Soma(10,5)); </script>
82
13.1.1
O Objeto Date
Em nossos exemplos anteriores j vimos o objeto date sendo utilizado diversas vezes para verificar a data atual. O objeto Date um dos objetos intrnsecos do Javascript, utilizado para o gerenciamento de datas. Para criar uma nova instancia do objeto basta criar uma nova varivel e atribuir uma nova instancia do objeto Date. O objeto date sempre inicializado com a Data e Hora atuais. Um exemplo de criao de um objeto Date pode ser visto a seguir.
<script > var dtData, nMes, nHora, sMes, sPeriodo; dtData = new Date(); nMes = dtData.getMonth(); nHora = dtData.getHours(); </script>
83
13.1.2
O Objeto Array
O objeto Array a representao de um conjunto de valores dentro do JavaScript. Para criarmos um array dentro do JavaScript, utilizamos a mesma sintaxe que utilizamos at o momento com as datas, atravs do comando new. Deve-se lembrar que a primeira posio de um array 0, ento um Array de tamanho 6, comea na posio 0 e acaba na posio 5. A seguir vemos uma srie de exemplos de criao de arrays.
var sNomes = new Array(); var sValores = new Array(6);
Como mostrado no exemplo anterior, os array podem ser criados com um tamanho inicial ou no. Caso no seja informado o tamanho inicial, podemos aumentar seu tamanho a medida que criamos os elementos dentro do array. Para criar e acessar elementos em um array em Javascript devemos utilizar colchetes [ ] para informar qual o incio do array que queremos gravar ou ler. Caso o incio no exista e o script tente atribuir um valor ao array, o array ser redimensionado automaticamente. Um exemplo de utilizao de variveis dentro do array pode ser visto abaixo:
<script > var sNomes = new Array(); var sValores = new Array(6); sNomes[0] = "Andr"; sNomes[1] = "Bruno"; sNomes[2] = "Carlos"; sValores[0] = 1; sValores[1] = 2; sValores[2] = 3; sValores[3] = 4; </script>
Caso o array esteja sendo preenchido de forma dinmica, sem informar um nmero de elementos, podemos a qualquer momento consultar a propriedade length para verificar quantos elementos esto contidos dentro do array. Alm da armazenagem de objetos, os array podem ser utilizados para outras finalidades como ordenao de dados. Para isto devemos utilizar os mtodos disponveis dentro do array, como o mtodo sort para ordenar por ordem alfabtica e o mtodo reverse para ordernar por ordem decrescente. Um exemplo de utilizao de um array para ordenao pode ser visto abaixo:
84
= new Array();
sNomes[0] = "Carlos"; sNomes[1] = "Bruno"; sNomes[2] = "Mauricio"; sNomes[3] = "Jos"; sNomes[4] = "Andr"; sNomes.sort(); var nCount; alert(Ordem Crescente); for(nCount=0;nCount<sNomes.length;nCount++) { alert(sNomes[nCount]); } sNomes.reverse(); alert(Ordem Decrescente); for(nCount=0;nCount<sNomes.length;nCount++) { alert(sNomes[nCount]); } </script>
13.1.3
O Objeto Math
O objeto Math um objeto com um comportamento um pouco diferente dos demais. Para utilizarmos o objeto Math, no necessrio criar um nova instncia deste em uma varivel, basta chamarmos seus mtodos e propriedades diretamente. Este objeto utilizado para realizar clculos matemticos mais avanados, que no podem ser realizados utilizando os operadores mais simples do JavaScript. Podemos ver um exemplo de utilizao do objeto Math no exemplo a seguir.
<script> var nNumero1 = 10.5; var nNumero2 = -10.5; var nNumero3 = 4;
85
13.1.4
O Objeto String
O objeto string representa variveis string dentro do Javascript. Os objetos string so criados ou atravs do comando string ou atravs da atribuio direta de um valor string para uma varivel. O objeto string possui uma srie de mtodos que permitem manipular as strings no JavaScript. Um dos mtodos disponveis o mtodo substring que permite pegar uma frao da string, de acordo com uma posio passada como parmetro. Alm desses mtodos, ainda temos a propriedade length, que pode ser utilizada para verificar o tamanho atual da string. Podemos ver a implementao desses mtodos no exemplo abaixo:
<script> var sString1 = "string criado diretamente"; var sString2 = new String("string criado com o new"); sString1 = sString1.toUpperCase(); sString2 = sString2.toUpperCase(); alert(sString1); alert(sString2); alert(sString2.replace(STRING, string)); alert(sString1.substring(0,5)); alert("O tamanho da String1 : " + sString1.length); </script>
86
for(prop in oContato) { var sMsg; sMsg = "O objeto contm a propriedade "; sMsg += prop; sMsg += " com o valor de " + oContato[prop]; alert(sMsg); } </script>
13.3 Mtodos
Os mtodos de um objeto so funes que pertencem a um objeto. Repare que enquanto que as propriedades correspondem a variveis, os mtodos correspondem a funes.
13.3.1
Mtodos estticos
Alguns objetos oferecem mtodos estticos. Esses mtodos diferem dos mtodos normais pelo fato de no pertencerem a um objeto criado com a instruo new.
13.3.2
A declarao this
A declarao this representa o prprio objeto em que usada. Esse objeto pode ser uma funo, uma ligao de hipertexto, uma imagem, etc. Esta declarao bastante til em HTML Dinmico porque nos ajuda muito a construir funes que respondem a eventos sabendo sempre qual foi o objeto que originou o evento e funcionam corretamente em todos os browsers. Para aprender mais sobre esta matria veja um dos exerccios que esto mais abaixo.
13.3.3
A declarao with
Esta declarao estabelece o objeto ao qual se aplica uma srie de instrues. Os dois exemplos seguintes usam o objeto Math para ilustrar o uso desta declarao e so totalmente equivalentes. Verso 1:
x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10) y = Math.tan(14 * Math.E)
Verso 2: (equivalente anterior.) Repare que no foi preciso colocar a parte dos nomes dos mtodos cos(), sin() ou tan().
Math.
antes
87
Quando o nmero de instrues pequeno no vale a pena usar a declarao with, mas se esse nmero crescer muito o cdigo ser mais compacto e fcil de ler se usarmos esta declarao.
88
89
atributos accessKey
Descrio Seta ou retorna o comando chave para acessar o comando chave do objeto body Seta ou retorna a cor dos links ativados no documento html.
aLink
90
background
Seta ou retorna a imagem que ficara no plano de fundo do documento Html Seta ou retorna a cor de fundo do documento HTML Seta ou retorna o id do objeto Body (no IE 4 este atributo read-only)
Seta a cor dos links no documento html Seta ou retorna o cor dos textos no documento HTML Seta ou retorna a cor dos links visitados no documento HTML
bgColor id
91
</body> </html>
Caso existir mais de um form no documento este objeto poder ser acessado como um array. Exemplo:
<html> <head> <script type="text/javascript"> function formReset() { var x=document.forms[0]; x.reset() } </script> </head> <body> <form name="Form1"> <p>Preencha os campos a baixo e veja como funciona o boto Reset</p> <input type="text" size="20"><br /> <input type="text" size="20"><br /> <br /> <input type="button" onclick="formReset()" value="Reset form"> </form> <form name="Form2"> <p>Preencha o campo a baixo, ele faz parte de um outro formulrio por isto no sera alterado quando o boto reset for pressionado</p> <input type="text" size="20"><br /> <br /> </form> </body> </html>
Neste exemplo o form esta sendo acessado como o primeiro form do documento.
92
14.8.1
atributos Action Encoding Enctype Id Length Method
Atributos do Form
descrio Seta ou retorna a url para onde vai ser submetido o FORM Seta ou retorna o MIME encoding para o Form Seta ou retorna o MIME encoding para o Form Seta ou retorna o id do objeto Body Seta ou Retorna o numero de elementos de um form Seta ou retorna a forma em que vai ser submetido o form ("get" ou "post") Seta ou retorna o nome do form Seta ou retorna o ndice que foi definido o ordem de tabulao para o form Seta ou retorna o alvo em que o response vai processar apos a submisso, normalmente um frame ou iframe.
Name tabIndex
Target
14.8.2
Mtodo reset() submit()
Mtodos de um FORM
Descrio Coloca o valor inicial nos elementos do form Submete o form
14.8.3
Event onReset
Eventos de um form
Description Executa quando o evento reset ocorrer
93
onSubmit
14.8.4
Elements de um FORM
Um form constitudo de vrios objetos para interagir um usurio, neste caso DOM disponibiliza um vetor de elementos. Para facilitar na validao dos objetos. Exemplo:
Function validaIdade(){ If(document.forms[0].elements[0].value < 0) { alert(digite a idade vlida); } }
Colees elements[]
no trecho de cdigo desenvolvido acima, representa um busca dentro do primeiro FORM pelo id do objeto igual a telefone. Este mtodo poderia ter sido usado dentro de qualquer estrutura da API.
94
Exemplo:
var telefone var valor = = document.getElementById(telefone); telefone.value;
Mostrando que este mtodo no proprietrio do objeto FORM, caso ele encontre mais de um objeto o retorno vai ser um array de elementos.
14.10
Objeto Frameset
O objeto Frameset representa o frameset HTML. Contendo a mesma limitao quanto a indisponibilidade em uma grande variedades browsers. Exemplo de mapeamento de frameset:
<html> <frameset id="myFrameset" cols="50%,50%"> <frame id="leftFrame" src="frame_a_noresize.htm"> <frame id="rightFrame" src="frame_a.htm"> </frameset> </html> frame_a.htm <html> <body bgcolor="#66CCFF"> <h3>Frame A</h3> </body> </html> frame_a_noresize.htm <html> <head> <script type="text/javascript"> function disableResize() { parent.document.getElementById("leftFrame").noResize=true parent.document.getElementById("rightFrame").noResize=true } function enableResize() {
95
Web, HTML, CSS e JavaScript parent.document.getElementById("leftFrame").noResize=false parent.document.getElementById("rightFrame").noResize=fals e } </script> </head> <body bgcolor="#EFE7D6"> <form> <input type="button" onclick="disableResize()" value="No resize"> <input type="button" onclick="enableResize()" value="Resize"> </form> <p>Aula de javascript com DOM</p> </body> </html>
14.10.1
Atributo Cols Id Rows
14.10.2
Mtodos blur() focus()
14.10.3
Event
Description
96
onBlur onFocus
Executado quando o foco sai de um frameset Executado quando um frameset recebe o foco.
97
document
Frames[] Frames
Elementos[] Elementos
A partir do objeto document podemos ter acesso a qualquer elementos contido dentro da pgina HTML, como por exemplo uma caixa de texto de um formulrio. O prprio objeto document possui uma srie de propriedades e mtodos que podem ser utilizadas pelo JavaScript para interagir ou modificar a aparecia do documento. Podemos visualizar uma srie de propriedades do objeto document com o script abaixo:
<script> alert(document.location); alert(document.referrer); alert(document.fgColor ); alert(document.forms.length ); alert(document.images.length); alert(document.links.length); alert(document.readyState ); </script>
98
Alm de poder visualizar as informaes referentes ao documento, o Javascript ainda pode interagir com diversos elementos contidos no HTML. Tomemos como exemplo o HTML abaixo:
<HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <TITLE></TITLE> </HEAD> <BODY> <img src="mmc.gif"> <img> <img> <img> <br> </BODY> </HTML>
Como podemos ver o HTML possui trs elementos do tipo IMG, que representam imagens dentro do documento. Tambm podemos notar que somente a primeira imagem possui a propriedade src definida. Atravs do Javascript, podemos perfeitamente acessar a coleo de imagens de um documento atravs da propriedade images. A propriedade images contm uma coleo de todas as imagens disponveis dentro de um documento. No script abaixo vemos um exemplo onde utilizamos a propriedade src da primeira imagem para carregar as demais imagens do document.
<script> alert("Note que as imagens no esto carregadas !"); document.images[1].src = document.images[0].src; document.images[2].src = document.images[0].src; alert("Agora as imagens esto carregadas !"); </script>
Alm de poder acessar as imagens de um documento, podemos tambm acessar a coleo de links disponveis. O objeto document possui acesso a coleo de links disponveis na pgina atravs da propriedade links. Atravs desta propriedade podemos acessar e at modificar cada um dos links da pgina. Tomemos como exemplo o HTML abaixo.
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY>
99
Atravs de um bloco de javascript podemos perfeitamente alterar as caractersticas dos links disponveis na pgina, acessando a propriedade links do objeto document. Ao acessar cada um dos links podemos perfeitamente alterar o caminho para o qual o link est apontando, bem como o texto contido dentro do link. O exemplo abaixo mostra como alterar os links no HTML apresentado acima.
<script> function popula(){ var sAlunos = new Array(); sAlunos[0] = "Andre"; sAlunos[1] = "Joao"; sAlunos[2] = "Maria"; sAlunos[3] = "Jose"; sAlunos[4] = "Carlos"; sAlunos.sort(); for(nCount=0;nCount<sAlunos.length;nCount++) { document.links[nCount].href = "http://www.processor.com.br/alunos/" + sAlunos[nCount]; document.links[nCount].innerHTML = sAlunos[nCount]; } } </script>
Alm de alterar propriedades dos elementos podemos criar contedo dinmico no documento atravs do JavaScript. Isto pode ser obtido atravs da utilizao do mtodo write do objeto document. Com o mtodo write podemos escrever contedo dentro do HTML no mesmo ponto onde se encontra o cdigo script de forma dinmica. Um exemplo de implementao do mtodo write pode ser observado abaixo.
<script>
100
Alm de criar contedo dinmico, podemos alterar outras propriedades do documento, como por exemplo sua prpria localizao. Alterando a localizao do documento faz com que a pgina seja automaticamente redirecionada para outra pgina especificada pelo script. O exemplo abaixo mostra como podemos alterar a localizao do documento atravs de um script. A alterao feita acessando a propriedade location do document. A propriedade location um objeto que contm diversas informaes sobre a localizao atual do documento. Para alterar o documento para outra pgina do site, devemos trocar a propriedade href.
<script> var dtData = new Date(); if(dtData.getHours() > 12) document.location.href = "tarde.htm"; else document.location.href = "manha.htm"; </script>
Alm de alterar a localizao, podemos tambm recarregar o documento atravs do comando reload. O exemplo abaixo mostra como recarregar o documento aps um determinado intervalo de tempo. setTimeout, que executa uma instruo Javascript aps um determinado intervalo de tempo, especificado como parmetro na funo.
<script> var dtData = new Date(); document.write(dtData.getHours() + ":" + dtData.getMinutes() + ":" + dtData.getSeconds());
101
15.2.1
102
qual evento do objeto indicado no atributo FOR o script ser executado. Tomemos como exemplo o HTML com o formulrio abaixo:
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <FORM> <INPUT TYPE=BUTTON NAME=btnOk VALUE="Clique Aqui !"> </FORM> </BODY> </HTML>
Se quisermos mapear o evento clique no boto criado no formulrio HTML mostrado acima, devemos criar um bloco de script com o atributo FOR indicando para o boto com o nome de btnOK, e o atributo EVENT indicando para o evento onclick. Podemos ver um exemplo do mapeamento deste evento no bloco de script apresentado abaixo.
Parte superior do formulrio Parte inferior do formulrio <SCRIPT FOR=btnOk EVENT="onclick"> alert("Voc clicou no boto !"); </SCRIPT>
Esta tcnica de mapeamento de eventos pode ser utilizada para mapear eventos no s dos elementos HTML em geral, mas tambm eventos do prprio documento, como o evento de carregamento. O exemplo abaixo mostra um bloco de script que mapeia o evento OnLoad do documento contido na janela do browser.
<SCRIPT FOR=window EVENT="onload"> alert("O documento foi carregado !"); </SCRIPT>
15.2.2
103
onchange, etc.), e o valor contido neste atributo ser o nome da funo utilizada para mapear o evento. O exemplo a seguir mostra o mesmo HTML mostrado no exemplo anterior, porm utilizando a tcnica de mapeamento por funes.
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <FORM> <INPUT TYPE=BUTTON NAME=btnOk VALUE="Clique Aqui !" onclick=click_btnOk()> </FORM> </BODY> </HTML>
Note que inclumos um novo atributo na tag do boto que representa o evento a ser mapeado. O contedo deste atributo o nome da funo que ir executar no momento em que o evento for acionado, exibida abaixo:
<SCRIPT> function btnOk_click() { alert("O documento foi carregado !"); } </SCRIPT>
importante salientar que para este tipo de implementao sempre aconselhvel colocar o cdigo da funo de mapeamento de evento ANTES da tag de definio do elemento, de preferncia dentro da tag <HEAD> do documento, em virtude de alguns browsers no reconhecerem as funes declaradas aps o elemento que utilizar a funo.
15.2.3
104
Ao invs de utilizarmos os atributos FOR e EVENT para mapear o eventos, continuaremos utilizando a funo de mapeamento, porm associaremos a funo de mapeamento com o objeto em outro bloco de script.
<SCRIPT> function btnOk_click() { alert("O documento foi carregado !"); } </SCRIPT> <SCRIPT> document.forms[0].btnOk.onclick=btnOk_click; </SCRIPT>
15.3.1
105
Como este formulrio no possui um nome associado, precisamos acess-lo atravs da coleo forms do objeto document. A coleo forms possui um conjunto completo com todos os formulrios disponveis dentro do document HTML. Como s temos um formulrio dentro de nosso documento, o formulrio que queremos o formulrio de ndice 0, conforme apresentado no bloco de script abaixo:
<SCRIPT> function btnOk_click() { alert(document.forms[0].txtNome.value); } </SCRIPT>
O cdigo de script acima, busca uma referencia a caixa de texto contida dentro do formulrio do documento e exibe a propriedade value da mesma, que representa o contedo textual da caixa de texto.
15.3.2
106
Como temos a propriedade NAME associado ao FORM, podemos utilizar nosso script desta forma:
<SCRIPT> function btnOk_click() { alert(document.frmDados.txtNome.value); } </SCRIPT>
15.4.1
Para criarmos uma funo que faa a validao deste formulrio, basta criarmos o mapeamento para o evento onclick do boto efetuar logon e apenas submeter o formulrio no caso de as informaes solicitadas estarem corretas. O cdigo de script abaixo realiza esta validao.
107
<SCRIPT> function btnOk_click() { if(document.frmDados.txtUsuario.value.length == 0) { alert("Informe o usurio !"); document.frmDados.txtUsuario.focus(); return; } if(document.frmDados.txtSenha.value.length < 6) { alert("A senha deve ter no mnimo 6 dgitos !"); document.frmDados.txtSenha.focus(); return; } document.frmDados.submit(); } </SCRIPT>
No bloco de script acima, utilizamos a propriedade value do objeto txtUsuario para verificarmos se o campo est ou no preenchido. Note que estamos utilizando a propriedade length para fazermos esta verificao. A propriedade length pertence ao objeto String, que representa o contedo textual da caixa de texto. Note que caso o usurio no tenha entrado com as informaes no campo usurio, apresentado um alerta ao usurio e o foco do campo posicionado no campo que est com erro no formulrio. O foco trocado atravs do mtodo focus, que est presente em todos os controles de interao com usurio dos formulrios HTML. Aps a troca do foco, chamado o comando return, para que a execuo da funo seja interrompida. A validao do controle de senha feita de forma semelhante a validao do campo de usurio, porm neste caso estamos verificando se o usurio digitou no mnimo 6 dgitos para a senha. Caso as condies estejam satisfeitas, o formulrio HTML submetido para o WebServer.
108
<HTML> <BODY> <FORM NAME=frmDados ACTION=""> Pesquisa Vagas<BR> <BR> Cidade: <SELECT SIZE=1 NAME=cmbCidade> <OPTION VALUE="">-- Selecione a cidade --</OPTION> <OPTION VALUE="1">Belo Horizonte</OPTION> <OPTION VALUE="2">Porto Alegre</OPTION> <OPTION VALUE="3">Rio de Janeiro</OPTION> <OPTION VALUE="4">So Paulo</OPTION> </SELECT><BR> <BR> Cargos:<BR> <SELECT SIZE=5 NAME=lstCargo multiple="multiple"> <OPTION VALUE="1">Analista de Sistemas</OPTION> <OPTION VALUE="2">DBA</OPTION> <OPTION VALUE="3">Programador</OPTION> <OPTION VALUE="4">Programador/Analista</OPTION> <OPTION VALUE="5">Web-Designer</OPTION> </SELECT><BR><BR> <INPUT TYPE=BUTTON NAME=btnOk VALUE="Pesquisar" onclick="btnOk_click()"> </FORM> </BODY> </HTML>
Neste HTML temos uma caixa de seleo simples e uma caixa de seleo mltipla. Para testarmos se o usurio selecionou ou no as informaes destes controles utilizaremos o cdigo de script a seguir.
<SCRIPT> function btnOk_click() { if(document.frmDados.cmbCidade.options[0].selected==true) { alert("Selecione a cidade !"); document.frmDados.cmbCidade.focus(); return; } if(document.frmDados.lstCargo.value == "") { alert("Selecione o cargo !"); document.frmDados.lstCargo.value = ""; return; }
109
document.frmDados.submit(); } </SCRIPT>
Para a validao do primeiro campo utilizamos a coleo options do controle cmbCidade. A coleo options contm uma referencia a cada um dos itens existentes dentro da caixa de seleo. Os itens podem ser acessados da mesma forma que um array simples em JavaScript. Cada item das caixas de seleo, representados na coleo options, possuem uma srie de propriedades, dentre elas a propriedade selected. A propriedade selected devolve um valor verdadeiro caso o item esteja selecionado, e falso caso no esteja selecionado. No caso de caixas de seleo mltipla, possvel testar se mais de um item foi selecionado atravs da coleo options, testando cada um dos valores da propriedade selected de cada item.
document.frmDados.lstCargo.options[0].value; document.frmDados.lstCargo.options[0].innerHTML; document.frmDados.lstCargo.options[0].selected;
As caixas de seleo tambm possuem, assim como as caixas de texto, a propriedade value, que indica o valor do item selecionado. No caso da segunda caixa de seleo, estamos fazendo um teste para verificar se o valor da caixa de seleo branco ou no, o que indica que o usurio no selecionou nenhum item. Caso as condies sejam satisfeitas, o formulrio submetido ao servidor para o processamento.
110
Para validarmos o formulrio HTML acima utilizaremos a funo Validar, que est mapeada para o clique do boto Enviar, apresentada no bloco de script abaixo
<script> function Validar() { var nCount; var bSelecionou = false; for(nCount=0; nCount<document.frmDados.optEscolaridade.length; nCount++) { if(document.frmDados.optEscolaridade[nCount].checked) { bSelecionou = true; break; } } if(bSelecionou == false) { alert("Selecione o grau de escolaridade !"); return; } if(document.frmDados.optEscolaridade.value=="") { alert("Selecione o grau de escolaridade !"); return; } if(document.frmDados.chkFumante.checked == true) { alert("O Ministrio da sade adverte. Fumar faz mal a sade !"); } document.frmDados.submit(); } </script>
Note que para validarmos ambos os controles estamos utilizando a propriedade checked. A propriedade checked utilizada para verificar se um controle de seleo est marcado ou desmarcado, e serve tanto para radiobuttons como para checkbox. Na primeira validao, note que temos um conjunto de options com o mesmo nome. Isto faz com que o script interprete os controles como um array de controles, nos obrigando a
111
informar o ndice de cada um dos controle antes de acess-los. Criamos uma varivel bSelecionou para verificarmos se o usurio selecionou pelo menos um option button. Caso ele encontre um option button com a propriedade checked igual a true, a varivel bSelecionou ser definida para true, validando o formulrio. Para os outros dois campos, apenas estamos testando a propriedade checked para dar um alerta para o usurio.
15.4.4
Criaremos uma funo que manipule a tag para que o formato digitado seja o pr-definido no cdigo:
<script language=javascript> function EditMask(objField, sMask, evtKeyPress) { var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla; if(document.all) { // Internet Explorer nTecla = evtKeyPress.keyCode; } else if(document.layers) { // Nestcape nTecla = evtKeyPress.which; } sValue = objField.value; // Limpa todos os caracteres de formatao que // j estiverem no campo. sValue = sValue.toString().replace( "-", "" ); sValue = sValue.toString().replace( "-", "" ); sValue = sValue.toString().replace( ".", "" ); sValue = sValue.toString().replace( ".", "" ); sValue = sValue.toString().replace( "/", "" );
112
113
MacAddress IP
function checkMail() { // atribui a varivel x o valor do campo email do formulrio var x = document.forms[0].email.value; /* cria uma varivel com o filtro para fazer a pesquisa na string (neste caso para validar um emaill) */ var filter 9]{2,4})+$/; = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-
//Faz consistncia com o mtodo test da varivel x if (filter.test(x)) alert(Email vlido!'); else alert('Email invlido!'); }
114
back()
Ir uma pgina atrs no histrico de pginas visitadas. Funciona como o boto de voltar da barra de ferramentas. (Javascript 1.2) Tirar o foco da janela atual. (Javascript 1.1)
blur()
captureEvents(eventos)
Captura os eventos que se indiquem por parmetro (Javascript 1.2). Elimina a execuo de sentenas associadas a um intervalo indicadas com o mtodo setInterval().(Javascript 1.2) Elimina a execuo de sentenas associadas a um tempo de espera indicadas com o mtodo setTimeout(). Fecha a janela. (Javascript 1.1) Mostra uma janela de confirmao e permite aceitar ou rejeitar Mostra uma janelinha de busca. (Javascript 1.2 para Netscape) Coloca o foco da aplicao na janela. (Javascript 1.1) Ir uma pgina adiante no histrico de pginas visitadas. Como se clicssemos o boto de adiante do navegador. (Javascript 1.2)
clearInterval()
clearTimeout()
close() confirm(texto)
find()
focus()
forward()
115
home()
Ir pgina de incio o explorador que tenha configurado. (Javascript 1.2) Move a janela do navegador os pixels que se indicam por parmetro para a direita e para baixo. (Javascript 1.2) Move a janela do navegador posio indicada nas coordenadas que recebe por parmetro. (Javascript 1.2) Abre uma janela secundria do navegador. Como se clicssemos o boto de imprimir do navegador. (Javascript 1.2) Mostra uma caixa de dilogo para pedir um dado. Devolve o dado que se escreveu. Deixa de capturar eventos do tipo que se indique por parmetro. (Javascript 1.2) Redimensiona o tamanho da janela, acrescentando ao seu tamanho atual os valores indicados nos parmetros. O primeiro para a altura e o segundo para a largura. Admite valores negativos se se deseja reduzir a janela. (Javascript 1.2) Redimensiona a janela do navegador para que ocupe o espao em pixels que se indica por parmetro (Javascript 1.2) Encaminha um evento pela hierarquia de eventos. (Javascript 1.2) Faz um scroll da janela para a coordenada indicada por parmetro. Este mtodo est desaconselhado, pois agora se debera utilizar scrollTo()(Javascript 1.1) Faz um scroll do contedo da janela relativo posio atual. (Javascript 1.2) Faz um scroll da janela posio indicada pelo parmetro. Este mtodo tem que ser utilizado ao invs do scroll. (Javascript 1.2)
moveBy(pixelsX, pixelsY)
moveTo(pixelsX, pixelsY)
open() print()
prompt(pergunta,inicio_da_resposta)
releaseEvents(eventos)
resizeBy(pixelslargo,pixelsAlto)
resizeTo(pixelslargo,pixelsAlto)
routeEvent()
scroll(pixelsX,pixelsY)
scrollBy(pixelsX,pixelsY)
scrollTo(pixelsX,pixelsY)
116
Web, HTML, CSS e JavaScript setInterval() Define um script para que seja executado indefinidamente em cada intervalo de tempo. (Javascript 1.2) Define um script para que seja executado uma vez depois de um tempo de espera determinado. Como clicar o boto de stop da janela do navegador. (Javascript 1.2)
setTimeout(sentena,segundos)
stop()
117
118
<head>
<title>
<body>
<br>
TAG <hn>
O QUE FAZ Marca um ttulo. Sendo que n representa um valor que pode ser de 1 a 6, o tamanho muda de forma decrescente, ou seja, o nmero 1 o maior tamanho do ttulo. Insere uma linha horizontal Marca um pargrafo Centraliza todo o contedo entre as tags <center> e </center> Coloca o texto em negrito Coloca o texto em itlico
<b> <i>
119
Web, HTML, CSS e JavaScript <u> <tt> Coloca o texto sublinhado Coloca o texto em fonte monoespaada. (fonte Courier,como mquina de escrever) Modifica a formatao do texto. Atributos: Size = define o tamanho da letra. Ex: <font size=5>Texto</font> Face = define o estilo da letra. Ex: <font face=verdana>Texto</font> Color = define a cor da letra. Ex:<font color=red>Texto</font>
<font>
<pre>
Marca um trecho formatado com fonte monoespaada. A formatao com espaos e entrada de pargrafos respeitada. Modifica a formatao padro do texto. Ex: <basefont size=5>
<basefont>
TAG <ol>
O QUE FAZ Marca o incio e o fim de uma lista ordenada. Recebem na primeira linha um nmero ou letra. Atributos: Start = especifica o nmero a partir do qual os itens comeam a ser contados. Ex: <ol start=3> Type = modifica o tipo do numerador que pode ser: nmero, letras ou algarismo romano.
<ul>
Marca o incio e o fim de uma lista no ordenada, ou seja, os itens da lista recebem smbolos na primeira linha. Atributos Type = modifica o tipo do marcador (smbolo), que pode ser: Circle = um crculo vazio. Disc = um crculo cheio. Square = um quadrado cheio
<li>
120
TAG <img>
O QUE FAZ Insere uma imagem Atributos src indica o nome da imagem a ser carregado. align=middle centraliza o base do texto com o centro da imagem align=left faz a imagem flutuar a esquerda enquanto o texto circunda imagem direita. align=top alinha o texto no topo align=right faz a imagem flutuar a direita enquanto o texto circunda imagem esquerda. alt=n indica o texto para ser exibido quando o navegador no exibe a imagem. Sendo que n o ttulo que identifique a imagem. Exemplo: <img src=fig.jp alt=Esta uma imagem legal>
TAG <a>
O QUE FAZ Define um link Atributos Href: indica o endereo do link. Target: define onde o link ser aberto: _blank define que ser aberta uma nova janela.
TAG <table>
O QUE FAZ Define uma tabela. Antes e depois de uma tabela, acontece sempre uma quebra de linha. Atributos Border: define espessura da borda da tabela Cellspacing: espao entre cada clula Cellpadding: distncia entre borda e contedo de cada clula. Width: largura da tabela, em pixels ou valor percentual
<tr>
121
Web, HTML, CSS e JavaScript Align: valores left, right e center definem o alinhamento horizontal. Valign: valores top, middle e bottom definem o alinhamento vertical. <td> Esta a marcao que define cada clula de uma tabela. As clulas de uma tabela devem sempre aparecer entre as marcaes de linhas (<tr> e </tr>). Como padro, o texto nas clulas alinhado a esquerda. Atributos Align: valores left, right e center definem o alinhamento horizontal. Valign: valores top, middle e bottom definem o alinhamento vertical. Nowrap: no h quebra de linhas dentro das clulas Colspan: nmero de colunas que a clula ir ocupar Rowspan: nmero de linhas que a clula ir ocupar Width: largura da clula, em pixels ou valor percentual <th> Desta forma so definidos os ttulos de uma tabela. Estes podem ser posicionados em qualquer clula. A diferena entre a marcao de clula e ttulo de clula que o ttulo aparece em negrito. Atributos: os mesmos apresentados acima, para td
TAG <form>
O QUE FAZ Define um formulrio Atributos method: get, que envia as informaes na prpria URL, ou post, que envia de forma no visvel para o usurio action: url que ser chamada, a priori um aplicativo capaz de tratar os dados enviados pelo formulrio (PHP, ASP, JSP).
<input>
Define uma entrada de dados Atributos Type: text, campo tipo texto; password, para senhas; hidden, no aparece para o usurio; checkbox, para marcar; radio, para escolher entre um conjunto de opes. submit cria um boto para enviar os dados e reset um boto para limpar o formulrio.
122
Web, HTML, CSS e JavaScript Name: nome do campo Value: valor pr-definido para o campo Size: tamanho do campo a ser exibido Maxlength: tamanho mximo de caracteres Checked: para campos checkbox e radio, define como marcado <textarea> Define uma entrada de texto com vrias linhas Atributos Rows: nmero de linhas Cols: nmero de colunas <select> Define uma lista de opes para selecionar Atributos Name: nome do campo Multiple: permite selecionar vrios campos da lista Site: define o nmero de linhas a serem exibidas <option> Item de uma lista aberta Atributos Value: valor do campo se este item for selecionado Selected: indica que este valor est selecionado
123
Ateno: Note que com apenas essas marcaes o documento da estrutura - Frame Document - no funciona. necessrio que esteja definido algum atributo para as reas de frameset, assim como associadas urls a cada frame, como veremos mais adiante.
Ateno II: Voc poder ter - e provavelmente ter - vrios <frameset> intercalados. Da mesma foma como possvel intercalar listas, ou tabelas em HTML.
</html>
Cada uma destas marcaes - <frameset> e <frame> - aceita extenses, valores e atributos, como veremos a seguir.
124
125
<frameset rows="20%, 60%, 20%"> <frame src="cell1.html"> <frame src="cell2.html"> <frame src="cell3.html"> </frameset>
</html>
2.Trs janelas horizontais, sendo que a primeira e a segunda tem uma altura fixa, e o frame central dever ocupar o restante do espao: <html> <head> <title></title> </head>
<frameset rows="30, *, 50"> <frame src="cell1.html"> <frame src="cell2.html"> <frame src="cell3.html"> </frameset>
126
</html>
127
2. COLS (<frameset cols=valor, valor, valor.. >) Funciona exatamente como a marcao anterior, no entanto, divide a tela em frames ou janelas verticais. Exemplos Para dividir a tela do browser em trs janelas verticais 1.Trs colunas, sendo que a do meio mais larga que as de cima e de baixo: <html> <head> <title></title> </head>
<frameset cols="20%, 60% ,20%"> <frame src="cell1.html"> <frame src="cell2.html"> <frame src="cell3.html"> </frameset>
</html>
128
2.Trs janelas verticais, sendo que a primeira e a segunda tem uma altura fixa, e o frame central dever ocupar o restante do espao: <html> <head> <title></title> </head>
<frameset cols="200, *, 100"> <frame src="cell1.html"> <frame src="cell2.html"> <frame src="cell3.html"> </frameset>
</html>
Ateno, para intercalar janelas verticais e horizontais, ser necessrio definir vrias reas "FRAMESET". Para cada rea delimitida como "FRAMESET" voc poder definir nmero de linhas OU colunas. Veremos como faz-lo mais adiante. No possvel definir COLS e ROWS para uma mesma rea FRAMESET.
129
18.1.2 Frame
A marcao FRAME define cada janela contida em uma rea frameset. Esta marcao no necessita de uma tag de finalizao (</frame>) e aceita 6 atributos possveis: 1. SRC="url" O atributo SRC define a URL que ser exibida em cada frame. 2. NAME="nome_da_janela" Este atributo utilizado para associar um nome a uma janela. Deve ser usado quando uma janela - frame - for o destino de um link em outro documento (normalmente no mesmo documento. Um frame apontando para outro. Tipo um ndice abrindo vrias urls em outras janelas). Este atributo opcional. Por padro, os frames no tem nome. Importante, o nome_da_janela deve comear por caracter alfanumrico. 3. MARGINWIDTH="valor" Esse atributo controla as margens esquerda e direita de cada frame, ou seja, a distncia entre o contedo da pgina e as margens da janela. O valor associado ser um valor absoluto em pixels. O menor valor aceito ser 1. Este atributo opcional, caso no venha definido, o browser usar o seu padro para definir as margens no frame/janela. 4. MARGINHEIGHT="valor" Tambm um atributo opcional. Funciona exatamente como o anterior, s que determina as margens superior/inferior em cada frame. 5. SCROLLING="yes/no/auto" Novamente, um atributo opcional, que define se uma janela deve possuir barra de rolagem ou no. Caso seja definido como YES, a janela sempre possuir uma barra de rolagem visvel. Caso seja definido como NO, nunca haver barra de rolagem. E, finalmente, se vier como AUTO, o browser aplicar a barra quando necessrio. O padro AUTO, portanto, se o atributo scrolling no vier definido, o browser aplicar a barra de rolagem, sempre que necessrio. 6. NORESIZE
130
Este atributo no possui valor associado. Quando ele no aparece, o usurio poder alterar o tamanho da janela, "arrastando" com o cursor a borda da mesma. O padro que todas as janelas possam ter seu tamanho alterado. NORESIZE opcional Um frame, com todos os atributos definidos seria escrito assim, por exemplo: <frame src=http://www.empresa.com.br marginheight=5 scrolling=auto noresize> name=home marginwidth=5
131
Noframes Esta marcao possibilita que se crie uma opo de navegao na pgina para quem no possui um browser que entende frames. Esta marcao aparece no documento de estrutura "Frame document", e sempre usada em pares (<noframes>.. contedo... </noframes>). Quando o acesso for feito atravs de um browser que entenda frames, o que estiver entre as marcaes "noframes" ser simplesmente ignorado. Internamente a uma rea "noframes" dever ser usada a estrutura padro de documentos html (<head> </head>, <title> </title> <body> </body>, etc...).
132
Um exemplo:
<html> <head> <title>Teste, uso de frames</title> </head> <FRAMESET ROWS="15%, 85%"> <NOFRAMES> <body bgcolor="#000000" text="#ffff00" link="#ff0000" > Bem-vindo a uma pgina de teste.<p> Para acess-la, voc deve utilizar a verso 2.0 ou acima do <i>browser</i><a href="http://home.netscape.com/comprod/mirror/index.html"> Netscape Navigator!</a> </p> <hr> </body> </NOFRAMES> <FRAMESET COLS="25%, 75%"> <FRAME NAME="1" SRC="teste1.htm" NORESIZE> <FRAME NAME="2" SRC="teste2.htm" NORESIZE> </FRAMESET> <FRAMESET COLS="30%, 70%"> <FRAME NAME="3" MARGINWIDTH="50" SRC="teste3.htm"> <FRAMESET ROWS="65%, 35%"> <FRAME NAME="4" SRC="teste4.htm" NAME="chat"> <FRAME NAME="5" SRC="teste5.htm"> </FRAMESET> </FRAMESET> </FRAMESET> </html>
133
Veja como ela exibida, por exemplo, com o MOSAIC (no l frame) e com o INTERNET EXPLORER (l frame). MOSAIC - no l frame INTERNET EXPLORER - l frame
Links entre frames A marcao TARGET, permite que se controle em qual janela um link especfico ser exibido quando o usurio clicar sobre ele. Por exemplo, pode-se ter uma janela lateral com uma espcie de indce do servio de informao e outra janela em que a navegao propriamente dita vai ocorrer. Desta forma, o ndice est permanentemente disponvel durante toda a consulta. Para utilizar este recurso voc dever: Atribuir um "name" a cada frame em seu "frame document" (name="valor"). No documento onde ser criado um link, que vai aparecer em outra janela, ao criar o link, acrescentar a marcao target="valor"" ncora, da seguinte forma: <a href="URL" target="valor"> Onde este valor idntico quele associado marcao name no frame document. Exemplo:
134
135
O frame document dever ser escrito assim: <html> <HEAD> <title>Apostila de HTML</title> </head> <frameset rows="30%, 70%"> <frame src="cell1.html" name=frame1> <frame src="cell2.html" name=frame1> </frameset> </html>
o documento que contm o ndice de navegao (barra.htm), ser assim: <HTML> <BODY>
</BODY> </HTML>
136