Baixe o app para aproveitar ainda mais
Prévia do material em texto
Desenvolvimento de Páginas Web 1 Fabricio Piccinin de Souza Curso Técnico em Informática para a Internet Barbacena – MG 2016 Sumário Apresentação da disciplina Aula 1 – Visão geral do desenvolvimento de páginas web 1.1 Desenvolvimento web 1.2 Front-end e back-end 1.3 Desenvolvimento front-end em 3 camadas 1.4 Renderização e entidades de padronização 1.5 Versões da linguagem HTML 1.6 Criando sua primeira página web Aula 2 – Linguagem de marcação HTML5 2.1 Declaração de uma página HTML5 2.2 Tags 2.3 Cabeçalho 2.4 Tags estruturais semânticas 2.5 Tags básicas 2.6 Imagens 2.7 Links Aula 3 – Listas e tabelas 3.1 Listas não-ordenadas 3.2 Listas ordenadas 3.3 Combinação de listas 3.4 Tabelas Aula 4 – Formulários 4.1 Estrutura básica 4.2 Principais campos 4.3 Labels Aula 5 – Folhas de estilo em cascata (CSS) 5.1 Modos de uso 5.2 Sintaxe básica 5.3 Principais atributos/valores 5.4 Seletores básicos 5.5 Pseudo-elementos 5.6 CSS reset 5.7 Box model Aula 6 – Floats, frameworks e grids 6.1 Posicionamento via float 6.2 Frameworks CSS 6.3 Grid Aula 7 – Conceitos de Acessibilidade e SEO 7.1 Acessibilidade na web 7.2 Otimização para mecanismos de buscas Aula 8 - Design para web 8.1 O que é design? 8.2 Web design 8.3 Planejamento e organização de informações 8.4 Layout e aparência 8.5 Anatomia de um site Referências Apresentação da disciplina Prezado aluno, Nessa disciplina iniciaremos o estudo do desenvolvimento de páginas web, aprendendo como funcionam e como são desenvolvidos os sites e sistemas web que acessamos diariamente na Internet, tanto em computadores como em dispositivos móveis. A disciplina será bem prática e dinâmica, uma vez que você poderá testar e visualizar no seu navegador de internet cada exemplo do conteúdo que iremos estudar. Na aula 1, faremos uma visão geral do desenvolvimento de páginas web, conhecendo como o mesmo é estruturado, quais tecnologias iremos estudar ao longo do curso, e criando nossa primeira página web. Colocaremos a mão na massa a partir da aula 2, conhecendo os fundamentos da linguagem de marcação HTML5, e aprendendo a inserir conteúdos, imagens e links em nossa página, de modo que a mesma possa referenciar outras páginas, formando a estrutura que chamamos de Web (teia) da Internet. Dando continuidade ao desenvolvimento de páginas em HTML5, na aula 3 aprenderemos a inserir listas de itens – que podem ser não-ordenadas ou ordenadas – e tabelas de dados, com as quais podemos representar, por exemplo, preços de produtos ou resultados de um jogo. Na aula 4 estudaremos os formulários e seus campos, que são a forma pela qual o usuário do site pode interagir com o mesmo, realizando buscas, informando seu e-mail e senha, ou cadastrando itens como informações de um produto. Começaremos o estudo da camada de apresentação visual dos sites na aula 5, estudando a sintaxe das folhas de estilo em cascata (CSS), e aprendendo a selecionar elementos do HTML e aplicar estilos visuais como cores, bordas, margens e sombras. Na aula 6 aprofundaremos o estudo das folhas de estilo, estudando técnicas de posicionamento dos elementos e conhecendo o framework Bootstrap – uma biblioteca CSS desenvolvida pela equipe do Twitter para o desenvolvimento ágil e padronizado de páginas web. Finalizando a disciplina, na aula 7 estudaremos alguns conceitos sobre acessibilidade e otimização, de modo a tornar nossos sites mais acessíveis para portadores de necessidades especiais e também melhor posicionados no ranking de resultados de busca do Google e de outros mecanismos de pesquisa. Como motivação para seus estudos, lembre-se que presenciamos uma tendência crescente da migração de aplicativos para sites e sistemas web acessíveis de qualquer navegador. Dessa forma, o mercado de trabalho está cada vez mais interessado em profissionais qualificados no desenvolvimento de sites de qualidade e baseados em padrões e boas práticas de desenvolvimento. Bons estudos! Rafael José de Alencar Almeida. Aula 1 – Visão geral do desenvolvimento de páginas web 1.1 Desenvolvimento web A World Wide Web, também chamada de Web ou rede mundial de computadores, é uma rede de comunicação que interliga computadores e recursos dos mesmos (páginas, imagens, vídeos, etc.) por meio da infraestrutura da Internet. O principal componente do desenvolvimento web são as páginas web ou páginas de hipertexto, que são os documentos textuais que armazenam a informação dos sites, e possuem hiperlinks (mais comumente chamados apenas de links) para outros documentos ou recursos multimídia. Nessa disciplina aprenderemos a sintaxe e a semântica da criação de páginas web, representando seu conteúdo por meio de marcações padronizadas de uma linguagem chamada HTML (HyperText Markup Language – Linguagem de Marcação de Hipertexto), e definindo seu estilo visual com folhas de estilo. 1.2 Front-end e back-end O desenvolvimento de sistemas web complexos, que realizam o envio de informações definidas pelo usuário e acessam banco de dados, é dividido em duas camadas, que denominamos front-end (lado cliente) e back-end (lado servidor). Os componentes e as ações do front-end são executados no navegador de internet do usuário, enquanto as ações do back-end ocorrem no servidor onde o sistema web está hospedado. A comunicação entre esses dois lados se dá por meio de um protocolo chamado HTTP (Hypertext Transfer Protocol – Protocolo de Transferência de Hipertexto), que estudaremos nas próximas disciplinas do curso. O foco da presente disciplina (e da próxima) será o desenvolvimento front-end, onde aprenderemos como criar uma página web sem comunicação com o servidor, sendo inteiramente executada no navegador de internet do seu computador. 1.3 Desenvolvimento front-end em 3 camadas O desenvolvimento front-end é estruturado em três camadas, onde cada uma é responsável por um aspecto da página web a ser desenvolvida: • Informação: define o conteúdo da página web, focando nos dados, e não em sua formatação visual. Utilizamos a linguagem de marcação HTML para essa tarefa; • Apresentação: define os estilos visuais da página (cores, posicionamento, bordas, margens, etc), formatando os dados marcados em HTML de modo a apresentarem um visual mais agradável. Essa definição é realizada por meio das folhas de estilo em CSS; • Comportamento: define as ações dinâmicas da página, como a troca da cor de fundo da página quando o usuário clicar em determinado botão. Para essa tarefa é utilizada a linguagem de programação JavaScript. 1.4 Renderização e entidades de padronização O processo de transformação dos códigos HTML, CSS e JavaScript na página visualizada é chamado renderização, sendo realizado pelo navegador de internet do usuário (Chrome, Firefox, Internet Explorer, etc.). Em teoria, todos os navegadores deveriam renderizar uma mesma página da mesma forma, mas, no início da Web, as empresas de navegadores tentavam impor seus próprios padrões (período conhecido como a Guerra dos Navegadores), o que levou a uma onda generalizada de sites incompatíveis.Ao longo dos anos, surgiram entidades para buscar uma padronização no desenvolvimento web, sedo a principal a W3C (World Wide Web Consortium), um consórcio internacional que visa desenvolver padrões para a criação e a interpretação de conteúdos para Web. Dessa forma, atualmente há menos incompatibilidades entre os navegadores modernos. 1.5 Versões da linguagem HTML Quando a liguagem HTML se encontrava em sua versão 4, a W3C propôs a XHTML (eXtensible Hypertext Markup Language – Linguagem de Marcação de Hipertexto Extensível), que possui uma sintaxe mais rígida e padronizada, de modo a forçar o desenvolvimento de sites mais compatíveis. A XHTML foi um grande avanço no aspecto da sintaxe das páginas web, uma vez que exige um maior rigor na codificação e possibilita uma validação automatizada por meio de ferramentas de análise. Entretanto, não adicionou muito à semântica das páginas, que é importante para que algoritmos como leitores de telas para deficientes visuais e buscadores possam compreender melhor sua estrutura e significado. XHTML: foco na sintaxe, mas não na semântica Enquanto a W3C elaborava a segunda versão da XHTML, um grupo de empresas de software se uniu e formou o WHATWG (Web Hypertext Application Technology Working Group), que iniciou a elaboração de uma nova versão para a linguagem HTML com foco na semântica, a HTML5. Percebendo a relevância da HTML5, a W3C apoiou a iniciativa de especificação da linguagem, que além de avanços semânticos, oferece uma série de inovações em relação à HTML4, como bibliotecas para multimídia e acesso a dispositivos como GPS e câmera, tornando as páginas web cada vez mais poderosas e funcionais, e abrindo caminho para a Web como principal plataforma de desenvolvimento de software. 1.6 Criando sua primeira página web Agora que conhecemos a teoria básica sobre desenvolvimento de páginas web, vamos partir para a parte prática e criar nossa primeira página! Uma página HTML é apenas um arquivo texto, com a extensão .html. Dessa forma, abra um editor de textos como o bloco de notas do Windows ou Gedit do Linux, digite o conteúdo abaixo, e salve com o nome index.html (não se preocupe se não entender o código, nas próximas aulas o estudaremos em detalhes). <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Aula 1</title> </head> <body> <h1>Aula 1</h1> <p>Minha primeira página web!</p> </body> </html> Abra o arquivo no navegador de internet e repare a exibição do título da aba da página e do conteúdo da mesma. Experimente alterar os textos do arquivo HTML e atualizar a visualização da página no navegador. Resultado Dica: Mantida a extensão .html, o nome do arquivo poderia ser qualquer outro, como pagina.html ou aula1.html. Utilizamos no exemplo o nome index (índice) pois por convenção esse é o nome padrão da página inicial de um site. Atenção: a linguagem HTML é uma linguagem de marcação da camada de informação, sendo incorreto falar que a mesma é uma de linguagem de programação! Aula 2 – Linguagem de marcação HTML5 2.1 Declaração de uma página HTML5 Como vimos na aula anterior, uma página HTML é um arquivo com a extensão .html, sendo o arquivo index.html, por convenção, a página inicial do site. Na primeira linha do arquivo, definimos a versão da linguagem de marcação HTML que estamos utilizando. Essa declaração é chamada doctype, e varia de acordo com a versão da linguagem HTML utilizada: • HTML 4.01: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> • XHTML 1.0: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> • HTML5: <!DOCTYPE html> Como você deve ter percebido, na HTML5 ficou muito mais fácil de lembrar e digitar o doctype, sendo importante observar que não devemos nos esquecer de sempre incluir essa declaração na página, para sua correta exibição nos navegadores de internet. 2.2 Tags Logo após a declaração do doctype, as informações da página HTML serão definidas por meio de tags (etiquetas), que são a forma como marcamos os conteúdos das páginas. Uma tag é definida por uma palavra reservada (como title, head ou img), escrita entre os sinais de menor e maior, como <title>, <head> e <img>. Algumas tags podem ser utilizadas em pares, envolvendo o conteúdo a ser marcado (lembre que HTML é uma linguagem de marcação), como no exemplo de uso da tag <p>, que define um parágrafo na página: <p>Este é um parágrafo</p> Repare que a tag final, que finaliza ou fecha a marcação, deve ser indicada com uma barra logo após o sinal de menor. Outras tags são usadas individualmente, não possuindo um fechamento, como na tag para definição de uma imagem: <img> Existe um tipo especial de tag, chamada tag de comentário, cujo conteúdo não será exibido no navegador, servindo apenas para o desenvolvedor escrever comentários e observações no código: <!-- Este é um comentário, e não aparecerá no navegador --> Tags podem possuir atributos, que são uma forma de se adicionar informações adicionais às mesmas. Um atributo deve vir após o nome da tag, separado por espaço, seguindo a sintaxe abaixo: <tag atributo="valor"> Em caso de tags utilizadas em pares, o atributo deverá ser definido na tag de abertura (primeira tag do par): <tag atributo="valor"></tag> Uma tag pode possuir mais de um atributo: <tag atributo1="valor1" atributo2="valor2" atributo3="valor3"></tag> Vamos ver um exemplo prático? Na tag que define uma imagem <img>, podemos usar o atributo src para definir o arquivo da imagem, e o atributo title para definir o texto que será exibido quando o usuário parar o cursor do mouse sobre a mesma: <img src="if.jpg" title="Campus Barbacena"> Resultado As principais tags que compõem a estrutura de uma página HTML são as tags <html>, <head> e <body>. A tag html deve envolver todas as demais tags, sendo aberta na linha abaixo da declaração do doctype. Dentro dela, devem ser definidas as tags head (cabeçalho, que irá conter informações extras sobre a página, como título e o ícone da aba) e body (corpo, onde ficarão as tags marcando o conteúdo da página). Dessa forma, todas as nossas páginas terão a seguinte estrutura básica: <!DOCTYPE html> <html> <head> </head> <body> </body> </html> 2.3 Cabeçalho Dentro do cabeçalho da página (bloco definido entre as tags <head> e </head>), podemos adicionar informações sobre a página que não estão relacionadas ao seu conteúdo em si. Seguem abaixo as principais: • Definição da codificação de caracteres UTF-8 a ser utilizada, para evitar erros em caracteres especiais como acentuação: <meta charset="utf-8"> • Título da página, que será exibido na aba do navegador: <title>Título da página</title> • Definição da área da tela, de modo a melhor se adaptar a navegadores de dispositivos móveis: <meta name="viewport" content="width=device-width, initial-scale=1.0"> • Ícone da página: <link rel="shortcut icon" href="imagem_do_icone.ico" /> Dica: você pode criar seus próprios ícones no site www.favicon.cc 2.4 Tags estruturais semânticas Dentro do corpo da página (bloco definido entreas tags <body> e </body>), serão utilizadas as tags para marcar o conteúdo do site. Uma boa prática é dividir os blocos de conteúdo utilizando as tags semânticas introduzidas na linguagem HTML5: • <header> para o cabeçalho do site (não confundir com a tag <head>); • <footer> para o rodapé do site; • <nav> para o menu de navegação do site; • <article> para conteúdos principais, como artigos e postagens; • <section> para seções do site. • <aside> para conteúdos relacionados mais não principais Atenção: as tags semânticas definem apenas o significado dos blocos, não controlando o posicionamento visual dos mesmos na página, que deverá ser realizado via CSS. 2.5 Tags básicas Neste tópico conheceremos as tags mais utilizadas em páginas web: • Parágrafo de texto: <p>Primeiro parágrafo</p> <p>Segundo parágrafo</p> Resultado • Quebra de linha <p>Rua Monsenhor José Augusto, nº 204<br> Bairro São José<br> Barbacena - MG</p> Resultado • Cabeçalhos, utilizados para títulos e subtítulos. Vão de <h1> a <h6>: <h1>Título do site</h1> <h2>Tópico 1</h2> <h3>Item 1.1</h3> Resultado <h1>Cabeçalho H1</h1> <h2>Cabeçalho H2</h2> <h3>Cabeçalho H3</h3> <h4>Cabeçalho H4</h4> <h5>Cabeçalho H5</h5> <h6>Cabeçalho H6</h6> Resultado • Seção, utilizada para envolver seções logicamente relacionadas na página, não sendo tão semântica quanto as tags semânticas do HTML5: <div> <p>Primeiro parágrafo</p> <p>Segundo parágrafo relacionado</p> </div> • Span, utilizado para envolver um trecho de texto, sem forçar quebra de linha. Muito útil para aplicar estilos via CSS: <p>Texto do parágrafo <span>principal</span></p> • Quebra temática, traça uma linha separadora: <div> Conteúdo 1 </div> <hr /> <div> Conteúdo 2 </div> Resultado • Tag <strong>, utilizada para dar destaque semântico forte a um texto, geralmente sendo renderizado como negrito: <p><strong>Atenção: </strong>e-mail incorreto</p> Resultado • Tag <em>, utilizada para dar ênfase semântica a um texto, geralmente sendo renderizada como itálico: <p>Vem aqui, <em>agora!</em></p> Resultado Atenção: as antigas tags <b> e <i> do HTML 4, utilizadas para negrito e itálico, não devem ser mais utilizadas, uma vez que a definição desses estilos visuais é tarefa das folhas de etilo CSS. 2.6 Imagens Imagens são inseridas por meio da tag <img>. Principais atributos: • src: link ou caminho da imagem no computador; • title: texto que será exibido quando o cursor for colocado sobre a imagem; • alt: texto alternativo, que será exibido caso a imagem não carregue, e que irá auxiliar a leitura da página por softwares assistivos. Esse texto deverá ser uma descrição da imagem. Exemplo: <img src="foto.png" alt="Igreja em Tiradentes" title="Muito bonita"> 2.7 Links Links possibilitam a interligação de recursos na Web, como páginas HTML, imagens, PDFs e outros documentos para download. Estrutura básica de um link: <a href="endereço_do_recurso" target="modo_de_abertura">elemento</a> O valor do atributo target pode ser _self (valor padrão de um link, que abre o mesmo na página atual) ou _blank (que abre o link em uma nova aba). Exemplos: • Abre o site do Google, na aba atual: <a href="http://www.google.com" target="_self"> Ir para o Google </a> ou <a href="http://www.google.com">Ir para o Google</a> • Link para abrir o site do Facebook, em outra aba: <a href="http://www.fb.com" target="_blank">Facebook</a> • Link para abrir a página teste.html na aba atual: <a href="teste.html">Página de teste</a> Atenção: em links para endereços de e-mail, deve-se utilizar o prefixo mailto: no endereço (evite essa prática, para não expor seu endereço de e-mail a spammers): <a href="mailto:email@gmail.com">Contato</a> Para transformar uma imagem em link, basta colocar a mesma entre as tags <a> e </a>: <a href="http://www.google.com" target="_blank"> <img src="google.png" alt="Logotipo do Google"> </a> Aula 3 – Listas e tabelas Listas são uma forma simples e prática para exibição de itens. A tag de abertura da lista definirá se a mesma será ordenada ou não-ordenada. Em ambos os casos, cada item é definido pela tag <li> (list item – item da lista). 3.1 Listas não-ordenadas Definidas pela tag <ul> (unordered list – lista não-ordenada), os marcadores de seus itens utilizam símbolos, como círculos e quadrados, não havendo uma noção de ordem entre os itens: <h2>Front-end</h2> <ul> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> </ul> Resultado 3.2 Listas ordenadas Definidas pela tag <ol> (ordered list – lista ordenada), os marcadores de seus itens utilizam números, enfatizando a ordem entre os itens: <h2>Sites mais visitados no mundo</h2> <ol> <li>Google</li> <li>Facebook</li> <li>Youtube</li> <li>Baidu</li> <li>Yahoo</li> </ol> Resultado 3.3 Combinação de listas Listas podem ser combinadas de modo a se criar sub-tópicos, inclusive envolvendo listas ordenadas e não-ordenadas em conjunto: <h2>Sites mais visitados</h2> <ul> <li>Mundo <ol> <li>Google</li> <li>Facebook</li> <li>Youtube</li> </ol> </li> <li>Brasil <ol> <li>UOL</li> <li>Globo</li> <li>Terra</li> </ol> </li> </ul> Resultado 3.4 Tabelas Definidas pela tag <table>, tabelas devem ser utilizadas para exibição de dados tabulares, como uma tabela de pontos ou uma tabela de preços. Linhas são definidas por meio da tag <tr>, e colunas por meio da tag <td>. Vamos definir uma tabela básica de preços de produtos: <table> <tr> <td>Água mineral</td> <td>R$1,50</td> </tr> <tr> <td>Chocolate</td> <td>R$3,50</td> </tr> </table> Resultado Para melhorar a visualização da tabela, adicione o trecho de CSS a seguir, dentro da tag head (não se preocupe, estudaremos CSS mais a frente): <style> table, tr, td{ border: solid 1px; } </style> Resultado Agora vamos definir o cabeçalho com o título das colunas, por meio das tags <thead> e <th>: <table> <thead> <tr> <th>Produto</th> <th>Preço</th> </tr> </thead> <tr> <td>Água mineral</td> <td>R$1,50</td> </tr> <tr> <td>Chocolate</td> <td>R$3,50</td> </tr> </table> Resultado Podemos adicionar também um título para a tabela, por meio da tag <caption>: <table> <caption>Tabela de preços</caption> <thead> <tr> <th>Produto</th> <th>Preço</th> </tr> </thead> <tr> <td>Água mineral</td> <td>R$1,50</td> </tr><tr> <td>Chocolate</td> <td>R$3,50</td> </tr> </table> Resultado Finalizando, para tornar nossa tabela mais completa e semântica, vamos utilizar as tags <tbody> para definir o corpo principal da tabela, e <tfoot> para o rodapé: <table> <caption>Tabela de preços</caption> <thead> <tr> <th>Produto</th> <th>Preço</th> </tr> </thead> <tfoot> <tr> <th>Promoção enquanto durar o estoque</th> </tr> </tfoot> <tbody> <tr> <td>Água mineral</td> <td>R$1,50</td> </tr> <tr> <td>Chocolate</td> <td>R$3,50</td> </tr> </tbody> </table> Resultado Atenção: No início da Web, tabelas eram utilizadas para se definir o layout de um site, por exemplo, uma tabela de duas colunas ocupando todo o conteúdo da página. Essa é uma péssima prática, uma vez que no modelo de desenvolvimento front-end em três camadas, o posicionamento do layout deve ser definido via CSS. Dessa forma, utilize tabelas apenas para representar dados tabulares. Aula 4 – Formulários Definidos pela tag <form>, formulários permitem que o usuário informe dados para a página, que normalmente são enviados para processamento no back-end, como em um formulário de busca ou em um formulário de cadastro de produtos. 4.1 Estrutura básica <form action="processa_dados.php" method="GET"> <input type="submit" value="Enviar"> </form> O valor do atributo action define a página que irá receber e processar os dados no back-end. No exemplo acima, os dados preenchidos pelo usuário no formulário seriam enviados para a página processa_dados.php, que realizaria algum tipo de processamento dos dados, no back-end. Já o valor do atributo method define o método de envio dos dados do fomulário, que pode ser GET ou POST: • GET: os dados são enviados na própria URL, sendo recomendável para formulários de busca, onde não há problema de os dados serem exibidos ou manipulados com facilidade; • POST: os dados são enviado no cabeçalho da requisição web, sendo mais difíceis de serem visualizados e manipulados. Esse método é recomendável para formulários de login, onde serão transmitidos dados sigilosos do usuário. Para uma maior segurança, o ideal é combinar esse método com criptografia na conexão. A tag input, com atributo type="submit" gera um botão para envio do formulário. Veremos a seguir que a mesma tag input pode ser utilizada para criar outros tipos de campos no formulário, dependendo do valor de seu atributo type. 4.2 Principais campos Um formulário é composto por um ou mais campos, que são as interfaces por meio das quais o usuário entrará com informações, podendo ser textuais, numéricas, booleanas (verdadeiro ou falso), etc. Para cada tipo de informação a ser solicitada ao usuário, há um ou mais campos que se adequam melhor à entrada de dados. Por exemplo, para informar um endereço, o ideal é um campo de texto de múltiplas linhas, ao contrário do campo de apenas uma linha para o usuário informar seu e-mail. Marcadores mutuamente exclusivos (aqueles redondos, onde a marcação de um desmarca a dos outros) são úteis para o usuário informar seu sexo, mas para situações onde há muitas opções (como escolha da cidade), uma caixa de seleção que exibe uma lista quando clicada é o ideal. Vamos conhecer os principais campos que um formulário pode possuir. Repare que as tags de cada campo devem possuir um valor diferente no atributo name, que será a chave de acesso para os valores preenchidos na hora dos mesmos serem processados. • Texto: Nome: <input type="text" name="nome"> Resultado Utilize o atributo placeholder para adicionar um texto de ajuda ao campo, que desaparecerá quando o usuário começar a digitar: <input type="text" name="nome" placeholder="Nome completo"> Resultado • Senha (oculta o texto digitado): Senha: <input type="password" name="senha"> Resultado • Área de texto (múltiplas linhas): Endereço: <br> <textarea name="endereco"></textarea> Resultado • Seleção de item (pode ser marcado e desmarcado): <input type="checkbox" name="ativo"> Manter login ativo Resultado • Itens mutuamente exclusivos (o usuário pode escolher um único item). Repare que todos os itens devem possuir o mesmo valor no atributo name: <input type="radio" name="sexo" value="F" > Feminino <input type="radio" name="sexo" value="M" > Masculino Resultado • Lista para seleção de um único item: <select name="campus"> <option value="RT">Reitoria</option> <option value="BQ">Barbacena</option> <option value="RP">Rio Pomba</option> </select> Resultado • Lista para seleção de vários itens (usando as teclas Ctrl ou Shift): <select name="turno" multiple="multiple"> <option value="M">Manhã</option> <option value="T">Tarde</option> <option value="N">Noite</option> </select> Resultado A linguagem HTML5 introduziu novos valores para o atributo type da tag <input>, que possibilitam um maior controle pelos navegadores de como os campos serão exibidos (caso seja um navegador antigo, o campo é mostrado como um input do tipo text): • color • email • range • time • date • month • search • url • datetime • number • tel • week Exemplos: • Campo de cor: <input type="color" name="cor"> Resultado • C ampo de faixa de valor es (no exem plo, de 0 a 10); <inp ut type ="ra nge" name ="va lor" min="0" max="10"> Resultado Por meio do atributo value, é possível especificar um valor inicial para um campo: <input type="range" name="valor" min="0" max="10" value="10"> Resultado 4.3 Labels Definidos pela tag <label>, os labels ou rótulos são os textos que vêm associados a cada campo do formulário, como os textos “Nome: " antes do campo de texto e “Manter conectado" após um item de seleção. A vantagem de seu uso é permitir que o usuário clique no label para acessar ou ativar o campo correspondente, melhorando a experiência de uso da página web, principalmente em telas pequenas de dispositivos móveis. Há duas formas de se associar um label a um campo do formulário: • Identificando o atributo id do campo (o valor dos atributos for e id deverão ser iguais): <label for="nome">Nome: </label> <input type="text" id="nome" name="nome"> • Envolvendo o texto descritivo e o campo: <label> Nome: <input type="text" name="nome"> </label> Aula 5 – Folhas de estilo em cascata (CSS) Folhas de estilo em cascata (Cascading Style Sheets) possibilitam a definição da apresentação visual de um site, possuindo uma sintaxe simples e poderosa para manipulação de cores, espaçamentos, posicionamento e outros componentes visuais. 5.1 Modos de uso Há três formas de se integrar CSS em uma página web: 1. Diretamente na tag a ser manipulada, dentro do valor do atributo style (não recomendado, pois será difícil manter e editar o código): <p style="">Texto</p>2. Na própria página, dentro do cabeçalho da mesma (o CSS fica restrito apenas a página, não podendo ser compartilhado entre vários arquivos HTML): <head> <style type="text/css"> </style> </head> 3. Em arquivo externo referenciado (método ideal, pois quando se altera o CSS, todas as páginas que o utilizam receberão a alteração): <head> <link rel="stylesheet" href="estilo.css" /> </head> Assim como uma página HTML, uma folha de estilo em CSS é um arquivo texto, e deve possuir a extensão .css. 5.2 Sintaxe básica A sintaxe CSS consiste em um ou mais elementos da página que serão selecionados para manipulação, e um conjunto de propriedades que serão alteradas para determinados valores: seletor{ propriedade1: valor1; propriedade2: valor2; } Como exemplo, se desejarmos alterar a cor de fundo da página para azul, selecionaremos a tag <body>, e aplicaremos o valor blue para a propriedade background-color (repare que, assim como no HTML, é possível inserir comentários nas folhas de estilo): /* Comentário: altera a cor do corpo da página para azul */ body{ background-color: blue; } 5.3 Principais atributos/valores • Cor do texto: atributo color, podendo receber como valor o nome da cor, seu código em hexadecimal ou em rgb: p{ color: green; } p{ color: #00ff00; /* Cor em hexadecimal */ } p{ color: rgb(0,255,0); /* Cor em RGB */ } • Cor do fundo: atributo backgound-color, podendo receber como valor o nome da cor, seu código em hexadecimal ou em rgb: p{ background-color: black; color: white; } • Negrito, itálico e sublinhado p{ /* Negrito */ font-weight: bold; /*Itálico */ font-style: italic; /* Sublinhado */ text-decoration: underline; } • Alinhamento do texto: atributo text-align, pode receber os valores left (esquerda), right (direita), center (centro) e justify (justificado): p{ text-align: right; } • Caixa alta (todas as letras em maiúsculas) e caixa baixa (todas as letras em minúsculas): p{ /* Caixa alta */ text-transform: uppercase; } p{ /* Caixa baixa */ text-transform: lowercase; } • Tamanho do texto e fonte: p{ font-size: 35px; font-family: verdana; } • Tamanho horizontal e vertical do elemento: atributos width e height, podem ser definidos em valores absolutos como pixels (px) ou relativos como porcentagem (%). p{ width: 200px; height: 50%; background-color: green; } • Sombra do texto, definida pelo atributo text-shadow, recebe os valores: deslocamento horizotal, deslocamento vertical e cor. p{ text-shadow: 1px 1px red; } p{ text-shadow: 5px 5px blue; } p{ text-shadow: -3px -px green; } • Sombra do bloco, definida pelo atributo box-shadow, recebe os valores: deslocamento horizontal, deslocamento vertical, embaçamento (blur) e cor. p{ box-shadow: 1px 1px 5px gray; } • Borda: atributo border, recebe como valores o tipo da borda, a espessura da linha e a cor da mesma: p{ /* Borda de linha com 1px de espessura e cor preta */ border: solid 1px #000; } p{ /* Borda tracejada com 5px de espessura e cor azul */ border: dashed 5px blue; } p{ /* Borda pontilhada com 10px de espessura e cor rosa */ border: dotted 10px pink; } É possível controlar as bordas separadamente, via -top, -right, -bottom e -left: p{ border-left: solid 1px #000; border-bottom: dashed 1px red; } • Raio da borda: atributo border-radius, define a curvatura nas extremidades da borda: p{ border: solid 1px #000; border-radius: 10px; } img{ border-radius: 50%; } 5.4 Seletores básicos • Tag: para selecionar uma tag, basta digitar o seu nome como seletor. É possível aplicar o mesmo estilo a vários elementos, separando-os por vírgulas: h1 { color: red; } h1, h2, h3, h4, h5, h6 { font-size: 12px; } • Classe: o estilo é aplicado a todas as tags que possuam o atributo class com o valor do seletor. Várias tags podem compartilhar uma mesma classe. Utiliza-se um ponto antes do nome da classe no seletor: <p class=”sombra”>Texto com sombra</p> .sombra{ text-shadow: 1px 1px #333; } • Identificador: o estilo é aplicado a todas as tags que possuam o atributo id com o valor do seletor. Cada tag deve possuir um identificador único. Utiliza-se o símbolo # antes do nome da classe no seletor. <p id=”destaque”>Texto com sombra</p> #destaque{ color: red; text-decoration: underline; } 5.5 Pseudo-elementos Permitem adicionar efeitos a um seletor, ou a parte de um seletor. Sintaxe: seletor:pseudo-elemento{ propriedade: valor; } • Aumentando apenas a primeira letra do texto de um parágrafo: p:first-letter{ font-size: 50px; } • Manipulando os estados de um link: /* Link no estado inicial */ a:link{ text-transform: uppercase; } /* Mouse sobre o link */ a:hover{ background-color: #0000ff; color: #fff; } /* Clique no link */ a:active{ font-size: 300px; } 5.6 CSS reset Alguns valores padrão de CSS dos navegadores costumam variar, o que causa uma diferença de visual de um mesmo site em navegadores diferentes. Por exemplo, a margem padrão do body pode ser 10px no Internet Explorer e 8px no Firefox. O objetivo do CSS reset é limpar os estilos padrão de todas as tags, de modo que a renderização do site não varie em cada navegador. Para isso, no começo do arquivo CSS, devemos selecionar todos os elementos (com o seletor universal *), e zerar seu posicionamento: *{ padding: 0; margin: 0; } O CSS reset acima é o mais popular por ser simples e pequeno, mas há quem prefira resetar até dezenas de propriedades. 5.7 Box model O box model ou modelo de caixa define como o espaçamento entre os elementos será controlado, por meio dos atributos margin e padding. Conforme a figura a seguir, repare que a partir da borda do elemento (mesmo que o mesmo não a possua a mesma visível), os valores definidos para margin definirão o espaçamento externo à borda, e os valores de padding controlarão o espaçamento interno do elemento: Como exemplo, vamos manipular dois parágrafos de ids #p1 e #p2, alterando seus valores de margin e padding: #p1{ border: solid 1px; margin-left: 30px; } #p2{ border: dashed 1px; padding-left: 30px; } Resultado #p1{ border: solid 1px; margin-bottom: 50px; } #p2{ border: dashed 1px; padding-bottom: 50px; } Resultado É possível controlar as margens e o padding dos quatro lados em uma única definição, seguindo a ordem topo, direita, inferior e esquerda (sentido horário a partir do topo): p{ /* 20px de margin-top 15px de margin-right 10px de margin-bottom 5px de margin-left */ margin: 20px 15px 10px 5px; } Caso sejam passadosapenas dois valores, estarão associados, respectivamente, à parte superior e inferior, e à esquerda e direita: p{ /* 20px de margin-top 20px de margin-bottom 5px de margin-left 5px de margin-right */ margin: 20px 5px; } No caso de um único valor, o mesmo definirá os quatro lados: p{ /* 20px de padding-top 20px de padding-bottom 20px de padding-left 20px de padding-right */ padding: 20px; } Aula 6 – Floats, grids e frameworks 6.1 Posicionamento via float A propriedade float permite controlar o posicionamento dos elementos na página, flutuando à esquerda (left) ou à direita (right). A partir do HTML abaixo, vamos analisar o uso do float: <section class="container"> <div class="bloco1"> Bloco 1 </div> <div class="bloco2"> Bloco 2 </div> </section> • CSS inicial, sem float: .container{ background-color: green; color: white; } .bloco1{ background-color: red; } .bloco2{ background-color: blue; } Resultado • float: left no bloco 1: Resultado • float: left nos dois blocos: Resultado • float: right no bloco 1: Resultado • float: left no bloco 1 e float: left no bloco 2: Resultado • float: right no bloco 1 e float: left no bloco 2: Resultado • float: right nos dois blocos: Resultado Caso o próximo elemento adicionado tenha seu posicionamento prejudicado, pode ser necessário utilizar a propriedade clear nos elementos seguintes, com os valores: left, right ou both (ambos). Exemplo de HTML, adicionando um terceiro bloco: <section class="container"> <div class="bloco1"> Bloco 1 </div> <div class="bloco2"> Bloco 2 </div> <div class="bloco3"> Bloco 3 </div> </section> • Uso do clear: .bloco3{ background-color: black; } Resultado .bloco3{ background-color: black; clear: both; } Resultado Dica: Para layouts mais complexos (múltiplas colunas e blocos), é recomendado utilizar grids, que veremos ainda nessa aula. 6.2 Frameworks CSS Frameworks CSS são bibliotecas de código que fornecem estilos pré-implementados para facilitar e agilizar o desenvolvimento de layouts. Dessa forma, basta baixar o CSS do framework, referenciá-lo no arquivo HTML e utilizar as classes predefinidas. Há vários frameworks CSS gratuitos e de código-fonte aberto na Internet, sendo um dos mais famosos o Bootstrap, que foi criado pela equipe de desenvolvimento do Twitter. Vamos seguir os passos abaixo para codificar alguns exemplos utilizando suas facilidades: • No site do projeto <http://getbootstrap.com>, você pode fazer o download do framework, ou, como no exemplo abaixo, copiar o link para referenciar o CSS do Bootstrap diretamente na sua página HTML (lembrando que o link deve ficar dentro do cabeçalho da sua página): <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap. min.css"> • Pronto! No seu HTML, basta utilizar as classes predefinidas do Bootstrap: <button type="button" class="btn btn-default">Botão padrão</button> <button type="button" class="btn btn-success">Ok</button> <button type="button" class="btn btn-danger">Excluir tudo</button> Resultado <p class="bg-success"> <strong>Mensagem:</strong> dados cadastrados com sucesso! </p> Resultado <sp an cla ss="glyphicon glyphicon-education"></span> <span class="glyphicon glyphicon-heart-empty"></span> <span class="glyphicon glyphicon-star"></span> Resultado <div class="btn-group" role="group"> <button type="button" class="btn btn-default">Opção 1</button> <button type="button" class="btn btn-default">Opção 2</button> </div> Resultado <button class="btn btn-primary" type="button"> Mensagens <span class="badge">4</span> </button> Resultado <div class="progress"> <div class="progress-bar" role="progressbar" style="width: 60%;"> 60% </div> </div> Resultado <div class="input-group"> <span class="input-group-addon">@</span> <input class="form-control" placeholder="E-mail" name="email"> </div> Resultado <ul class="nav nav-tabs"> <li role="presentation" class="active"> <a href="#">Início</a> </li> <li role="presentation"><a href="#">Sobre</a></li> <li role="presentation"><a href="#">Contato</a></li> </ul> Resultado 6.3 Grid Sistemas de grids oferecem uma forma simples e versátil para controlar o posicionamento de blocos e elementos na página, preservando a semântica e acessibilidade (em oposição ao uso de tabelas), baseando-se no conceito de uma grade imaginária de N colunas, que adaptam-se ao tamanho da tela. Nos exemplos abaixo utilizaremos o sistema de grid do framework Bootstrap (baseado em 12 colunas), então certifique-se que o CSS do mesmo está referenciado em sua página HTML. Para facilitar a visualização dos blocos, vamos adicionar ao nosso CSS uma borda em todos os elementos div que estiverem dentro do grid: .row div{ border: solid 1px #333; } Para criar uma linha do grid utilizando o Bootstrap, basta definir um div com a classe row: <div class="row"> </div> Dentro desse bloco, cada coluna do layout deverá ser um div com a classe col-md-n, onde a soma de todos os valores de n deve totalizar 12 (o número de colunas que podem ser utilizadas no grid). Veja como são simples os exemplos: <div class="row"> <div class="col-md-8">Bloco com 8/12 da página</div> <div class="col-md-4">Bloco com 4/12 da página</div> </div> Resultado <div class="row"> <div class="col-md-4">4/12</div> <div class="col-md-4">4/12</div> <div class="col-md-4">4/12</div> </div> Resultado <div class="row"> <div class="col-md-8">8/12</div> <div class="col-md-3">3/12</div> <div class="col-md-1">1/12</div> </div> Resultado Aula 7 – Conceitos de Acessibilidade e SEO 7.1 Acessibilidade Sites acessíveis são aqueles que podem ser utilizados por todas as pessoas, independente de possuírem necessidades especiais permanentes (como baixa visão ou limitações de mobilidade) ou temporárias (braço quebrado). Dessa forma, devem ser projetados de modo a facilitar a interação com o usuário, não limitando sua navegação e a compreensão dos conteúdos do site. Vamos conhecer algumas dicas para tornar seu site mais acessível: • Sempre utilize o atributo alt para legendar suas imagens, de modo que um usuário que faça uso de software leitor de tela possa compreender a informação da mesma: <img src=”ti.png” alt=”Foto da equipe de TI do site em seu ambiente de trabalho”> • Utilize textos que façam sentido em seus links, não utilizando textos vagos como “clique aqui” ou “acessar”. • Utilize as tags semânticas na definição de tabelas (estudadas na aula 3), de modo a facilitar a softwares leitores de tela uma leituramais compreensível dos dados. • Atenção na escolha das cores do site e no contraste entre a cor de fundo e a cor do texto. Usuários com daltonismo podem ter dificuldades para leitura e compreensão dos conteúdos. Além disso, não conte apenas com cores para transmitir significados. No site Coblis você pode simular como pessoas com daltonismo enxergam determinada imagem: http://www.color-blindness.com/coblis-color-blindness-simulator/ • Faça uso moderado de JavaScript e conteúdos dinâmicos, de modo que o site não dependa de JavaScript para funcionar (muitos leitores de tela não possuem suporte a JavaScript). • Utilize validadores automáticos de acessibilidade como o Hera para checar a conformidade do seu site com os padrões de acessibilidade web: http://www.sidar.org/hera/ Para aprender mais sobre acessibilidade, faça a leitura da cartilha “Acessibilidade na Web”, elaborada pela W3C Brasil: http://www.w3c.br/pub/Materiais/PublicacoesW3C/cartilha-w3cbr-acessibilidade-web-fasciculo-I.pdf 7.2 Otimização para mecanismos de buscas A otimização para mecanismos de buscas ou SEO (Search Engine Optimization) consiste na melhora da forma como o seu site é visto pelos buscadores (Google, Yahoo, Bing, etc.), buscando posicioná-lo entre os primeiros resultados das buscas – o que impacta diretamente na quantidade de visitantes do site. Para que um site fique bem posicionado nos resultados das buscas, além de estar relacionado ao termo de busca e possuir conteúdo relvante, a estrutura e a semântica do seu código-fonte devem estar completas e “legíveis” para os algoritmos (crawlers) dos buscadores que periodicamente analisam o conteúdo dos sites indexados. A seguir vamos conhecer algumas das boas práticas que devem ser seguidas para tornar seu site mais otimizado para os mecanismos de busca: • O título da página (tag title) deverá ser relacionado ao assunto da mesma. • No cabeçalho do site (head), adicionar uma descrição e palavras-chave relevantes: <!-- Descrição curta e objetiva, que irá aparecer na descrição da página nas buscas --> <meta name="description" content="Descrição do site"> <!-- Palavras-chave que indicam o conteúdo do site. Não abusar na quantidade! --> <meta name="keywords" content="web, sites, html, css"> • Também no cabeçalho da página, controlar quais páginas serão indexadas pelos buscadores, de modo a evitar que páginas restritas como área de login do administrador fiquem disponíveis nos resultados das buscas: <!-- A página não aparecerá nas buscas (noindex), e nem os links que ela segue (nofollow) --> <meta name="robots" content="noindex,nofollow"> <!-- A página aparecerá nas buscas (index), mas os links que ela segue não (nofollow) --> <meta name="robots" content="index,nofollow"> • Também é possível utilizar um arquivo robots.txt descrevendo quais sites serão indexados ou não. No exemplo a seguir, o conteúdo desse arquivo define que a página login.html não deverá ser indexada por nenhum buscador: User-agent: * Disallow: /login.html • No corpo do site, utilizar corretamente as tags semânticas do HTML5 (header, footer, section, etc.), de modo que o buscador possa compreender como sua página se estrutura, e onde se encontra o conteúdo principal. • Os links devem ser descritivos: Errado: Para mais informações sobre nossa equipe de desenvolvimento, clique aqui. Correto: Conheça mais sobre nossa equipe de desenvolvimento. • Possuir links de outros sites apontando para o seu site (backlinks), o que indica para os buscadores que seu site possui relevância. • Ter um tempo de carregamento da página pequeno, uma vez que muitos usuários desistem de acessar o site quando o mesmo demora para carregar. Além disso, acessos provenientes de dispositivos móveis (que só tendem a aumentar) muitas vezes utilizam redes móveis lentas, o que pode comprometer o carregamento do site. Dica: você pode analisar a performance do seu site por meio da ferramenta online PageSpeed Insights do Google: https://developers.google.com/speed/pagespeed/insights/ • Atualmente, muitas visitas aos sites são provenientes de links compartilhados em redes sociais, como no Facebook. Quando um usuário posta um link, o Facebook analisa seu código HTML e exibe informações da página, como título, descrição e imagem relevante. Além de manter a página semântica, podemos otimizar essa análise adicionando tags especiais no cabeçalho da página, seguindo o protocolo Open Graph <http://ogp.me> utilizado pelo Facebook: <html prefix="og: http://ogp.me/ns#"> <head> <meta property="og:title" content="Título da página"> <meta property="og:description" content="Descição da página"> <meta property="og:type" content="website" /> <meta property="og:image" content="imagem_relevante_1.jpg"> <meta property="og:image" content="imagem_relevante_2.jpg"> ... O Facebok oferece uma ferramenta para verificação do uso do Open Graph em seu site, em https://developers.facebook.com/tools/debug/: Aula 8 – Design para web 8.1 O que é design? O termo design, como utilizado na língua portuguesa, é um estrangeirismo apropriado do substantivo inglês “design” (significando propósito, objetivo, intenção) e do verbo inglês “design” (significando projetar/esquematizar) (NIELSEN; LORANGER, 2007). O design é uma importante ferramenta de agregação de valor. Podemos aplicar suas técnicas em diferentes áreas como a construção civil, o automobilismo, as mídias impressas, as embalagens, os produtos, etc. Como área, o design é multidisciplinar e trata, em outras palavras, de escolher a melhor forma de apresentar uma ideia. Dependendo da mídia ou do alvo em que se deseja trabalhar, certas técnicas de design serão mais apropriadas do que outras. A diagramação de um cartaz convidando a população para uma festa, certamente, será diferente de uma chamada na televisão ou mesmo de um site de divulgação. As mídias oferecem possibilidades diferentes que o profissional deve estar apto para explorar. 8.2 Web design O advento da web abriu espaço para uma nova forma de planejamento de transmissão de ideias/objetivos em materiais publicados em ambientes on-line: web design. Tais técnicas consistem da estruturação adequada de informações, utilizando recursos apropriados para veiculação em páginas web, de maneira que o usuário possa alcançar seu objetivo de forma direta e agradável. O design para web não é como o design de impressão. A web é um meio único que, por sua natureza, força os profissionais a desistir do controlar coisas que eles, tradicionalmente, eram responsáveis por controlar (NIEDERST, 2002). Elementos, como cores, fontes e disposição, podem ser determinados pelo usuário (ou por seu software navegador) e não há garantias de que todos irão visualizar uma página da mesma forma como foi projetada e desenvolvida. Projetar para o desconhecido consiste na principal atividade de um profissional que trabalha com web design. Como profissional, é importante que você tenha um bom entendimento sobre o ambiente web e consiga planejar-se para o desconhecido. Em seu livro “Aprenda web design”, Niederst (2002) nos alerta sobre alguns itens, que podem ser desconhecidos, para os quais devemos estar preparados.• Navegadores desconhecidos – atualmente, existe uma grande variedade de softwares, denominados de browsers ou navegadores, cujo in- tuito é de nos fornecer acesso à web. Além disso, um mesmo navegador pode ter inúmeras versões. Evite instruções ou recursos que, sabidamente, são específicos de um ou de outro browser. Procure sempre utilizar linguagens ou notações padronizadas pela W3C – esta é uma garantia de que seu site irá se comportar da mesma maneira independente do software utilizado para exibí-lo. • Plataformas desconhecidas – assim como temos uma vasta gama de navegadores, o mesmo também ocorre com as plataformas de hardware e de software que são utilizadas. Não temos como saber se os usuários de nossas páginas utilizam plataformas MS Windows, Linux ou MAC OS (ou ainda outra). Evite, dessa forma, recursos muito específicos que possam não estar disponíveis em plataformas concorrentes. É frustrante quando encontramos um site com o conteúdo que buscávamos e recebemos a informação de que o conteúdo é incompatível com nossa plataforma ou, então, que, para utilizar a página, é necessária a instalação de softwares adicionais. Normalmente, nessa situação, o usuário desiste da página. • Preferências de usuários desconhecidas – em um ambiente web, não conhecemos nosso usuário, não sabemos que tipos de recursos ele tem disponíveis ou habilitados para uso. Dessa forma, é importante prever que, por exemplo, um usuário possa ter desabilitado as permissões sobre gravação de cookies. Nesse caso, recursos muito específicos e que dependem de preferências pessoais dos usuários devem ser utilizados de forma opcional. • Tamanho de janela desconhecido – não sabemos se a tela de nosso usuário é grande ou pequena, certo? Com a popularização acelerada de dispositivos móveis, essa variável torna-se ainda mais crucial. Este é um dos aspectos mais incômodos do design web, mas não podemos perdê-lo de vista. Procure desenvolver a página de forma que esta ocupe todo o espaço disponível e, quando isso não for possível, avise seu usuário (“para melhor visualizar essa página recomendamos a seguinte resolução...”). • Velocidade de conexão desconhecida – uma página excessivamente pesada pode impedir que muitos de seus usuários a visitem ou, então, não suportem a demora em carregá-la e desistam. Nesse sentido, os maiores vilões são os elementos gráficos. Utilize, adequadamente, for- matos de imagem de acordo com a quantidade de cores e mantenha-os com o menor tamanho possível. 8.3 Planejamento e organização de informações Design e projeto são termos intimamente ligados. Isto evidencia a necessidade de nos planejarmos antes de qualquer ação. Antes de começar a criar um site, é preciso planejar sua estrutura (página principal e páginas adjacentes), definindo de forma clara e coerente a sequência das informações que se deseja apresentar (MANZANO; TOLEDO, 2008). Independente do tamanho ou do objetivo do que se pretende publicar ou desenvolver para web, faz-se necessário, inicialmente, desenvolver a ideia e a motivação em torno do que se quer apresentar. Não é necessário se apegar a ferramentas ou a tecnologias para criar um esboço. O mais importante é organizar objetivos e criar estratégias para alcançá-los. Uma forma interessante de alcançar tais estratégias é se questionar acerca do que se pretende fazer. Nessa etapa, são comuns questionamentos como: o que você espera realizar ou o que pretende oferecer com o site? A que público o site se destina? Quem será o responsável pela geração do conteúdo original e com que frequência tais informações serão atualizadas? Que tipo de aparência ou sensação você espera para o site? Observe que a lista de questionamentos pode ser ampliada, mas o mais importante é compreender exatamente onde se deseja chegar e de que forma (isto é o planejamento). Uma vez que os objetivos estão claros, o passo seguinte é criar e organizar o conteúdo. Certamente, ao longo de sua trajetória profissional, você irá ouvir expressões como: “A pior parte é definir o conteúdo!” ou “Dê-me o conteúdo e deixe o resto comigo!”. De fato, o conteúdo é a parte mais importante de uma página web. É ele o fator determinante em relação à quão atrativo ou não será o material a ser publicado. Aparência agradável e bem acabada ajuda, mas um site bonito e sem conteúdo não faz com que o visitante retorne a ele. A definição do conteúdo a ser apresentado é determinada por dois fatores muito importantes e diretamente relacionados: a criação (concepção) e o design das informações (LEMAY, 2002). Em relação à criação, é importante deixar claro quem será o responsável por tal concepção. É comum encontrarmos boas ideias, mas, quando vamos “olhar mais de perto”, elas são vazias, não têm conteúdo. Isto vale também para quando você estiver desenvolvendo um site para algum cliente. É importante que ele lhe ofereça, explicitamente, o conteúdo que deseja apresentar de forma on-line e que se estabeleça uma política de atualização de tal conteúdo. Estruturar informações para um material on-line também será uma atividade desafiadora. Esse processo, conhecido como design de informações, consiste em organizar e planejar a melhor maneira de apresentar o conteúdo produzido. Aqui, cabe lembrar que cada material tem suas especificidades, ou seja, a forma de abordar um conteúdo em um cartaz ou em um manual não é a mesma que em uma página para internet ou em um programa de televisão. É comum que o demandante de uma página web lhe entregue um folder impresso com as informações que ele deseja colocar em seu site. Da mesma forma, na medida em que você solicita maiores informações, para extrair mais conteúdo, recebe um manual com 100 páginas. Observe que o trabalho nessa etapa é tentar organizar as informações de forma que seu conteúdo seja adaptado para a web e se torne atrativo em tal plataforma. Quando tratamos de design de informações, temos que levar em conta também o público-alvo que irá visitar nossas páginas. Em geral, o público usuário da internet tem pressa e está à procura de informações instantâneas. Da mesma forma, na medida em que encontra o que procura, este mesmo público pode sentir a necessidade de se aprofundar. Precisamos tirar proveito dessas situações e dos recursos que temos em um ambiente on-line, adequando nossos conteúdos. Materiais excessivamente extensos em ambientes on-line geram alguns inconvenientes, como o tempo que levam para ser carregados e formatados ou, ainda, por cansar o usuário que, conforme já mencionamos, está à procura de informação instantânea. Por outro lado, conteúdos muito reduzidos não conseguem transmitir a informação de forma imediata e a necessidade de ficar “clicando”, interminavelmente, para chegar até a informação desejada também cansa e irrita os visitantes. Para evitar ambas as situações, precisamos fazer uso do que de melhor a web nos oferece: ligações, vínculos ou links que nos interligam com conteúdos novos ou anteriores, permitindo a livre navegação por parte do usuário. O resultado do design de informações é, em geral, um diagrama que revela a organização das interligações entre as páginas. Há diferentes formas de organização, cada uma adequada a uma determinada situação. As principais técnicas são: organização sequencial (rígida ou flexível) e organização em árvore (MANZANO; TOLEDO, 2008). A apresentação de textos longos, comumente, utiliza a técnica de organização sequencial. A figura abaixo ilustra duas estruturas de sites empregando a organização sequencial. Na primeira parte da figura, observamos uma organização sequencial rígida, na qual as páginas possuem, basicamente, doiselos: o próximo conteúdo e o conteúdo anterior. Esse tipo de abordagem é útil quando a navegação obedece a um luxo de informações bem definido (etapa1, etapa2, etapaN), como um formulário de pesquisa ou um processo de compra. Ainda podemos observar uma forma mais flexível de organização sequencial. Nesse caso, ligações (links) são empregadas para acrescentar informações complementares (em alguns casos elementos gráficos: figuras, diagramas, fotos, etc.). Tal técnica é, normalmente, utilizada na estruturação de textos longos ou de conteúdos específicos que são desenvolvidos em torno de um assunto principal. Quando um site aborda diferentes assuntos ou se utiliza de tópicos individuais, aconselha-se o emprego da organização em árvore, conforme pode ser visualizado na figura abaixo. Nesse caso, a característica mais marcante é a utilização de uma página raiz (homepage), contendo um índice ou menu com os temas de cada assunto abordado. A partir de então, os temas são relacionados às suas respectivas páginas por meio de ligações de hipertexto e cada página do site se relaciona com outras subpáginas. A web é um espaço bastante democrático e as técnicas discutidas para estru- turação do conteúdo não são, necessariamente, utilizadas de forma rígida e inlexível. Pelo contrário, o que se observa na prática são estruturas mistas, ou seja, organização dos vínculos entre as páginas de forma lógica dando ao usuário a liberdade de navegar e de se aprofundar de acordo com sua necessidade, permitindo, inclusive, começar do princípio a qualquer momento. 8.4 Layout e aparência Layout (ou leiaute) é a forma pela qual os itens estão dispostos/diagramados, em outras palavras, refere-se ao design gráfico e a aparência visual. Durante o desenvolvimento de páginas para internet o projeto de layout é uma atividade crítica e é importante que esteja definido de forma consistente e prioritária, pois a partir dele o restante do trabalho será colocado em prática. Na etapa de especificação do layout, devem ser definidos os itens que irão compor a identidade visual do site, como o esquema de cores, a tipografia, o estilo das imagens (fotos ou ilustrações, por exemplo) e a ergonomia. A matéria-prima para essa atividade é, normalmente, uma relação de elementos gráficos e alguns manuscritos que indicam o que deve ser utilizado. No entanto, você irá perceber que também não são raras as situações onde o profissional necessita “captar” essas informações e fazer a proposição de algo novo (NIEDERST, 2002). Em geral, a definição de um layout segue alguns princípios básicos (CARRION, 2006): hierarquia das informações, foco/ênfase, equilíbrio, relacionamento dos elementos e unidade/integração. A hierarquia das informações determina qual a disposição da informação, baseando-se em sua importância em relação aos demais elementos visuais. De acordo com esse princípio, precisamos definir a informação mais importante para posicioná-la em um lugar estratégico, porque o usuário interage de imediato com aquilo que ele vê primeiro. O princípio do foco/ênfase nos auxilia na disposição dos elementos mais prioritários, utilizando os espaços mais nobres do layout. Determinar o foco envolve identificar a ideia central, ou o ponto focal do material a ser publicado. Aspectos culturais, assim como decisões do projeto de uma página na web, influenciam diretamente esse princípio. Em geral, informações mais importantes devem estar localizadas no canto superior esquerdo, sendo o início ou a base da tela os melhores locais para mostrar informações sobre orientações que devem estar sempre visíveis. O equilíbrio dos elementos e das informações de um site afeta, diretamente, a forma como o layout é compreendido. Mistura de assuntos sem conexão lógica ou mistura de elementos gráficos (sem deixar claro onde um começa e outro termina) são os principais problemas que podem afetar o equilíbrio. Um típico exemplo de falta de equilíbrio em um layout é a mistura de conteúdo com anúncios. Isso passa para o usuário uma sensação de estar sendo enga- nado ou persuadido. A falta de estrutura e de equilíbrio torna uma página na web mais difícil de ser entendida pelo usuário. De forma complementar, o princípio de relacionamento entre os elementos prega que estes precisam estar agrupados, categorizados, conduzindo a um luxo de navegação lógico. A utilização de elementos visuais pode ajudar a comunicar uma relação/conexão específica de uma página com o site do qual ela faz parte. Da mesma forma, a utilização de esquemas de cores pode potencializar a relação entre diferentes elementos do layout. Por fim e não menos importante, um layout deve se traduzir em uma unidade integrada de elementos. Esse princípio evidencia-se, especialmente, quando, em um grande projeto, há necessidade de manter subpáginas visualmente unificadas com o projeto de layout principal. Isso facilita a navegação uma vez que oferece um ambiente consistente, integrado e previsível. Além desses princípios que norteiam a organização de um layout, precisamos observar algumas propriedades ou qualidades que potencializam a experiência positiva com o site, especialmente a usabilidade e a navegabilidade. Também, não podemos nos distanciar da legibilidade, pois de nada adianta ser bonito se não pode ser compreendido. E, por fim, destacamos a relevância da acessibilidade, permitindo um acesso universal e democrático às informações. 8.5 Anatomia de um site Em função dos princípios discutidos até então, estudiosos da área de web design têm experimentado diferentes formas de organização de layouts. Certamente, enquanto usuário da internet, você já deve ter tido boas e más experiências. Contudo, observamos que há uma espécie de padrão ou de roteiro com bastante aceitação e altamente difundido entre grandes e peque- nos sites. Tal modelo é composto por alguns elementos de conteúdo que podem ser visualizados na figura abaixo, na forma de um esquema numerado. 1. Logotipo – o logotipo ou logomarca do site, normalmente, ocupa o espaço mais nobre, onde, comumente, a visualização ocorre primeiro (canto superior esquerdo). 2. Banner padrão, área de busca, anúncios externos – este é, também, um espaço nobre que, frequentemente, é explorado com um banner. Nessa área, recomenda-se a utilização de uma ferramenta de busca ou de um mapa do site (para simpliicar e agilizar a localização de informações). 3. Menu administrativo – o menu administrativo é uma opção importante, no entanto deve ser discreto. É nele que colocamos informações sobre a empresa, identiicação (login) ou cadastro de usuários, contato, ajuda, etc. 4. Menu de navegação – categorização das informações disponibilizadas pelo site. É comumente encontrado de forma horizontal, como o menu administrativo. É importante que as categorias ou opções do menu sejam curtas e claras, indicando ao usuário, rapidamente, a opção que ele deve escolher (excessivas opções também não são recomendadas). 5. Área de destaque – nesse espaço, recomenda-se enfocar algo de maior importância dentro do contexto do site. Um site de comércio eletrônico poderia divulgar uma promoção; um site de notícias poderia noticiar o fato mais marcante do dia; um site pessoal poderia remeter para a ativi- dade mais recente ou última postagem. 6. Conteúdo – área de conteúdoé o lugar onde são exibidas as informa- ções na medida em que navegamos pelo site. 7. Anúncios – a barra lateral, da direita, pode ser utilizada para divulgação de atividades ains ao site, como anúncios ou links para outras páginas. 8. Rodapé – o rodapé é, normalmente, utilizado para informações sobre o portal. Não é, necessariamente, usada por visitantes comuns, mas sim por aqueles com algum interesse especíico (como anunciar, trabalhe co- nosco, política de privacidade, termos de uso, etc.). Referências COLBLINDOR. Coblis — Color Blindness Simulator. Disponível em: <http://www.color- blindness.com/coblis-color-blindness-simulator/>. Acesso em 17 jan. 2016. FACEBOOK DEVELOPERS. Open Graph Object Debugger. Disponível em: <https://developers.facebook.com/tools/debug/>. Acesso em 17 jan. 2016. FUNDACIÓN SIDAR. Validador Hera. Disponível em: <http://www.sidar.org/hera/>. Acesso em 17 jan. 2016. GOOGLE DEVELOPERS. PageSpeed Insights. Disponível em: <https://developers.google.com/speed/pagespeed/insights/>. Acesso em 17 jan. 2016. OGP. The Open Graph protocol. Disponível em: <http://ogp.me/>. Acesso em 17 jan. 2016. SILVA, Maurício Samy. Maujor: o dinossauro das CSS. Disponível em: <http://www.maujor.com/>. Acesso em 17 jan. 2016. TABLELESS. Desenvolvimento inteligente com padrões web e design. Disponível em: <http://tableless.com.br/>. Acesso em 17 jan. 2016. W3C. CSS – Curso W3C Escritório Brasil. Disponível em: <http://www.w3c.br/pub/Cursos/CursoCSS3/css-web.pdf>. Acesso em 17 jan. 2016. W3C. HTML5 – Curso W3C Escritório Brasil. Disponível em: <http://www.w3c.br/pub/Cursos/CursoHTML5/html5-web.pdf>. Acesso em 17 jan. 2016. W3C. World Wide Web Consortium Escritório Brasil. Disponível em: <http://www.w3c.br/>. Acesso em 17 jan. 2016. W3SCHOOLS. Online Web Tutorials. Disponível em: <http://www.w3schools.com/>. Acesso em 17 jan. 2016. XORON GMBH. Favicon.ico generator. Disponível em: <http://www.favicon.cc/>. Acesso em 17 jan. 2016.
Compartilhar