HTML, XHTML & CSS 6ª Edição GUIA PRÁTICO VISUAL by Elizabeth Castro Rio de janeiro, 2010 Para todos os meus pais (os quatro!) Que nem sempre concordam, Mas que me ajudaram de todos os modos. Agradecimentos especiais para: Nancy Davis , da Peachpit Press, que me deu ma mais perfeita combinação de encorajamento, edição e amizade. Andrei Pastermak e Mimi Heft, e todos os demais da Peachpit Press, por toda a ajuda em fazer este livro ser publicado. Kate Reber e Nolan Hester, que trabalharam na Peachpit Press, pela ajuda com as edições anteriores deste livro. A Web é um recurso inacreditável. As pessoas não apenas compartilham seus conhecimentos livremente em seus sites Web, mas, também, são inacreditavelmente generosas com seu tempo, respondendo minhas perguntas independentemente de serem simples. Em particular, eu gostaria de agradecer a Larry Ullman, cujo PHP for the World Wide Web: Visual Quickstart Guide, Second Edition é um modo excelente de começar com PHP, e que, bondosamente, ajudou-me a polir meus primeiros scripts (http://dmcinsights.com/phpmysql/), Richard Ishida, cujos tutoriais no W3C (http://www.w3.org/International/) para criar sites para vários idiomas são valiosos; Patrick Woolsey, da Barebones Software (http://www.barebones. com), por respostas muito rápidas e úteis para todas as minhas perguntas sobre meus códigos e BBEdit, Alan Wood, cujo site Unicode Resources Web (http://www.alanwood. net/unicode/) foi uma grande fonte de informação para o capítulo sobre Símbolos e Caracteres de Outros Idiomas, Jeffrey Zeldman, cuja revista online, A List Apart (http:// www.alistapart.com), é uma fonte essencial para designers Web, e Paul Bottin, Douglas Bowman, Dan Cederholm, Patrick Griffiths, Ian Hickson, Molly Holzschlag, Steve Krug, Drew McLellan, Eric Meyer, John Oxton, Dave Shea, Geoff Stearns e Danny Sullivan, cujos livros, blogs, sites e generosidade em muito me inspiraram. Andreu, por seus comentários, por suas grandes dicas sobre Photoshop e por dividir sua vida comigo; e meus doces filhos, a quem agora posso responder, “Sim, posso brincar com vocês agora”. Llumi e Xixo, por perseguirem tomates cereja e um ao outro pelo meu escritório e por me ajudar a pensar em exemplos de documentos (X)HTML; e nova geração de Sky, Night e Sir Edmund, por quem ainda esperamos. E a todos os leitores das versões anteriores deste livro, que tomaram tempo para escrever-me suas críticas, perguntas e sugestões. Sumário Introdução............................................................13 Capítulo 1: Sumário A Internet, a Web, e HTML..........................................................14 Aberta, mas Não Igual................................................................15 A Batalha dos Navegadores........................................................16 A Pressão por Padrões.................................................................17 CSS e Adoção pelos Navegadores.................................................20 XHTML vs HTML: Qual Você Deve Usar?.....................................21 Como Este Livro Funciona..........................................................23 O Que Mudou na Sexta Edição...................................................24 O Web Site VQS de HTML...........................................................26 Os Tijolos da Web................................................ 27 Marcação: Elementos, Atributos e Valores...................................28 O Conteúdo de Texto de uma Página Web..................................32 Links, Imagens e Outros Conteúdos que Não Texto.....................33 Nomes de Arquivo.......................................................................34 URLs............................................................................................35 HTML vs XHTML.........................................................................38 Versões, Variações e DOCTYPE...................................................40 A Exibição Padrão de (X)HTML..................................................42 Capítulo 2: Trabalhando com Arquivos de Página Web.............43 Desenhando seu Site...................................................................44 Criando uma Nova Página Web.................................................45 Salvando sua Página Web..........................................................46 Sobre o Microsoft Word e Páginas Web.......................................48 Especificando uma Página Padrão ou "Home"..........................49 Editando Páginas Web................................................................50 Organizando Arquivos...............................................................51 Visualizando sua Página em um Navegador..............................52 A Inspiração dos Outros..............................................................53 5 Sumário Capítulo 3: Estrutura Básica de (X)HTML...................................55 Começando sua Página Web......................................................56 Criando a Fundação..................................................................58 Declarando a Codificação..........................................................59 Criando um Título......................................................................60 Criando Cabeçalhos de Seção.....................................................61 Iniciando um Novo Parágrafo....................................................62 Nomeando Elementos..................................................................63 Dividindo uma Página...............................................................64 Criando Spans Em Linha.............................................................65 Criando uma Quebra de Linha..................................................66 Adicionando Comentários..........................................................67 Rotulando Elementos em uma Página Web................................68 Capítulo 4: Formatação Básica de (X)HTML..............................69 Sumário Tornando Texto Negrito ou Itálico..............................................70 Alterando o Tamanho do Texto...................................................71 Usando uma Fonte Monoespaçada.............................................72 Usando Texto Pré-formatado......................................................73 Citando Texto.............................................................................74 Criando Sobrescritos e Subscritos................................................76 Marcando Mudanças de Texto...................................................77 Explicando Abreviações..............................................................78 Centralizando Elementos em uma Página..................................79 Capítulo 5: Imagens................................................................81 Sobre Imagens para a Web..........................................................82 Obtendo Imagens........................................................................86 Escolhendo um Editor de Imagens..............................................87 O Comando Salvar para a Web..................................................88 Inserindo Imagens em uma Página............................................90 Oferecendo Texto Alternativo......................................................91 Especificando o Tamanho para Visualização mais Rápida........92 Para dimensionar uma imagem:................................................94 Diminuindo imagens..................................................................95 Fazendo as Imagens Flutuarem..................................................96 Impedindo Elementos de Contornar............................................98 Adicionando Espaço ao redor de uma Imagem..........................99 Alinhando Imagens..................................................................100 Adicionando Linhas Horizontais..............................................101 Adicionando um Ícone para sua Página Web .........................102 Capítulo 6: Links...................................................................103 Criando um Link para Outra Página Web................................104 Criando Âncoras......................................................................106 Linkando para uma Âncora Específica....................................107 Apontando Links para uma Janela Específica..........................108 Ajustando o Alvo Padrão..........................................................109 Criando Outros Tipos de Links...................................................110 Criando Atalhos no Teclado para Links....................................112 Ajustando a Navegação pela Tecla TAB para Links...................113 Usando Imagens para Rotular Links.........................................114 Linkando Thumbnails para Imagens........................................115 Dividindo uma Imagem em Regiões Clicáveis...........................116 Criando uma Imagem Mapeada no Computador do Usuário...117 6 Sumário Capítulo 7: Construindo Blocos com Folhas de Estilo..............119 Construindo uma Regra de Estilo.............................................120 Adicionando Comentários para as Regras de Estilo..................121 Cascata: Quando as Regras Colidem........................................122 O Valor de uma Propriedade....................................................124 Capítulo 8: Trabalhando com Arquivos de Folhas de Estilo.....127 Criando uma Folha de Estilo Externa.......................................128 Linkando Folhas de Estilo Externa............................................129 Oferecendo Folhas de Estilo Alternativas...................................130 Criando uma Folha de Estilo Interna........................................131 Importando Folhas de Estilo Externas.......................................132 Usando Folhas de Estilo Específicas para Mídia........................133 Aplicando Estilos Localmente....................................................134 A Importância da Localização.................................................135 A Inspiração dos Outros: CSS....................................................136 Sumário Capítulo 9: Definindo Seletores..............................................137 Construindo Seletores...............................................................138 Selecionando Elementos pelo Nome...........................................139 Selecionando Elementos por ID ou Classe..................................140 Selecionando Elementos por Contexto.......................................141 Selecionando Parte de um Elemento.........................................144 Selecionando Elementos de Links Baseados em Seu Estado.......146 Selecionando Elementos Baseado em Atributos.........................147 Especificando Grupos de Elementos..........................................148 Combinando Seletores..............................................................149 Capítulo 10: Formatando com Estilos........................................151 Escolhendo uma Família de Fontes...........................................152 Especificando Fontes Alternativas..............................................153 Criando Itálico.........................................................................154 Aplicando Formatação em Negrito...........................................155 Ajustando o Tamanho da Fonte................................................156 Ajustando a Altura da Linha....................................................158 Ajustando todos os Valores de Fontes de uma Vez.....................159 Ajustando Cor...........................................................................160 Alterando o Fundo do Texto......................................................161 Controlando o Espaçamento.....................................................162 Adicionando Recuo..................................................................163 Ajustando as Propriedades do Espaço em Branco.....................164 Alinhando Texto.......................................................................165 Alterando Maiúsculo/Minúsculo...............................................166 Usando Letras Minúsculas........................................................167 Decorando Texto......................................................................168 Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 7 Sumário Sumário Capítulo 11: Layout com Estilos...............................................169 Estruturando Suas Páginas.......................................................170 O Modelo Caixa........................................................................171 Alterando o Fundo....................................................................172 Ajustando a Altura ou a Largura de um Elemento...................174 Ajustando Margens ao Redor de um Elemento.........................176 Adicionando Espaço Extra ao Redor de um Elemento..............177 Compensando Elementos No Fluxo Natural..............................178 Posicionando Elementos em Absoluto.......................................179 Afixando um Elemento à Janela do Navegador.......................180 Fazendo os Elementos Flutuar...................................................181 Controlando Onde os Elementos Flutuam.................................182 Posicionando Elementos em 3D................................................183 Ajustando a Borda....................................................................184 Alterando o Cursor...................................................................186 Determinando Direção do Sobrefluxo.....................................187 Alinhando Elementos Verticalmente.........................................188 Capítulo 12: Efeitos Dinâmicos com Estilos...............................189 Exibindo e Ocultando Elementos..............................................190 Criando Botões Rollover............................................................192 Criando Pop-ups.......................................................................193 Criando Menus Suspensos com Listas........................................194 Substituindo Cabeçalhos por Imagens......................................196 Capítulo 13: Folhas de Estilo para Dispositivos de Mão............199 Mobilidade vs. Miniaturização.................................................200 Olhando para Seu Site..............................................................201 XHTML e CSS para Dispositivos de Mão....................................202 Criando Folhas de Estilo para Dispositivos de Mão...................204 Ocultando Elementos Estranhos...............................................205 Criando e Usando um Cabeçalho de Imagem...........................206 Criando Links Extras Para Cima...............................................207 Ajustando para Tela Pequena...................................................208 Capítulo 14: Folhas de Estilo para Impressão...........................209 Criando uma Folha de Estilo para Impressão............................210 Como Diferem as Folhas de Estilo para Impressão.....................211 Controlando Quebras de Página...............................................212 Imprimindo URLs de Links........................................................213 Controlando Linhas Viúvas e Órfãs..........................................214 Capítulo 15: Listas..................................................................215 Criando Listas Ordenadas e Desordenadas...............................216 Escolhendo seus Marcadores (Bullets).......................................218 Escolhendo Onde Começar a Numeração da Lista....................219 Usando Marcadores Personalizados.........................................220 Controlando Onde Marcadores Começam................................221 Ajustando Todas as Propriedades de Estilo da Lista de uma Vez....222 Criando Listas de Definição......................................................223 Formatando Listas Embutidas...................................................224 8 Sumário Capítulo 16: Tabelas..............................................................227 Capítulo 17: Sumário Mapeando a Sua Página..........................................................228 Criando uma Tabela Simples....................................................229 Adicionando uma Borda..........................................................230 Ajustando a Largura................................................................232 Centralizando uma Tabela........................................................234 Contorno de texto pela tabela...................................................235 Combinando Tabelas................................................................236 Alinhando o Conteúdo de uma Célula......................................238 Alterando o Fundo....................................................................240 Controlando o Espaço...............................................................242 Expandindo uma Célula através de Colunas............................244 Expandindo uma Célula através de Linhas..............................245 Dividindo sua Tabela em Grupos de Colunas...........................246 Dividindo a Tabela em Seções Horizontais...............................248 Escolhendo Quais Bordas Exibir................................................249 Controlando Quebras de Linha em uma Célula........................251 Acelerando a Exibição da Tabela.............................................252 Formulários.........................................................253 Criando um Formulário...........................................................254 Processando Formulários..........................................................256 Enviando Dados de Formulário por E-mail..............................258 Organizando os Elementos do Formulário...............................260 Criando Caixas de Texto...........................................................262 Criando Caixas para Senhas....................................................263 Formalmente Rotulando Partes do Formulário.........................264 Criando Botões de Seleção........................................................265 Criando Menus.........................................................................266 Criando Caixas de Seleção.......................................................268 Criando Áreas de Texto Maiores...............................................269 Permitindo aos Visitantes Subir Arquivos.................................270 Criando Campos Ocultos..........................................................271 Criando o Botão de Envio.........................................................272 Reiniciar o Formulário.............................................................274 Usando uma Imagem para Enviar Dados.................................276 Ajustando a Navegação via Tecla TAB para um Formulário....277 Adicionando Atalhos de Teclado..............................................278 Desabilitando Elementos do Formulário...................................279 Evitando que os Elementos Sejam Alterados..............................280 Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 9 Sumário Capítulo 18: Vídeo, Áudio e outras Mídias...............................281 Sumário Sobre Plugins e Players..............................................................282 Obtendo Plugins para seus Visitantes........................................283 Obtendo Arquivos Multimídia...................................................284 Criando Links para Arquivos Multimídia..................................285 Embutindo Filmes QuickTime para Windows...........................286 Embutindo Filmes QuickTime para Todos, além de IE..............288 Embutindo Filmes QuickTime para Todos................................290 Usando JavaScript para Chamar um Filme...............................292 Alterando o Tamanho de um Filme em QuickTime...................294 Alterando a Cor de Fundo de um Filme....................................295 Repetindo um Filme em QuickTime..........................................296 Oferecendo Pré-Visualização de um Filme...............................297 Adicionando Atributos para Filmes Secundários......................298 Oferecendo Seqüência..............................................................299 Embutindo MP3 em uma Página.............................................300 Embutindo Windows Media, Parte 1........................................302 Embutindo Windows Media, Parte 2.........................................304 Embutindo Flash......................................................................305 Embutindo Vídeos do Google e YouTube...................................306 Inserindo Applets Java...............................................................308 Embutindo Outros Arquivos Multimídia...................................309 Criando um Slide Show Automático.........................................310 Capítulo 19: Scripts.................................................................311 Adicionando um Script "Automático".......................................312 Chamando um Script Automático Externo...............................313 Acionando um Script................................................................314 Criando um Botão que Executa um Script...............................316 Acrescentando Informações Adicionais....................................317 Ocultando Scripts de Navegadores mais Antigos.......................318 Ocultando Scripts de Parsers XML............................................319 Definindo a Linguagem de Script Padrão.................................320 Capítulo 20: Um Pouco de Java Script......................................321 Acrescentando Data e Hora Atuais...........................................322 Definindo o Tamanho de Uma Nova Janela..............................323 Alterando uma Imagem Quando um Visitor Aponta o Mouse...324 Carregando Imagens em Cache................................................326 Capítulo 21: Símbolos e Caracteres em Outros Idiomas............327 Sobre Codificação de Caracteres...............................................328 Declarando a Codificação de Caracteres de Sua Página..........330 Declarando a Codificação de uma Folha de Estilo...................332 Salvando a Sua Página com a Codificação Apropriada...........333 Editando a Página com a Codificação Apropriada..................334 Acrescentando Caracteres Além da Codificação.......................336 Especificando o Idioma de uma Página...................................338 10 Sumário Capítulo 22: Testando e Depurando Páginas Web....................339 Algumas Técnicas de Depuração..............................................340 Verifique as Coisas Mais Fáceis Primeiro!................................341 Verificando as Coisas Mais Fáceis: HTML.................................342 Verificando as Coisas Mais Fáceis: XHTML.................................343 Verificando as Coisas Mais Fáceis: CSS.....................................344 Validando Seu Código:..............................................................345 Testando Sua Página:...............................................................346 Quando o Navegador Exibe o Código:.......................................348 Quando as Imagens Não Aparecem:.........................................349 Diferenças entre Navegadores...................................................350 Ainda com Problemas?..............................................................351 Capítulo 23: Publicando suas Páginas na Web.........................353 Capítulo 24: Sumário Encontrando um Host para seu Site..........................................354 Obtendo seu Próprio Nome de Domínio....................................355 Transferindo Arquivos para um Servidor..................................356 Obtendo Visitantes..............................................361 Sobre Palavras-chave................................................................362 Listando Palavras-chave Explicitamente...................................363 Fornecendo uma Descrição da Sua Página..............................364 Controlando Outras Informações.............................................365 Mantendo Visitantes Longe.......................................................366 Evitando que as Páginas Sejam Arquivadas..............................367 Criando um Mapa de Site Manualmente..................................368 Usando Mapas de Site do Google...............................................369 Enviando Seu Site para um Mecanismo de Busca.....................370 Melhorando sua Posição ao Ser Linkado..................................371 Escrevendo Páginas Fáceis de Indexar......................................372 Outras Técnicas para Promover Seu Site...................................373 Capítulo 25: Licenciamento e Podcasting..................................375 Com o que um Feed se Parece...................................................376 Aprontando-se para Licenciamento..........................................378 Iniciando um Feed RSS.............................................................379 Descrevendo seu Site no Feed....................................................380 Adicionando Itens para um Feed..............................................382 Adicionando um anexo.............................................................384 Criando Podcasts para iTunes..................................................386 Validando um Feed...................................................................392 Enviando um Podcast para iTunes...........................................393 Publicando seu Feed RSS em Seu Site........................................394 Assinando um Feed RSS............................................................396 Assinando um Podcast com iTunes...........................................397 Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 11 Sumário Apêndice A: Referência (X)HTML.................................................399 Apêndice B: Propriedades e Valores CSS.....................................409 Apêndice C: Eventos Intrínsecos..................................................417 Apêndice D: Símbolos e Caracteres (X)HTML...............................419 Apêndice E: Hexadecimais..........................................................431 Apêndice F: Ferramentas (X)HTML..............................................433 Editores (X)HTML..........................................................................434 Imagens e Gráficos.......................................................................436 Ferramentas Gráficas....................................................................436 Índice Remissivo.....................................................437 Sumário Colofão.........................................................................................445 12 INTRODUÇÃO i A World Wide Web é a imprensa de Gutemberg de nosso tempo. Quase todo mundo pode criar seu próprio Web site e, então, apresentá-lo ao público na Internet. Algumas páginas Web pertencem a empresas com serviços à venda, outras, a indivíduos com informação a compartilhar. Você decide como será sua página. HTML não é difícil de aprender ou de dominar. É muito mais um exercício em conformidade e cuidadosa digitação do que procedimentos extremamente complicados. Você pode ter uma página simples em HTML em execução em poucos minutos. E, enquanto há muitos programas que criarão códigos em HTML para você, escrever em HTML para si próprio significa que você não terá de estudar novos softwares nem estar limitado aos seus recursos. Neste livro, você encontrará instruções claras e fáceis que lhe conduzirão através do processo de criar páginas Web passo a passo. É ideal para iniciantes, sem conhecimento de HTML, que deseja começar a criar páginas Web. Se você já conhece HTML, este livro é um perfeito guia de referência. Você pode procurar por tópicos no índice remissivo e consultar apenas aqueles assuntos sobre os quais precisa de mais informação. Você também encontrará no site da editora, na página do livro, todos os exemplos, tabelas etc., apresentados neste livro. Visite www.altabooks.com.br 13 Introdução Todas as páginas Web são escritas em alguma forma de HTML. HTML permite que você formate texto, adicione elementos gráficos, som e vídeo e salve tudo em um arquivo de texto que qualquer computador pode ler. Introdução A Internet, a Web e HTML A Internet, a Web e HTML Certo, você já ouviu falar de Internet, mas o que é isso exatamente? De maneira simples, a Internet é uma coleção de computadores que estão conectados uns aos outros. Muitas pessoas têm conexões de banda larga de alta velocidade por 24 horas - por meio de DSL, cabo ou satélite - enquanto outros utilizam um modem para conectar seus computadores de casa durante um certo período de tempo a cada dia. Independente do tipo de conexão, uma vez que você se conectou, você e seu computador tornam-se parte da Internet e estão ligados a todos os outros computadores que estão também conectados naquele momento. A World Wide Web, por sua vez, é muito mais etérea. É uma coleção caleidoscópica e sempre em transformação de centenas de milhões de documentos, todos os quais residem em algum lugar da Internet, e são escritos em alguma forma de HTML. HTML, ou HyperText Markup Language (Linguagem de Marcação de HiperTexto), apresenta duas características essenciais: hipertexto e universalidade. Hipertexto quer dizer que você pode criar um link em uma página Web que conduz o visitante a qualquer outra página Web ou para praticamente tudo na Internet. Isso quer dizer que a informação na Web pode ser acessada de muitas direções diferentes. Tim Berners-Lee, o criador da Web, queria que ela funcionasse mais como o cérebro de uma pessoa e menos como uma fonte estática de dados, tal como um livro. Universalidade implica em, já que os documentos em HTML são salvos como Arquivos de Texto Somente, virtualmente qualquer computador possa ler uma página Web. Não importa se seus visitantes tenham máquinas com Macintosh ou Windows, ou se estão em uma caixa Unix ou mesmo em um dispositivo de mão, como um Palm. A Web está aberta para todos. 14 Introdução Aberta, mas Não Igual Porém, enquanto o HTML está aberto para todos, isso não significa que todos a veem da mesma maneira. É algo como o Central Park, em Nova York. Eu e você podemos dar um passeio por lá. Entretanto, se você vive em um apartamento de cobertura na Quinta Avenida e eu durmo em bancos de praça, nossa visão do parque será bem diferente. Mas, enquanto você se preocupa, lembre-se que o nosso controle é limitado. Enquanto o Departamento de Turismo de Nova York gostaria de assegurar que todos aproveitem muito o tempo na cidade, eles não estão entregando reservas grátis para o Park Plaza Hotel, e algumas pessoas não as aceitariam mesmo que o fizessem, preferindo acomodações mais simples ou a casa da irmã. Você compreendeu a ideia. A moral é esta: as pessoas visualizarão suas páginas com configurações muito diferentes. Crie suas páginas de acordo com elas – assim, o maior número de visitantes poderá ver sua página o mais perto possível do modo como você as queria. Este livro lhe mostrará como. Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 15 Aberta, mas Não Igual Assim é com o HTML. Apesar de que praticamente todos os computadores possam exibir páginas Web, como estas páginas parecerão, depende do tipo de computador, do monitor, da velocidade de conexão à Internet e, por último, do software utilizado para visualizar a página: o navegador. Os mais populares navegadores atualmente são o Internet Explorer, Firefox, Opera e Safari com os dispositivos de mão e PDAs ganhando popularidade a cada dia. Infelizmente, nenhum destes navegadores exibem uma página Web exatamente como os demais. Assim, acontece que de nada adianta desenhar um belo parque, é preciso se preocupar com a acomodação dos seus visitantes. Introdução A Batalha dos Navegadores A Batalha dos Navegadores Agora, imagine o que aconteceria se cada hotel e cada edifício de apartamentos na Quinta Avenida delimitassem um pedaço do Central Park e o cercasse, limitando o acesso aos seus próprios residentes. Seria muito ruim se alguns de nós, nos bancos do parque, pudessem apenas espiar as áreas "exclusivas". Porém, há, também, o problema de que pessoas de um hotel não poderiam entrar no pedaço do parque que pertence a outro hotel. Ao invés de um recurso público rico, cheio de patinadores, carrinhos de cachorro quente e idosos passeando, o parque seria dividido em lotes pequenos, estéreis e isolados. Em 1994, a Netscape Communications cravou as primeiras cercas na Web com a chamada Batalha dos Navegadores. Para atrair usuários, jogaram a universalidade pelos ares e criaram um conjunto de extensões a HTML que apenas a Netscape poderia lidar. Por exemplo, quem surfava na Web usando Netscape poderia ver páginas com texto colorido, fotografias e outros avanços. Aqueles que tinham qualquer outro navegador veriam erros e resultados engraçados ou, até mesmo, nada disso. Mas as pessoas gostaram tanto daquelas extensões que migraram para o "hotel" Nestcape. Por volta de 1996, o programa já tinha se tornado o mais popular programa de computador do mundo. A Microsoft começou a cercar seu próprio pedaço da Web. Novamente, para atrair usuários, a empresa adicionou extensões não padronizadas que apenas o Internet Explorer, o navegador da Microsoft, poderia reconhecer. De acordo com o The Web Standards Project (www.Webstandards.org), fundado por uma coalizão de designers de alto nível desgostosos com a crescente fragmentação da Web, no auge da batalha dos navegadores, os Web designers gastavam inacreditáveis 25% de seu tempo planejando improvisos para comandos exclusivos, escrevendo múltiplas versões de páginas para satisfazer cada navegador e, simplesmente, educando seus clientes sobre a impossibilidade de criar certos efeitos para todos os navegadores. Era uma confusão. 16 Introdução A Pressão por Padrões As Nações Unidas da Web é uma organização chamada World Wide Web Consortium (www.w3.org), frequentemente abreviado como W3C, e dirigida pelo inventor da Web, Tim Berners-Lee. Seu objetivo é convencer a comunidade Web da importância da universalidade enquanto tenta satisfazer sua ânsia por páginas de bela aparência. Seu trabalho é remover as cercas existentes e evitar novas. Ataques à Torre de Marfim Quase sete anos após HTML 4.01 e XHTML tornarem-se Recomendações Oficiais, não há consenso no W3C para onde prosseguir. Quase oito anos depois que CSS2 tornou-se uma Recomendação Oficial, não há um único navegador que o suporte totalmente, apesar do fato de que todo navegador importante foi desenvolvido por um membro do W3C. CSS3 ainda está no estágio Rascunho de Trabalho e, talvez, há anos de seu término, sem dizer na sua implementação. Alguns designers lidaram com a questão com as suas próprias mãos, criando soluções extensíveis baseadas em padrões (http://microformats.org/). Para mais informações, leia o artigo de Jeffrey Zeldman “An Angry Fix” (http://www.zeldman.com/2006/07/17/anangry-fix) e o de John Orton, “No I am not bloody sorry” (http://www.joshuaink/blog/753/ no-i-am-not-bloody-sorry). O que você deve fazer, enquanto isso? Neste entretempo, recomendo o que sempre recomendei: moderação. Siga os padrões, mas não seja um escravo perante eles. Mesmo sabões de marfim são 99,4% puros. HTML 3.2: Começa a padronização A primeira resposta do W3C à fragmentação da Web foi a de padronizar as extensões exclusivas, incluindo algumas nas especificações oficiais e removendo outras. Ao mesmo tempo, encorajaram os fabricantes de navegadores a apoiar as especificações oficiais de HTML ao máximo possível, para que uma página escrita conforme os padrões se comportasse da mesma maneira em todos os navegadores. Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 17 A Pressão por Padrões Ultimamente (meados de 2006), havia um crescente de vozes erguendo-se em reclamações contra a lentidão do W3C, muita ênfase no abstrato e falta de resultados concretos. Muitos Web designers, incluindo aqueles que conduziram a carga pela padronização, sentiram-se ignorados pelo W3C e seus apoiadores corporativos. A lista de membros do W3C (http://www. w3c.org/Consortium/Member/List) parece um Quem é Quem dos formadores de opinião da Web e inclui players de longa data, como a Apple (que obteve fama com iTunes e iPod, entre outros), Adobe (fabricante de importantes ferramentas de design como Photoshop), América Online (que absorveu a Netscape Communications quando de sua implosão, em 1998), Opera (fabricantes dos navegadores Opera para computadores de mesa e dispositivos de mão), a Microsoft (cujo navegador Internet Explorer pegou o primeiro lugar da Netscape e não olhou para trás) e companhias mais modernas, como Google (o mecanismo de busca ultrapopular, e mais) e Mozilla Corporation (fabricantes dos populares navegadores Firefox, de código aberto, que é o primeiro competidor que o Explorer tem depois de anos). A ideia é que estas companhias reúnam-se e concordem com padrões e, então, tentem diferenciar seus produtos com velocidade, facilidade de uso, preço e outros recursos que não lancem a Web novamente em uma torre de Babel. Introdução A Pressão por Padrões HTML 4 e CSS O passo seguinte do W3C foi muito mais audacioso. A velha versão de HTML reunia conteúdo, estrutura e instruções de formatação em um único documento, que era simples, mas não muito poderoso. O W3C planejou um novo sistema no qual as instruções de formatação seriam salvas em separado do conteúdo e da estrutura e, assim, poderia ser aplicada não apenas para um único parágrafo ou página Web, mas para o site inteiro, se desejado. Desta forma, na nova versão 4 de HTML, o W3C marcou a maioria dos elementos de formatação para futura remoção das especificações. Daquele momento em diante, estes elementos seriam desaprovados, e seu uso, desestimulado. Ao mesmo tempo, criaram o novo sistema de instruções de formatação – chamados Cascade Style Sheets, ou CSS – para preencher a lacuna. As especificações originais para as Cascading Style Sheets limitavam-se, em grande parte, a recriar efeitos de HTML. CSS Nível 2, publicado em 1998 e levemente atualizado para Nível 2.1 em 2006, porém trouxe novas funcionalidades, em particular a capacidade de posicionar elementos em uma página Web com maior precisão. CSS agora não só poderia recriar formatação em HTML, como também criar layouts de aparência profissional. Porém, entre extensões exclusivas e códigos simples e diretos, as próprias páginas em HTML ainda eram confusas. A maioria dos navegadores voltava para trás para acomodálos, sempre de maneira levemente diferente, o que apenas piorava toda a situação. E ainda não havia nenhum sistema padrão para acrescentar novos recursos. HTML não era, simplesmente, uma plataforma firme o suficiente para se construir sobre ela. O W3C decidiu que todos nós precisávamos de um pouco de estrutura. Sua resposta foi XML, ou Extensible Markup Language. 18 Introdução XML e XHTML Do lado de fora, XML parece muito com HTML, completo com tags, atributos e valores. Mas, ao invés de servir como uma linguagem apenas para criar páginas Web, XML é uma linguagem para criar outras linguagens. Você pode usar XML para desenhar sua própria linguagem de marcação personalizada, que você pode usar, então, para formatar seus documentos. Sua linguagem de marcação personalizada conterá tags que de fato descrevem os dados que eles contêm. Porém, como sempre, a força vem com um preço. XML não é nem um pouco leniente como o HTML. Para facilitar o trabalho dos parsers XML – software que lê e interpreta dados em XML – a linguagem requer atenção cuidadosa com letras maiúsculas e minúsculas, aspas, tags de fechamento e outras minúcias. Além do mais, há bilhões de páginas Web já escritas em HTML e milhões de servidores e navegadores que já sabem como lê-las. A solução foi bem inteligente. O W3C reescreveu HTML em XML. Esta nova linguagem tinha todos os recursos de HTML e, assim, podia ser compreendida por qualquer navegador no planeta. E, já que seu léxico inteiro veio de HTML, as pessoas que já sabiam HTML apenas tinham de conhecer algumas regras de sintaxe básicas antes de começar a programar. E, ao mesmo tempo, já que utilizava a sintaxe de XML, ganhou toda a força e flexibilidade do XML, e foi uma fundação perfeita para as CSS. Deveria ser o melhor dos dois mundos. Seu nome? XHTML. Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 19 A Pressão por Padrões E é aí que entra a força do XML: se uma tag identifica dados, estes dados tornam-se disponíveis para outras tarefas. Um programa de software pode ser desenhado para extrair apenas as informações que precisa, talvez juntá-las com outros dados de outras fontes e, finalmente, fornecer a combinação resultante de outra forma, para outro fim. Ao invés de se perder em uma página Web baseada em HTML, a informação rotulada pode ser reutilizada tão frequentemente quanto necessário. Introdução CSS e Adoção pelos Navegadores CSS e Adoção pelos Navegadores Enquanto XHTML e CSS são uma combinação poderosa, havia um pequeno empecilho que continuou a atormentar Web designers: adoção pelos navegadores. Embora não parecesse ser muito problema adicionar extensões de qualquer maneira, quando o assunto veio a ser a adoção séria e integral das especificações, nenhum navegador tinha lidado ainda com esta tarefa. No entanto, é importante observar que eles já fizeram muito. O Netscape 6, completamente reformado de seus dias loucos por extensões, agora apresenta bom suporte a CSS. Pena que sua base de usuários tenha caído para menos de 1 por cento. Firefox 1.5, o dínamo Open Source que nasceu das cinzas da derrocada do Netscape (e foi, até mesmo, chamado de Phoenix e Firebird no começo de sua história), tem excelente suporte a CSS, assim como o Opera 9, cuja base de usuários está se expandindo rapidamente e é comum, particularmente, nos mercados de dispositivos de mão e celulares. E Internet Explorer, atualmente o navegador mais utilizado, tem aprimorado em muito seu suporte a CSS, embora ainda apresente vários bugs clamorosos e o que, às vezes, parecem omissões arrogantes e obstinadas. No fim das contas, a maioria dos usuários usa navegadores que suportam CSS bem ou muito bem. Enquanto o número de usuários em navegadores antigos poderia ter dado às pessoas pausa para considerar uma troca para CSS, este número reduziu-se para menos de 5% (alguns dizem ser menos de 2%), e continua a cair. E mesmo muito destes estão usando Internet Explorer 5.5, cujo suporte, embora não seja ótimo, não era realmente tão ruim. Em resumo, nunca houve um momento tão propício para se mudar com confiança para as CSS. 20 Introdução XHTML vs. HTML: Qual Você Deve Usar? Há muitas pessoas por aí que irão lhe dizer que HTML é ruim e que XHTML é a única solução. Acho que isso é tolice. XHTML é um grande avanço em relação ao HTML. É mais robusto, mais flexível, mais poderoso, mais provável de ser suportado no futuro e pode ser expandido para atender a qualquer necessidade. Mas eu lhe direi algo. Às vezes, você não precisa atender a todas as necessidades. Às vezes, você só quer publicar uma página simples sem se estressar até as últimas aspas. Por sorte, há muitos estágios intermediários. De fato, há três variações padrão tanto do HTML quanto do XHTML. A primeira, chamada de transitional, permite o uso das tags desaprovadas. A segunda, chamada de estrita, proíbe o uso de todas as tags desaprovadas. A terceira variação, frameset, permite tanto o uso de tags desaprovadas quanto de quadros, que caíram tanto em desgraça que eu retirei o capítulo que os descreve deste livro e o coloquei em meu Web site (ver página 25). Você pode combinar cada uma destas variações em muitos níveis com CSS. A combinação que você escolher pode depender de muitos fatores (Continue lendo). Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 21 XHTML vs. HTML: Qual Você Deve Usar? E agora, uma confissão. Eu gostava de HTML. Pensei que era ótimo que você não precisasse ser obsessivo sobre pontuação. Talvez eu seja apenas preguiçosa, mas eu, honestamente, acredito que a popularidade da Web seja devido, em parte, ao fato de que os navegadores nos poupam algum trabalho. Eles tornaram fácil escrever páginas Web, e assim, todos nós fizemos. Agora, uns dois bilhões de páginas depois, talvez seja hora de mudarmos nossos hábitos. Ou, talvez, não. Introdução Decidindo entre HTML, XHTML e CSS: Decidindo entre HTML, XHTML e CSS: Já que eu não recomendo usar extensões exclusivas – já que elas não atendem a parte de seu público -, há muitas outras opções. Eis algumas diretrizes: n Quanto maior seu site, mais importante é que você use CSS e XHTML. O primeiro facilita a aplicação, edição e atualização da formatação através do site inteiro; o último dá à sua página a estrutura necessária para assegurar que esta dure pelo futuro. n Muitas companhias e agências governamentais, incluindo o governo dos EUA, requerem que sua página Web preencha requerimentos de acessibilidade para tornar seus sites disponíveis às pessoas com deficiência. Nestes casos, você deve seguir ao máximo o XHTML estrito, com formatação por CSS. E assegure-se de verificar as diretrizes da companhia ou da agência a respeito, para mais informações em seu caso particular. n Grandes sites comerciais que querem atingir a mais ampla audiência, podem optar por XHTML transitional, aproveitando-se de algumas tgs desaprovadas que têm suporte praticamente universal, enquanto confia na estabilidade de rocha do XHTML. Estes tipos de site provavelmente migrarão para as CSS mais poderosas, assim que seus níveis de conforto com elas aumentam. n Sites pequenos ou pessoais podem se beneficiar da fácil sintaxe do HTML, junto com a poderosa formatação das CSS, e uma tag desaprovada ocasional onde necessário. n Minha escolha pessoal é usar XHTML e CSS e o mínimo possível de tags desaprovadas. 22 O XHTML é considerado perigoso? Há quem questione a mudança para XHTML. O problema nasce do fato de que para XHTML ser compatível com versões antigas de navegadores, uma pequena concessão teve de ser feita: tinha de ser enviado do servidor de um modo que os navegadores já entendessem: rotulados como html. A ideia era de que, enquanto os navegadores desenvolviam-se, seriam eventualmente capazes de compreender páginas XHTML servidas como xhtml. Infelizmente, isso não aconteceu. Em meados de 2006, o Internet Explorer 7, que, muito provavelmente, assumirá o manto de navegador mais usado do IE6, uma vez que seja aprovado nos testes, ainda não pode compreender arquivos XHTML servidos como xhtml. Isso significa que designers ainda não podem se beneficiar da força do XML e, ainda pior, segundo Ian Hickson, em http://hixie.ch/advocacy/xhtml, que páginas escritas em XHTML e servidas como html podem ser mais um obstáculo contra a pressão pelos padrões do que como ajuda. Ele sugere que devemos permanecer com HTML até que os navegadores possam servir xhtml. Mas então, claro, ficamos travados como a cobra que devora o próprio rabo. Pessoalmente, sou a favor da mudança para XHTML e sua promessa de padronização e força, ao invés de permanecer com o HTML até que algum futuro mítico, quando os navegadores abrirão o caminho para a padronização. Se todos nós escrevermos em XHTML agora, será do interesse dos fabricantes de navegadores apoiar XHTML. E, então, todos nós colheremos os benefícios prometidos. Introdução <fieldset id="pessoal"> <label>Nome</label><input type="texto" name="nome" size="30" /> <br /> <label>Endereço</label><input type="texto" name="endereço" size="30" /> <br /> <label>Cidade</label><input type="texto" name="cidade" size="30" /> <br /> <label>Estado</label><input type="texto" name="estado" size="2" maxlength="2" /> <br /> <label>CEP</label><input type="texto" name="cep" size="5" maxlength="5" /> <br /> <label>Senha do Cliente</label><input type="password"name="código" size="8" /> <br /> Figura i.1 Em muitas páginas, você encontrará um pequeno trecho de código XHTML, com as seções pertinentes destacadas em azul. #rótulo pessoal {position: absolute; left: 20px; fontsize: 90%; padding-top: .2em} input {margin-left: 9em; margim-bottom: .2em; line-height: 1.4em;} Figura i.2 Se o código CSS for relevante ao exemplo, será exibido em sua própria caixa, novamente com as seções pertinentes destacadas em azul. Se você já esteve em outra parte do país, provavelmente percebeu como as pessoas falam, bem, um pouco engraçado. Elas usam palavras diferentes ou as dizem com um acento diferente. E, ainda, você as compreende tão bem, mesmo se você zomba sobre isso no carro, depois. É assim com HTML e XHTML. Nestes casos, elas compartilham precisamente as mesmas palavras (ao pé da letra), mas têm uma sintaxe levemente distinta. Já que são tão similares, ensinarei HTML e XHTML, ao mesmo tempo. Começo ao explicar as diferenças de sintaxe que as distingue. E, então, por todo o livro, explicarei o vocabulário que compartilham. Nestas explicações, usarei a sintaxe mais estrita de XHTML (Figura i.1). Você pode tanto usá-las como estão (para escrever XHTML) ou optar pela sintaxe mais solta do HTML (para escrever HTML). É com você. Seria cansativo ter de me referir a HTML e XHTML por todo o tempo, assim escolhi usar a abreviação (X)HTML para referir-me às duas ao mesmo tempo. Nos poucos casos em que uso um dos nomes individuais, você saberá que a informação pertence apenas àquela linguagem e não à outra. CSS é incorporado às descrições de (X) HTML – novamente, isso significa ambos HTML e XHTML – como uma extensão natural e, ainda, como uma ferramenta separada. Embora as informações sobre CSS estejam concentradas nos Capítulos 7 ao 14, você encontrará partes e trechos por todo o livro, próximo à parte de (X)HTML ao qual é mais aplicável (Figura i.2). Figura i.3 O XHTML e o CSS serão, então, exibidos em um ou mais navegadores para que você veja como fica na vida real (este exemplo é da página 264). Neste livro, incluí ilustrações dos principais navegadores tanto no Windows quanto no Mac (Figura i.3). Embora você continue com um navegador, não há como saber qual seus visitantes usarão. Recomendo se acostumar com a forma de exibição de outros navegadores para (X)HTML. Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 23 Como Este Livro Funciona </fieldset> Como Este Livro Funciona Introdução O Que Mudou na Sexta Edição A primeira edição deste livro, publicada em 1996, tinha 11 capítulos, 2 apêndices e, somente, 176 páginas. A sexta edição, em suas mãos, tem 25 capítulos, 6 apêndices e mais do que 450 páginas. Este livro expandiu-se e adaptou-se, enquanto (X)HTML e CSS têm crescido e mudado. O Que Mudou na Sexta Edição O que é novo A coisa curiosa desta vez é que (X)HTML e CSS não mudaram consideravelmente, desde a última edição. Isso não significa, porém, que o livro é apenas uma reedição da edição anterior, porque, de fato, a própria Web mudou dramaticamente. Nos três curtos anos desde a Quinta Edição, vimos um amadurecimento das técnicas de layouts em CSS, as quais exploraremos com exemplos de códigos novos em folha, em particular no Capítulo 11, mas através dos capítulos sobre CSS em geral, um ressurgimento de páginas Web sendo reescritas em CSS para ser visualizada em dispositivos de mão celulares (Capítulo 13), a mudança do Perl/CGI em favor de PHP, junto com formatação em CSS para elementos de formulário (Capítulo 17), uma explosão verdadeira de áudio e vídeo, que eu lhe ajudarei a lidar no Capítulo 18, e uma mudança para blogs frequentemente atualizados que levou a licenciamento, feeds RSS e podcasting, que veremos no Capítulo 25. E, embora muitos dos outros capítulos tenham os mesmos títulos, todos foram completamente atualizados para abranger os últimos navegadores, as técnicas mais padronizadas de XHTML e CSS. 24 Internet Explorer 7 Internet Explorer 7 ainda estava em testes quando este livro estava sendo publicado e, portanto, as ilustrações que mostram o Internet Explorer 7 são, de fato, Internet Explorer 7 beta 2 e beta 3. É possível, embora improvável, que a exibição de (X)HTML e CSS mude um pouco quando o programa final for lançado. Introdução O que se foi Finalmente, também tomei a difícil decisão de remover quatro capítulos por completo. Eram os capítulos da Quinta Edição sobre quadros, WML (que foram substituídos por XHTML + CSS) e os dois capítulos sobre Velhas Maneiras, sobre tags desaprovadas e de pouco uso, e sobre tags de layout desaprovadas e ainda menos utilizadas. Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 25 O Que Mudou na Sexta Edição Ainda que a maioria dos elementos descritos nestes capítulos ainda seja considerada válida, embora desaprovados, para (X)HTML, eles ficavam tão em desuso que poucos criadores Web que se respeitam tocariam neles. Eu sugiro que você também os evite. Introdução O Web site VQS de HTML Com a Web mudando constantemente, parecia mais apropriado adicionar um elemento dinâmico a este livro: o Web site da sexta edição do VQS de HTML em inglês (http:// www.cookwood.com/html/). O Web site VQS de HTML No site da editora, você encontrará e poderá baixar os códigos fonte completos para cada um dos exemplos deste livro, incluindo (X) HTML e CSS (http://www.altabooks.com.br). No meu site em inglês (www.cookwood. com/), você encontra uma lista de erros, atualizações, artigos, resenhas e comentários. Há, também, vários recursos disponíveis em meu site que eu espero que vocês gostem, incluindo tabelas de cor, tabelas de símbolos e de caracteres, tabelas hexadecimais e listas completas de elementos e atributos (X)HTML, e de propriedades e valores CSS. Depois, enquanto eu escrevia este livro, reuni uma coleção de dicas menores e truques que, simplesmente, não cabiam na página apropriada. Estão todos disponíveis no meu site. Finalmente, você encontrará um animado Fórum de Perguntas e Respostas em inglês (www.cookwood.com/html/qanda), onde você poderá postar as questões que mais lhe preocupam – e as mais fáceis, também. Enquanto eu estiver por lá e esforçar-me para responder, há uma equipe dedicada de Web designers que, em geral, são bem mais craques do que eu. Se você estiver com vontade, sinta-se livre para entrar e responder você mesmo algumas perguntas. Sua ajuda será muito bem-vinda. Nos encontramos na Web! 26 OS TIJOLOS DA WEB 1 Dedicarei este capítulo para explicar cada um destes importantes conceitos. Observação: Como mencionei na introdução, uso (X)HTML para referir tanto a HTML 4 e XHTML 1.0 em situações, onde ambos têm propriedades idênticas, como em " elemento de tabela (X)HTML". Por outro lado, para aqueles casos no qual estou destacando características especiais, únicas para um ou para outro, usarei seus nomes individuais: "XHTML requer aspas cercando valores de atributos". Para mais detalhes, consulte Como Este Livro Funciona, na página 23. 27 Os Tijolos da Web Embora as páginas Web tenham se tornado cada vez mais complexas, sua estrutura fundamental permanece notavelmente simples. Uma página Web é feita de três componentes principais: conteúdo de texto, os verdadeiros cabeçalhos e parágrafos que aparecem na página; referências ocasionais para conteúdo mais complexo, como links, imagens, e talvez, animações em Flash; e marcação – instruções que descrevem como o conteúdo e as referências devem ser exibidos. É importante observar que cada um destes componentes consiste exclusivamente de texto. Este recurso essencial quer dizer que as páginas Web podem ser salvas em formato text-only e visualizadas em, praticamente, qualquer navegador, em qualquer plataforma. Isso garante a universalidade da Web. As páginas Web também incluem informações sobre a linguagem e o script no qual o texto foi escrito (a codificação), assim como o tipo de marcação que o descreve (doctype). Capítulo 1 Marcação: Elementos, Atributos e Valores Marcação: Elementos, Atributos e Valores (X)HTML é um sistema engenhoso de incluir informação sobre conteúdo corretamente em um documento de texto. Esta informação – chamada marcação, o m em (X)HTML – pode incluir instruções de formatação, assim como detalhes sobre os relacionamentos entre as partes do documento. Porém, já que a própria marcação é composta principalmente de texto, o documento é acessível quase que universalmente. (X)HTML tem três principais tipos de marcação: elementos, atributos e valores. Mais adiante, neste livro, também falaremos de declarações (consulte página 40) e entidades (consulte página 336). Elementos Elementos são como pequenas etiquetas que identificam e dão estrutura às diferentes partes de uma página Web: "Este é um cabeçalho, aquilo ali é um parágrafo e aquele outro é uma informação importante". Alguns elementos têm um ou mais atributos, que descrevem mais fundo o propósito e o conteúdo. se houver, do elemento. Os elementos podem conter texto e/ou outros elementos, ou podem ser vazios. Um elemento não-vazio consiste de uma tag de abertura (o nome do elemento e os atributos, se houver, dentro dos sinais de maior que e menor que), o conteúdo, e uma tag de fechamento (uma barra diagonal seguida pelo nome do elemento, novamente entre os sinais maior que e menor que) (Figura 1.1). Um elemento vazio aparece como uma combinação de tags de abertura e de fechamento, com um sinal menor que inicial, o nome do elemento, seguido por quaisquer atributos que possa ter, um espaço, uma barra diagonal e o sinal maior que final (Figura 1.2). Em XHTML, a tag de fechamento é sempre necessária. Em HTML, ele é, às vezes opcional. A seção correspondente neste livro, para cada elemento, fornecerá os detalhes específicos. 28 Texto afetado Tag de abertura Tag de fechamento definição de <em>efêmero</em> Sinal de maior que e de menor que Barra diagonal Figura 1.1 Eis um elemento (X)HTML típico. As tags de abertura e de fechamento cercam o texto que será afetado. Neste caso, a palavra "efêmero" será enfatizada, o que na maior parte dos navegadores quer dizer que será exibida em itálico. <img src="blueflax.jpg" width="300" /> Um espaço e a barra diagonal Figura 1.2 Elementos vazios, como img aqui mostra- do, não cercam nenhum conteúdo de texto. Eles têm uma tag simples que serve tanto para abrir como para fechar o elemento. Em HTML, a barra final é opcional. Em XHTML, ela é obrigatória. Os Tijolos da Web colspan é um atributo de td <td colspan="3">Fevereiro</td> O valor do atributo colspan Figura 1.3 Eis um elemento td (para uma célula de tabela) com um simples par de valor-atributo. Atributos são sempre localizados dentro de uma tag de abertura do elemento. Seus valores devem sempre estar dentro de aspas. src é um atributo de img Valor de src width também é um atributo de img Valor de width Atributos contêm informações sobre os dados em um documento e não os próprios dados (Figuras 1.3 e 1.4). Em XHTML, um valor de atributo deve sempre estar dentro de aspas. Em HTML, as aspas podem ser, às vezes, omitidas (consulte a página 38), embora eu lhe recomende sempre usá-las. Enquanto você encontra detalhes completos sobre os valores aceitáveis para cada atributo neste livro, deixe-me dar uma idéia dos tipos de valores que você encontrará. Alguns atributos podem aceitar quaisquer valores, outros são mais limitados. Talvez o mais comum sejam aqueles que aceitem valores numéricos ou pré-definidos. Em outras palavras, você deve selecionar um valor de uma lista padrão de escolhas (Figura 1.5). Em XHTML, valores numéricos sempre são escritos em letras minúsculas (em HTML, isso não importa). Figura 1.4 Alguns elementos, como o img aqui mostrado, pode receber um ou mais atributos, cada qual com seu próprio valor. A ordem é irrelevante. Separe cada par de valor-atributo do seguinte com um espaço. Muitos atributos requerem um número ou um percentual para seus valores, particularmente aqueles que descrevem tamanho e extensão. Um valor numérico nunca inclui unidades. Onde as unidades são aplicáveis, como a altura do texto ou a largura de uma imagem, <link rel="folhadeestilo" type="text/css"eles são entendidos como pixels. media="screen" href="blueflax.css" /> Os atributos controlando cor podem conter valores que são tanto o nome da cor ou uma Valor pré-definido representação hexadecimal do conteúdo vermelho, verde e azul da cor. Você pode encontrar Figura 1.5 Alguns atributos apenas aceitam uma lista dos dezesseis nomes de cor prévalores específicos. Por exemplo, o atributo medefinidos, assim como uma seleção de cores dia no elemento link pode ser ajustado para hexadecimais na capa interna ao fim deste livro screen, handheld ou print, entre outros, Você pode encontrar instruções para criar suas mas você não pode criar um valor para ele. próprias cores hexadecimais, na página 126. Veja que (X)HTML não suporta valores numéricos ou percentuais para cor. Alguns atributos fazem referência para outros arquivos e, portanto, devem conter valores da forma de URL, ou Uniform Resource Locator (Localizador de Recursos Uniforme), o endereço único de um arquivo na Web. Falaremos mais sobre URL a partir da página 35. Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 29 Marcação: Elementos, Atributos e Valores <img src="blueflax.jpg" width=”300” /> Atributos e Valores Capítulo 1 Parágrafo vs. Linha Um elemento pode ser nível de parágrafo ou linha. Se for nível de parágrafo, sempre será exibido em uma nova linha, como um novo parágrafo em um livro. Se for linha, será exibido na linha atual, como a próxima palavra em um parágrafo. Marcação: Elementos, Atributos e Valores Elementos nível de parágrafo são considerados as maiores partes estruturais de sua página Web e, como tal, podem conter, geralmente, outros elementos nível de parágrafo, elementos de linha e texto. Elementos de linha, por outro lado, podem, geralmente, conter apenas elementos de linha e texto. (Os elementos também podem ser itens de lista, que são considerados distintos dos nível de parágrafo e de linha, mas parece ser uma categoria tão pequena que dificilmente requerem discussão além do Capítulo 15, Listas). <div><img src="blueflax.jpg" alt="Blue Flax (Linum lewisii)" width="194" height="174" /> <p>Sempre fico surpresa com as belas e delicadas Blue Flax que, de alguma forma, aparecem em meu jardim. Elas são abundantes de cor todas as manhãs, mas nem uma única flor resiste à tarde. São a própria definição de <em>efêmero</em>.</p> <p>&copy; 2002 by Blue Flax Society.</p> </div> Figura 1.6 Os elementos nível de parágrafo, aqui exibidos destacados em negrito, são div e p. Os elementos de linha, destacados mas não em negrito, são img e em. Figura 1.7 Cada elemento nível de parágrafo começa em uma nova linha. Os elementos de linha (neste caso, a imagem e o texto em itálico) continuam a linha iniciada pelo elemento nível de parágrafo no qual eles estão contidos. 30 Os Tijolos da Web Pais e Filhos <div> <img src="blueflax.jpg" .../> <p>... de <em>efêmero</em> </p> <p>...pela Blue Flax Society</p> </div> Figura 1.8 O elemento div é pai dos elementos img e todos os p. Por outro lado, os elementos img e todos os p são filhos (e descendentes) de div. O primeiro elemento p é pai da tag em. O em é filho do primeiro p e, também, descendente (mas não filho) de div. <p>...de<em>efêmero</em></p> <p>...de<em>efêmero</p></em> Incorreto (os conjuntos de tags intrometem-se uns nos outros) Esta estrutura é um recurso chave do código (X)HTML e facilita acrescentar estilo aos elementos (o que nós apresentaremos no Capítulo 7, Tijolos de Folhas de Estilo) e aplicar efeitos JavaScript a eles (brevemente discutidos, no Capítulo 20, Um Gosto de JavaScript). É importante observar que, quando os elementos contêm outros elementos, cada elemento pode ser apropriadamente embutido, que está inteiramente contido dentro de seu pai. Sempre que você usar uma tag de fechamento, ela deve corresponder à última tag de abertura aberta. Em outras palavras, primeiro abra A, depois B e, então, feche B e então, A. (Figura 1.9). Figura 1.9 Os elementos devem ser embutidos corretamente. Se você abre p e depois em, você deve fechar em antes de p. Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 31 Marcação: Elementos, Atributos e Valores Correto (sem linhas sobrepostas) Se um elemento contém outro, ele é considerado pai do que estiver embutido, que é o elemento filho. Quaisquer elementos contidos no elemento filho são considerados descendentes do elemento exterior, o elemento pai (Figura 1.8). Você pode, na verdade, criar uma família em uma página Web, que tanto mostra os relacionamentos hierárquicos entre cada elemento na página e, especificamente, identifica cada elemento. Capítulo 1 O Conteúdo de Texto de uma Página Web O texto contido dentro dos elementos é, talvez, o ingrediente mais básico em uma página Web. Se você já usou um processador de texto, você já digitou algum texto. Porém, o texto em uma página (X)HTML tem algumas diferenças importantes. O Conteúdo de Texto de uma Página Web Primeiro, (X)HTML contrai espaços extras ou tabulações em um espaço único e converte retornos e entradas de linha em um espaço único ou os ignora completamente (Figuras 1.10 e 1.11). Depois, HTML costumava ficar restrito a caracteres ASCII – basicamente as letras do idioma inglês, numerais e alguns dos símbolos mais comuns. Caracteres acentuados (comuns em muitos idiomas da Europa Ocidental, como o português) e muitos símbolos do dia-a-dia têm de ser criados com referências de caracteres, como &eacute; (para é) ou &copy; (para ©). Atualmente, você tem duas opções. Embora você possa ainda usar referências de caracteres é, frequentemente, mais fácil simplesmente digitar a maior parte dos caracteres como são e, então, codificar seus arquivos (X)HTML em Unicode (e, particularmente, com UTF-8). Porque Unicode é um super conjunto de ASCII – é tudo o que ASCII é, e muito mais – documentos codificados com Unicode são compatíveis com os navegadores e os editores de texto existentes. Os navegadores que não compreendem Unicode interpretam a porção ASCII do documento apropriadamente, enquanto os navegadores que compreendem Unicode exibirão a porção que não é ASCII também (para mais detalhes, consulte o Capítulo 21, Símbolos e Caracteres em Outros Idiomas). O único símbolo que você não deve digitar diretamente é &. Dado que este símbolo tem um significado especial em (X)HTML, principalmente para começar estas referências de caracteres, o símbolo deve sempre ser expressado como &amp; quando usado como texto, como em AT&T. Para mais informações, consulte Adicionando Caracteres Além da Codificação, na página 336. 32 <div><img src="blueflax.jpg" alt="Blue Flax (Linum lewisii)" width="194" height="174" /> <p>Sempre fico surpresa com as belas e delicadas Blue Flax que, de alguma forma, aparecem em meu jardim. Elas são abundantes de cor todas as manhãs, mas nem uma única flor resiste à tarde. São a própria definição de <em>efêmero</em>.</p> <p>&copy; 2002 by Blue Flax Society.</p> </div> Figura 1.10 O conteúdo de texto é, basicamente, tudo do lado de fora da marcação. Observe que cada linha é separada com um retorno. Também, utilizei uma referência de caractere especial &copy; para o símbolo de copyright, para assegurar que seja exibido apropriadamente, não importa como eu salve o documento. Figura 1.11 Observe como os retornos extra são ig- norados quando o documento é visualizado com um navegador Web e a referência de caractere é substituída pelo símbolo correspondente (©). Os Tijolos da Web <div><img src="tigerlily.jpg" alt="Lírio Tigrino (Lilium lancifolium)" width="133" height="130" /> <p>Lírios tigrinos são como seus primos mamíferos, escondem-se na grama com suas cores pulando em você quando menos se espera.</p> <p>São tão onipresentes como o tigre verdadeiro é raro, encontradas ao longo de tantas estradas e rodovias que são, às vezes, chamadas de <em>Lírios de Valas</em>.</p> <p>&copy; 2006 by Blue Flax Society.</p> </div> Figura 1.12 Neste Claro, o que faz a Web tão vibrante são os links de uma página para outra, as imagens, as animações em Flash, filmes em QuickTime, músicas em MP3 e mais. Ao invés de efetivamente anexar os arquivos no arquivo em (X)HTML, estes arquivos são salvos separadamente e, simplesmente, referenciados a partir de dentro da página. Já que a referência nada mais é do que texto, o arquivo (X) HTML permanece universalmente acessível. A maioria dos navegadores pode manusear links e imagens sem muito problema. Eles não podem, necessariamente, manusear qualquer outro tipo de arquivo, porém. Se você referenciar um arquivo que o navegador de seu visitante não compreender, o navegador geralmente procurará por um plugin ou aplicativo auxiliar – algum programa apropriado no computador do visitante – que seja capaz de abrir aquele tipo de arquivo. Você também pode dar aos navegadores algum tipo de informação extra sobre como baixar plugins para visualizar arquivos em particular se o visitante já não tiver um em seu computador. Falaremos de imagens no Capítulo 5, Imagens, e trataremos de plugins e aplicativos auxiliares, no Capítulo 18, Vídeo, Áudio e outras Mídias. Figura 1.13 Imagens, e outros conteúdos que não texto, são referenciados de uma página Web, e o navegador os exibe junto com o texto. Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 33 Links, Imagens e Outros Conteúdos que Não Texto documento (X)HTML, há uma referência a um arquivo chamado tigerlily.jpg, que o navegador irá acessar, abrir e carregar com o restante da página. Links, Imagens e Outros Conteúdos que Não Texto Capítulo 1 Nomes de Arquivos Como qualquer outro documento de texto, uma página Web tem um nome de arquivo que a identifica para você, seus visitantes e para os navegadores Web de seus visitantes. Há algumas dicas para se lembrar quando atribuir nomes de arquivo para suas páginas Web, que lhe ajudarão a organizar seus arquivos, tornálos mais fáceis para seus visitantes encontrar e acessar suas páginas e assegurar que seus navegadores visualizem a página corretamente. Nomes de Arquivos Use nomes com letras minúsculas Já que o nome que você escolheu para a sua página Web determina o que seus visitantes terão de digitar para ir à sua página, você pode poupar erros de digitação (e dores de cabeça) ao usar apenas letras minúsculas em seus nomes de arquivo. Também é de grande ajuda quando você mesmo cria links entre as suas páginas. Se todos os seus nomes de arquivo tiverem apenas letras minúsculas, é apenas menos uma coisa com que se preocupar. Use a extensão apropriada O meio principal pelo qual um navegador sabe que deve ler um documento de texto como uma página Web é observando sua extensão: .htm ou .html. Se a página já tem alguma outra extensão, como, por exemplo, ".txt", o navegador a tratará como texto e mostrará todo o seu belo código ao visitante. n Usuários de Macintosh – a menos que você esteja em um servidor Mac e todos os seus visitantes usem Macs – isso vale para vocês, também. n Amigos do Windows, estejam cientes que o Windows nem sempre revela a extensão real do documento. Mude suas Opções de Pasta, se necessário, para que você possa ver as extensões. n Apenas as pessoas que ainda usam Windows 3.1 (que são seis, ao todo) estão limitadas a .htm. Praticamente todos os demais pode usar tanto .htm quanto .html sem problemas. Apenas siga a mesma linha, para evitar ter de se lembrar qual você usou. 34 nome de arquivo, apenas em letras minúsculas Extensão pena_capital.html Pena_Capital.html Nomes de arquivo com letras maiúsculas são complicados de digitar e de comunicar Figura 1.14 Lembre-se de utilizar sempre letras minúsculas para os seus nomes de arquivo e de adicionar .htm ou .html com coerência. Mesclar letras minúsculas com maiúsculas dificulta a digitação do endereço apropriado para o seu visitante e, assim, encontrar sua página. http://www.seusite.com/PaginasWeb/ TORTURA/Pena_Capital.html Figura 1.15 Use sempre letras minúsculas para os seus diretórios e pastas também. O segredo é coerência. Se você não usa letras maiúsculas, seus visitantes (e você) não terão de perder tempo imaginando, "E agora, era um C maiúsculo ou minúsculo?". Os Tijolos da Web Esquema Nome do servidor Caminho "http://www.site.com/liz/arquivo.html" Nome do arquivo Figura 1.16 Sua URL básica contém um esquema, o nome do servidor, o caminho e o nome do arquivo. Barra diagonal rastejadora "http://www.site.com/liz/" Figura 1.17 Uma URL com uma barra diagonal raste- jadora e sem o nome do arquivo aponta para o arquivo padrão no último diretório nomeado (neste caso, o diretório liz). Alguns nomes de arquivo padrão comuns são index.html e default.html. Esquema Nome do servidor Caminho "ftp://ftp.site.com/pub/prog.exe" Nome do Arquivo o usuário clica nesta URL, o navegador começará uma transferência FTP do arquivo prog.exe.mailto Esquema Scheme Endereço de e-mail Email address " mailto: [email protected] " URL para um endereço de e-mail inclui o esquema mailto seguido de dois pontos, mas sem barras diagonais e, então, o próprio endereço de email. Figura 1.19 Uma Esquema Letra do Disco "file:///c|/caminho/home.html" Barra Vertical Caminho e nome do arquivo Uniform Resource Locator (Localizador de Recursos Uniforme), ou URL, é um nome bacana para endereço. Ele contém informações sobre onde um arquivo está e o que um navegador deve fazer com ele. Cada arquivo na Internet tem uma única URL. A primeira parte da URL é chamada esquema. Ela diz ao navegador como lidar com o arquivo que está prestes a abrir. O esquema mais comum que você verá é HTTP, ou Hypertext Transfer Protocol (Protocolo de Transferência de Hiper Texto). É utilizado para acessar páginas Web (Figura 1.16). A segunda parte da URL é o nome do servidor onde o arquivo está localizado, seguido pelo caminho que leva ao arquivo e o próprio nome do arquivo. Às vezes, uma URL termina em uma barra diagonal rastejante sem nenhum nome de arquivo dado (Figura 1.17). Neste caso, a URL refere-se ao arquivo padrão no último diretório no caminho (que, geralmente, corresponde à página inicial), frequentemente chamada de index.html ou default.htm. Outros esquemas comuns são HTTPS, para páginas Web seguras; FTP (File Transfer Protocol, ou Protocolo de Transferência de Arquivos), para baixar arquivos (Figura 1.18); Mailto, para enviar e-mail (Figura 1.19) e File, para acessar arquivos em um disco rígido local ou redes de compartilhamento de arquivos locais (Figura 1.20). Um esquema geralmente é seguido por dois pontos e duas barras diagonais. Mailto e News são exceções; levam apenas dois pontos. Veja que o esquema File usa três barras. Isso porque supõe-se que o hospedeiro, que em outros esquemas vai entre a segunda e a terceira barras, seja o computador local. Sempre digite os esquemas em letras minúsculas. Figura 1.20 Para referenciar um arquivo em uma máquina local Windows, use o esquema file. Para Macintosh, use file:///DiscoRígido/caminho/ nomedearquivo. A barra vertical não é necessária (isto também funciona às vezes para o Windows). Encontre os exemplos e tabelas em www.altabooks.com.br e dicas extras em inglês em www.cookwood.com 35 URLs Figura 1.18 Quando URLs Capítulo 1 URLs Absolutas URLs podem ser tanto absolutas quanto relativas. Uma URL absoluta mostra todo o caminho para o arquivo, incluindo o esquema, o nome do servidor, o caminho completo e o próprio nome do arquivo. Uma URL absoluta é análoga a um endereço físico completo, incluindo nome, rua e número, cidade, estado, CEP e país. Não importa de onde uma carta seja enviada, o correio sempre será capaz de encontrar o destinatário. Em termos de URL, isso significa que a localização da própria URL absoluta não tem influência sobre a localização do verdadeiro arquivo referenciado -seja uma página Web em seu servidor ou no meu, uma URL absoluta parecerá exatamente a mesma. servidor =www.site.com =web pasta/dir pasta/dir =index.html =dados.html =voceestaaqui.html pasta/dir =imagens servidor Quando você está referenciando um arquivo do servidor de alguém, você sempre usará uma URL absoluta. Você também precisará de URLs absolutas para sites FTP, ou qualquer tipo de URL que não use um protocolo HTTP. pasta/dir =imagem.gif =www.remoto.com =pub pasta/dir =inicio.html URLs =informação =bcn =info.html O documento que contém as URLs – voceestaaqui.html, neste caso - é o ponto de referência para URLs relativas. Em outras palavras, as URLs relativas são relativas àquela localização do arquivo no servidor. URLs absolutas não se importam com onde estão localizadas. Figura 1.21 Nome do arquivo URL absoluta (pode ser usada em qualquer lugar) URL relativa (funciona apenas em voceestaaqui.html) index.html www.site.com/Web/index.html index.html image.gif www.site.com/Web/images/image.gif images/image.gif data.html www.site.com/info/data.html ../info/data.html inicio.html www.remoto.com/pub/inicio.html (nenhum: use absoluta) info.html www.remoto.com/bcn/info.html (nenhum; use absoluta) URLs Absolutas vs URLs Relativas 36