HTML e CSS Profa. Cintia Carvalho Oliveira Doutoranda em Ciência da Computação – UFU Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF HTML http://www.w3schools.com/html/DEFAULT.asp Introdução a HTML (HYPER TEXT MARKUP LANGUAGE) • Linguagem para descrever páginas Web • Consiste normalmente de um cabeçalho e um corpo definidos por tags • Os browsers são encarregados de interpretar as tags e formatar o texto adequadamente • Não é uma linguagem de programação • Possui extensão htm ou html Tags em HTML • São delimitados por < e > • Não são case-sensitive • Forma geral: <tag> texto </tag> • Outras formas: <tag atributo=“valor”> texto </tag> <tag /> <br> <hr> Exemplo de tags • <b>Texto em negrito</b> • <strong> Texto em negrito </strong> • <h1><b>Tags aninhadas</b><h1/> • <img src="constr4.gif" width="144" height="50" /> http://www.w3schools.com/tags/default.asp Estrutura de um documento HTML <html> <head> <title>Título</title> </head> <body> <p> Conteúdo </p> </body> </html> Cabeçalho Corpo Tag de quebra de linha e parágrafo <br> e <p></p> • <br> é usada para pular linha • <p> é utilizado para definir um parágrafo • Teste <br /> de quebra de linha • <p> Este é um parágrafo </p> <p> Este é outro </p> Tag de linha <hr> • Usada para separar conteúdo – desenha uma linha • <h1>HTML</h1> <p>HTML é uma linguagem de descrição web.....</p> <hr> <h1>CSS</h1> <p>CSS define como o HTML será exibido... </p> Lista ordenada <ol> • Lista ordenada • Atributos da tag • type -> Define como será exibida a numeração (1, A, a, I, i) • <ol> <li>Cofé</li> <li>Chá</li> <li>Leite</li> </ol> Lista não ordenada <ul> • Lista não ordenada • <ul> <li>Cofé</li> <li>Chá</li> <li>Leite</li> </ul> Tag <img> • Usada para inserir uma figura no documento HTML • Atributos da tag • alt -> define uma descrição da imagem • src -> define a url da imagem • height -> define a altura da imagem em pixels • width -> define a largura da imagem em pixels • <img src=“logoIftm.gif" alt=“Logo do IFTM" /> Tag de link <a> • Usada para criar um link para outro documento ou para apontar para um lugar específico no documento atual • Atributos principais • href -> define a localização do documento de destino • name -> define rótulo para definir um lugar específico da página • target -> define como o link será exibido • _blank -> nova página • _self -> mesma página • <a href="http://www.iftm.edu.br">Site do IFTM!</a> • <a href=“index.html#topo”>Voltar ao topo</a> • <a name=“topo”>Topo da página</a> Tabelas <table> • São definidas com a tag <table> • São divididas em linhas (<tr>) e as linhas são divididas em colunas (<td>) <table > <tr> <td>linha 1, célula 1</td> <td>linha 1, célula 2</td> </tr> </table> Atributos de tabela -> define o tipo de borda da tabela • Border • Colspan -> define quantas colunas uma célula ocupará • Rowspan -> define quantas linhas uma célula ocupará Formulários <form> • Formulários permitem que o usuário informe dados para serem processados pela aplicação • Normalmente os elementos de um form são: text fields, text area, checkboxes, radio button... • A tag <form> não pode ser aninhada Passos na submissão de um formulário • O navegador envia os dados do formulário para o servidor • O servidor ativa a url especificada através do atributo action • O tipo do método definido no atributo method define como os dados enviados pelo formulário serão acessados • O método padrão, caso não haja especificação, é o GET • É boa prática usar o método POST Formulários <body> <form action=“processaForm.jsp" > Nome: <input type="text" name="firstname"><br /> Sobrenome: <input type="text" name="lastname"><br /> Senha: <input type="password" name="senha"> <input type="submit" value="Enviar"> </form> </body> • URL após clicar no botão: .../sirius/processaForm.jsp?firstname=Carlos&lastname=Bazilio&senha=abcdefg Formulários • Quando algum elemento do tipo “submit” é inserido num formulário e acionado, seus dados são enviados para um arquivo • O arquivo mencionado é indicado pelo atributo “action” do elemento <form> • Este arquivo deverá estar armazenado num servidor web (Apache, Tomcat, IIS, ...), e estará escrito em alguma linguagem de programação de servidores: • jsp, php, asp, sevlets, ... Elementos de um <form> Campos de texto, senha e hidden • Campo de texto: • Name: <input type="text" name=“login"> • Campo de senha • Senha: <input type=“password" name=“senha"> • Campo hidden: • <input type=“hidden" name=“methodToCall“ value=“1”> Radio buttons • São usados quando é necessário que o usuário escolha uma opção dentre algumas oferecidas • <input type="radio" name=“sexo" value=“masculino"> Masculino • <input type="radio" name=“sexo" value="feminino"> Feminino Checkboxes • São usados quando o usuário pode escolher uma ou mais opções dentre algumas oferecidas • <input type="checkbox" name="curso" value="basico"> Java basico • <input type="checkbox" name="curso" value="web"> Java Web • <input type="checkbox" name="curso" value="avancado"> Java avancado Textarea • É usado para que o usuário possa passar um texto com várias linhas • <textarea name="informacoes" rows="2" cols="30">A carga horaria do curso de java web do citi totaliza 30 horas divididas em duas semanas. </textarea> Button • Define um botão com uma ação específica • Pode conter textos e imagens • Atributos onMouseOver, onClick podem especificar a ação do botão • O atributo type é obrigatório com o valor “button” • <button type="button“>Incluir</button> Drop-down list • Cria uma lista com algumas opções que são exibidas quando o usuário clica <select> <option value=“1”>Sport</option> <option value=“2”>Sarna</option> <option value=“3”>Barbie</option> </select> Formulários • Tipos que podem ser utilizados com a tag <input>: • button: Insere um botão • checkbox: Insere um checkbox; para vários itens, basta inserirmos vários “inputs” deste tipo • file: Insere botão seleção de arquivo através de uma caixa de diálogo • hidden: Campo pertencente ao formulário, mas que não será exibido na página • image: Insere uma imagem como um botão submit • password: Insere um campo password (caracteres digitados não aparecem) • radio: Insere um radiobox (análogo ao checkbox) • reset: Restaura os valores iniciais do formulário • submit: Encaminha os dados inseridos para algum arquivo • text: Insere um campo de edição de texto Outras tags de Formulários Tag <form> Define um formulário para entrada do usuário <input> Define um campo de entrada <textarea> <label> <fieldset> Descrição Define um campo texto com múltiplas linhas Define um label para algum controle Desenha uma caixa em torno de um conjunto de elementos <legend> Define um título para um <fieldset> <select> Cria uma lista drop-down <optgroup> Criar uma hierarquia nas opções de uma lista drop-down <option> Uma opção na lista drop-down <button> Insere um botão. Difere de <input> por poder conter algum conteúdo, como uma imagem Tag <div> • Serve para dividir o documento em partes que apresentam características em comum • Útil para adicionar CSS e alterar a visualização na tela <div id="lista1“ align="center"> <select> <option>Sport</option> <option>Sarna</option> <option>Barbie</option> </select> </div> Prática 1 • Implementar uma busca do google com opções de italiano e português (padrão) • Deve usar: <div>, <img>, <form>, <table>, radio button CSS CSS • Cascading Style Sheets • Estilos definem como elementos html devem ser apresentados • Permite a separação entre definição de conteúdo e formatação em HTML • Style sheets externos são definidos através de arquivos CSS • Atualmente é o padrão para inserção de estilo na construção de páginas html • http://www.csszengarden.com/ CSS • Formato geral: seletor { propriedade: valor } • Uma definição de estilo em CSS será composta por uma sequência de definições • Exemplos: • body { color: black } • p { font-family: “Verdana”; text-align: center; color: red } • h1,h2,h3,h4,h5,h6 { color: green } • p {margin-left: 20px} Classes em CSS • Classes em CSS permitem que um mesmo elemento seja exibido de diferentes formas • Formato usando classes: • Exemplos: seletor.classe { propriedade: valor } • p.direita {text-align: right} // Alinha à direita • p.centro {text-align: center} // Centraliza • .esquerda {text-align: left} // Aplicado a qualquer elemento html que contenha classe esquerda <p class=“direita”>Este parágrafo será alinhado à direita</p> <p class=“centro”>Este parágrafo será centralizado</p> <p class=“esquerda”>Este será à esquerda</p> CSS em Link Externo • Existem 3 maneiras se definir um CSS para um documento HTML • Criando um link externo <html> <head><link rel="stylesheet" type="text/css" href="mystyle.css" /></head> <body> Esta é minha primeira página. </body> /* Conteúdo do arquivo mystyle.css </html> */ hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} CSS definido internamente <html> <head> <style type="text/css“> hr {color: sienna} p {margin-left: 20px} body {background-image: url("images/back40.gif")} </style> </head> <body> Esta é minha primeira página. </body> </html> CSS inline <html> <head</head> <body style=“color: sienna; text-align: center”> Esta é minha primeira página. </body> </html> Aplicações • Com CSS podemos formatar: • Background • Textos • Fontes • Margens • Bordas • Listas • Tabelas • http://www.w3schools.com/css/css_examples.asp Tableless • Padrão que vem sendo adotado na web para uso massivo de html+css • Objetiva, principalmente, melhor acessibilidade de páginas web • Propõe a não utilização tabelas html para a construção do layout da página (origem do nome) • Naturalmente, este uso não deveria ser evitado se o que se deseja construir é uma tabela de fato Construindo um Layout CSS • http://www.maujor.com/tutorial/layout-css-passo-apasso.php Diretrizes • Construa em passos pequenos e teste cada passo em diferentes navegadores • Desenvolva para navegadores modernos e depois adapte para os antigos • Na fase de desenvolvimento e testes coloque a folha de estilos na seção HEAD da página • Valide seu código HTML e CSS 1º Passo • Decidir a qual nível de navegadores o layout será servido • Existem os com diferentes níveis de suporte • Suporte total às CSS • Suporte parcial às CSS • Conteúdos não estilizados 2º Passo – Escolher os containers do layout • Analise o design da página e faça um esboço (pode ser em uma folha de papel) 3º Passo – Nomear os containers • Nomeie de acordo com a finalidade de cada container. • container • header • mainnav • menu • contents • footer • Se o container for único na página use Ids no lugar de Classes. Isso evita CSS conflitantes. Nomeando containers 4º Passo – Criando as Marcações • Começamos com uma declaração DOCTYPE strict que permite o uso de marcações CSS • Ligamos o documento CSS ao arquivo HTML. Criamos os blocos DIV Referências • http://www.codecademy.com/ • http://www.w3c.br/pub/Cursos/CursoCSS3/css-web.pdf • www.ic.uff.br/~bazilio/cursos/java/slides/HTML_CSS_Javascri pt.ppt • www.cin.ufpe.br/~hsp/Modulo1e2.ppt • www.maujor.com/tutorial/layout-css-passo-a-passo.php