Buscar

html e boas praticas

Prévia do material em texto

Introdução ao HTML 
e CSS 
Prof. Sérgio Souza Costa
Obs: Alguns slides foram elaborados pela professora Vanesssa 
(UNIFEI)
O que o servidor faz ....
O que o cliente (navegador web) faz ....
O HTML, nada mais que texto 
O navegador renderiza o HTML
6/3/2011
HTML Timeline
vs.
HTML 
1.0
RFC 
1866
1990 1995 1997 1999 200019981996 2001 2002
XHTML 
2.0
Begins…
201
0
Logo 
oficial do 
Html5
HTML Timeline
vs.
HTML 
1.0
RFC 
1866
1990 1995 1997 1999 200019981996 2001 2002
XHTML 
2.0
Begins…
201
0
Logo 
oficial do 
Html5
HTML - Template
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
HTML 4.01 - Template
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http:
//www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
 
<title></title> 
 
</head>
<body>
<p>Ola mundo</p>
</body>
</html>
HTML 5 - Template
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
</body>
</html>
XHTML - Template
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html lang=”EN” dir=”ltr” xmlns=”http://www.w3.
org/1999/xhtml”>
<head>
<meta http-equiv=”content-type” content=”text/xml;
charset=utf-8” />
<title></title>
</head>
<body>
</body>
</html>
HTML vs XHTML
HTML: dont worry !! escreva algo que o 
navegador fará o seu melhor para renderizar.
XHTML: se não é para fazer direito, melhor 
nem começar. Como vais querer que o 
JavaScript, CSS, AJAX funcione ?
● rigidez do XML
● HyperText Markup Language (HTML) ou Linguagem de 
Marcação de Hipertexto é a linguagem usada pelos 
navegadores para mostrar as páginas web ao usuário.
● Ela permite combinar textos, imagens e áudios, além 
introduzir referências a outras páginas por meio dos 
links hipertextos. 
HTML
● A sintaxe da HTML baseia-se em um elemento chamado 
tag (etiqueta).
● Tags são rótulos usados para informar ao navegador 
como o conteúdo deve ser apresentado.
Tags, elementos e atributos
● A tag tem a seguinte forma geral:
<tag> ..... </tag>
● Tudo que estiver contido entre uma tag de abertura <> e 
uma tag de fechamento </> será processado segundo o 
comando contido na tag.
● Algumas tags, chamadas tags de comandos isolados, 
não necessitam de um conteúdo para serem 
processados.
<BR>
● Tag para pular linha
Tags, elementos e atributos
E quanto aos atributos ?
E quanto aos atributos ?
Atributos modificam as tags, dizendo algo 
sobre os elementos
< html >
< head >
< title > Popular Websites: Google < /title >
< /head >
< body >
< h1 > About Google < /h1 >
< p > Google is best known for its search engine, although Google now offers a
number of other services. < /p >
< p > Google’s mission is to organize the world’s information and make it
universally accessible and useful. < /p >
< p > Its founders Larry Page and Sergey Brin started Google at Stanford
University. < /p >
< p > < a href=”http://www.Google.com/” > Click here to visit Google’s Web site. < /a > < /p >
< /body >
< /html >
Tags, elementos e atributos
Com a evolução da web, novos padrões, 
crescimento na complexidade dos grandes 
sistemas ...
Algumas tags perderam o uso para outros 
padrões. Então temos :
● Bad tags, conheça para não usar :)
● Good tags
Tag Explanation
b Presentational. Use strong instead.
basefont Deprecated.
big Presentational. Use CSS instead.
center Deprecated.
dir Deprecated.
font Deprecated.
hr Presentational. Use CSS instead.
i Presentational. Use em instead.
u Deprecated.
Bad Tags
Tag Explanation
isindex Deprecated.
menu Deprecated.
s Deprecated.
small Presentational. Use CSS instead.
strike Deprecated. Use del instead.
tt Presentational. Use CSS instead.
Bad Tags
Good tags: tags que tem semântica 
relacionada
<p> , <body>, <strong>, <em>, <a>, <ul>, <li> ...
O que pode ter no HTML ?
O que pode ter no HTML ?
Elementos estruturantes
Elementos estruturantes
● O elemento HEAD (Cabeçalho) define uma seção que 
contém informações sobre o documento HTML.
● A seção pode incluir scripts, instruções para o browser 
encontrar os estilos, metadados, entre outros.
● As tags que podem estar na seção HEAD são:
● <title>
● <base>
● <link>
● <meta>
● <script>
● <style>
HTML – Seção HEAD
● Define o título do documento
● O elemento título é obrigatório em todos os documentos 
HTML/XHTML.
● Esse título é referenciado em buscas pela rede, dando 
uma identidade ao documento.
● Ao adicionar uma página aos seus Favoritos 
(Bookmarks), o título da página se torna a âncora de 
atalho para ela. 
HTML – Seção HEAD
Elemento TITLE
HTML – Seção HEAD
Elemento TITLE
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Home Page do Sérgio Costa</title>
</head>
<body>
</body>
</html>
● Define uma url padrão para os links do 
documento.
● <base href =http://meusite.com.br />
● Define um target padrão para os links do 
documento.
● <base target =“_blank” />
HTML – Seção HEAD
Elemento BASE
● Define ligações do documento HTML com outros 
arquivos como CSS, scripts, etc.
● Tem como atributos as tags rel, type e href
● Onde rel define o tipo de relacionamento
● Type fornece informações aos navegadores sobre o 
conteúdo do elemento que o contém (dado, estilo, 
script...)
● HREF informa a URL que o link aponta
● A tag <link> é mais usada para ligar o documento HTML 
com o style sheets:
<link rel = “stylesheet” type = “text/css” href=“estilo.css”/>
HTML – Seção HEAD
Elemento LINK
● O propósito do elemento meta é prover meta-informação 
sobre o documento.
● Metadados – dados sobre dados
● Usado tipicamente para especificar descrição da página, 
palavras-chave, autor do documento, última modificação e 
outros metadados.
● Muito frequentemente esse elemento é usado para prover 
informação que é relevante para os navegadores ou para as 
ferramentas de busca como a descrição do conteúdo do seu 
documento.
<meta name = “ ” content = “ ” />
HTML – Seção HEAD
Elemento META
HTML – Seção HEAD
Elemento META
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Free Web tutorials">
<meta name="keywords" content="HTML,CSS,XML,JavaScript">
<meta name="author" content="Hege Refsnes">
<meta charset="UTF-8">
</head>
<body>
<p>All meta information goes in the head section...</p>
</body>
</html>
● Um dos elementos do meta é o HTTP-EQUIV.
● Uma das funcionalidades é dizer ao navegador o tipo de 
dado que ele encontrará no documento.
HTML – Seção HEAD
Elemento META
● Um exemplo de uso comum do atributo HTTP-EQUIV é 
promover a mudança automática de páginas, atribuindo-
lhe o valor Refresh.
HTML – Seção HEAD
Elemento META
<meta http-equiv="refresh" content="3; URL=http://sites.google.com/site/skosta/"> 
view-source:http://www.dpi.inpe.br/~scosta/
Usado para definir um script do lado do cliente, como um 
código do javascript.
Torna as páginas mais dinâmicas e iterativas.
Utiliza o atributo type para especificar a linguagem 
utilizada.
<script type = “text/javascript>
// código javascript
</script>
HTML – Seção HEAD
Elemento SCRIPT
HTML – Seção HEAD
Elemento SCRIPT
<!DOCTYPE html>
<html>
<body>
<p>Click the button to display an alert box.
</p>
<button onclick="myFunction()">Try 
it</button>
<script>
function myFunction() {
alert("I am an alert box!");
}
</script>
</body>
</html>
Incorpora ao documento HTML, a folha de estilos
<style type = “text/css>
grupo{nome_atributo: valor;}
grupo{nome_atributo:valor;}
grupo{nome_atributo: valor;}
</style>
HTML – Seção HEAD
Elemento STYLE (CSS)
CSS será visto 
mais a frente 
● Tudo que estiver contido em <BODY> será apresentado 
ao leitor na janela principal do browser. 
● <BODY> pode conter títulos, parágrafos, listas, tabelas, 
links para outros documentos, imagens, formulários, 
animações, vídeos, sons e scripts embutidos. 
HTML – Seção BODY
<html>
<head>
<title>Title of the document</title>
</head>
<body>
The content of the document......
</body>
</html>
O que pode ter no HTML ?
Elementos estruturantes
O que pode ter no HTML ?
Elementos estruturantes
Elementos chaves
Elementos chaves
HTML – Seção BODY
Parágrafos e Títulos
Prudência com as 
tags de títulos.
HTML – Seção BODY
Tags de Formatação
<i> x <em>
<b> x <strong>
<del> x <strike>
HTML – Seção BODY
Tags de Formatação
<i> x <em>
<b> x <strong>
<del> x <strike>
NÃO usem tags de 
formatação, apenas 
"strong" e "em", que 
tem uma semântica 
associada.
O que pode ter no HTML ?
Elementos estruturantes
Elementos chaves
O que pode ter no HTML ?
Elementos estruturantes
Elementos chaves
Listas e dados
Listas e dados
● Em HTML, as listas podem ser itens numerados ou não.
● As listas não numeradas usam a tag <ul> de Unordered 
Lists para marcar o começo e fim da lista e a tag <li> 
para cada item da lista.
● Os itens da lista são marcados com bullets
HTML – Seção BODY
Listas
<ul>
<li> ... </li>
<li> ... </li>
</ul>
● Em HTML, as listas podem ser itens numerados ou não.
● As listas numeradas usam a tag <ol> de Ordered Lists 
para marcar o começo e fim da lista e a tag <li> para 
cada item da lista.
● Os itens da lista são marcados com números
HTML – Seção BODY
Listas
<ol>
<li> ... </li>
<li> ... </li>
</ol>
● As listas podem ser compostas
HTML – Seção BODY
Listas
<ul>
<li> ... </li>
<ul>
<li> ... </li>
<li> ... </li>
</ul>
</ul>
● Nivel 1
● Nivel 2
● Nível 2
● Nível 1
● As listas podem usar o atributo type.
● Nas listas não ordenadas, o <type> altera o bullet usado 
e pode ter os valores CIRCLE, SQUARE e DISC 
(default)
HTML – Seção BODY
Listas
<ul type = square>
<li> ... </li>
<ul type = circle>
<li> ... </li>
<li> ... </li>
</ul>
</ul>
Com CSS podemos 
criar outros estilos 
para as listas.
● Tabelas são definidas pela tag <table>.
● Uma tabela tem linhas (rows) e colunas.
● Em HTML, define-se uma linha com a tag <tr>, de table 
row.
● A linha é dividia em colunas, onde os dados são 
inseridos através da tag <td>, de table data.
● Dentro de um table data, pode-se inserir texto, figura, 
links, listas, formulários, outras tabelas, etc.
HTML – Seção BODY
Tabelas
HTML – Seção BODY
Tabelas
<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
● Linhas de cabeçalho podem ser definidas utilizando a 
tag <th>, de table header, o que definirá o texto como 
negrito e centralizado
HTML – Seção BODY
Tabelas
<table border="1">
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
● Para inserir uma legenda à tabela, usa-se a tag 
<caption>
HTML – Seção BODY
Tabelas
<table border="1">
 <caption>Monthly savings</caption>
 <tr>
 <th>Month</th>
 <th>Savings</th>
 </tr>
 <tr>
 <td>January</td>
 <td>$100</td>
 </tr>
 <tr>
 <td>February</td>
 <td>$50</td>
 </tr>
</table>
O que pode ter no HTML ?
Elementos estruturantes
Elementos chaves
Listas e dados
Links e imagens
● Em HTML, um link é criado utilizando a tag <a>, de duas 
maneiras:
● Para criar um link para outro documento
● Atributo HREF
● Para criar um link para o próprio documento (âncora ou bookmark), 
criando um apelido para determinada parte do documento.
● Atributo NAME
● O endereço indicado pelo link pode ser carregado na mesma 
janela em que o usuário se encontra, ou em outra janela.
● Essa característica é determinada pelo atributo TARGET
● _self
● _blank
HTML – Seção BODY
Hiperlink (Anchor)
<a href="http://www.w3schools.com">Visit W3Schools.com!</a>
● Para inserir imagens em um documento HTML, utiliza-se 
a tag <img>.
● Os seguintes atributos devem ser configurados:
● src
● Endereço da imagem (source)
● alt
● Texto mostrado no lugar da imagem, caso a mesma, 
por algum motivo não puder ser carregada
● width
● Largura da imagem
● heigh
● Altura da imagem
HTML – Seção BODY
Imagens
HTML – Seção BODY
Imagens
<!DOCTYPE html>
<html>
<body>
<img src="smiley.gif" alt="Smiley 
face" width="42" height="42">
</body>
</html>
O que pode ter no HTML ?
Elementos estruturantes
Elementos chaves
Listas e dados
Links e imagens
Formulários
HTML – Seção BODY
Formulários
● Formulários são usados para enviar dados para um 
servidor web.
● Os elementos de um formulário permitem o usuário 
entrar com informações, como campos de texto, campos 
de área de texto, menus drop-down, botões radiais, 
caixas de seleção, etc.
HTML – Seção BODY
Formulários
● A tag <form> define uma área de formulário.
<form>
...
elementos de entrada
...
</form>
HTML – Seção BODY
Formulários
● A tag <input> define um elemento de entrada.
● É a tag mais utilizada em formulários.
● Um elemento de entrada pode ser um campo de texto, 
um checkbox, um campo de senha, um botão de radio, 
um botão de envio (submit), entre outros.
● Definido pelo atributo type
HTML – Seção BODY
Formulários
● Campo de texto
● <input type = “text” name = “nome” />
<!DOCTYPE html>
<html>
<body>
<form action="demo_form.asp">
First name: <input type="text" name="FirstName" value="Mickey"
><br>
Last name: <input type="text" name="LastName" value="Mouse"
><br>
<input type="submit" value="Submit">
</form>
<p>Click the "Submit" button and the form-data will be sent to a 
page on the server called "demo_form.asp".</p>
</body>
</html>
HTML – Seção BODY
Formulários - Tipos
Text
Radio
Checked
Submit
CSS 
Cascading Style Sheets
O que podemos fazer com CSS ?
Texto
Texto
Tamanho
Posição
Como usamos o CSS nas nossas 
paginas Web ?
Três maneiras
Inline
Embedded
External
(ordem: do mais fácil para o melhor)
Inline CSS (bad)
<body>
<h1 style = "color:red ;"> Ola Mundo </h1>
</body>
Inline CSS (bad)
<body>
<p style = "color:red ;"> Ola Mundo </p>
</body>
Mistura 
apresentação 
com estrutura
Inline CSS (bad)
<body>
<p style = "color:red ;"> Ola Mundo </p>
</body>
Mistura 
apresentação 
com estrutura
É aceito no 
HTML 4.01 
strict e no 
XHTML
Embedded CSS (OK)
<head>
<style type="test/css">
p {color:red;}
</style>
</head>
Embedded CSS (OK)
<head>
<style type="test/css">
p {color:red;}
</style>
</head> Rápido e fácil. 
Use em 
pequenas 
aplicações.
External CSS: link tag (GOOD)
<head>
<link rel="stylesheet" href="meuestilo.css">
<head>
Por dentro do CSS
Três partes
1.Seletor
Três partes
1.Seletor
2.Propriedades
Três partes
1.Seletor
2.Propriedades
3.Valores
1. Primeiro selecionamos o elemento
p { }
2. Então dizemos o que queremos 
mudar
p { color: }
3. Então dizemos qual o valor para 
essa mudança
p { color: blue;}
h1 {
 color: red;
 font-size: 12px;
}
Ponto e virgulaChaves
Dois pontos
CSS Sintaxe
1.Seleção
2.Declaração
3.Cascata
SELEÇÃO
SeleçãoTipos de seleção
a. element
b. class
c. id
d. posição no documento
1. Element
Seleciona todos elemento <p>, em todo o 
documento HTML
p { }
2. Class
Seleciona todos os elementos da classe "menu"
.menu { }
. significa "esse é um nome de uma 
classe"
3. id
Seleciona o elemento com id "rodape"
#rodape { }
# significa "esse é um nome de um id"
4. posição no documento
Seleciona todos elementos "p" descendentes de 
rodape.
#rodape p { color:red; } 
<div id ="rodape">
<p> aqui é aplicada </p>
<span>aqui nao se aplica</span>
</div>
<p>aqui nao se aplica</p>
aqui é aplicada 
aqui nao se aplica 
aqui nao se aplica
4. posição no documento
Seleciona todos elementos "p" descendentes de 
rodape.
p.primeiro { color:red; } 
<div id ="rodape">
 <p class ="primeiro p" > aqui é aplicada </p>
 <p class ="segundo p"> aqui nao se aplica </p>
</div>
<p>aqui nao se aplica</p>
aqui é aplicada 
aqui nao se aplica 
aqui nao se aplica
4. posição no documento
#header div.content form p em.required {}
O que estamos selecionando pelo 
seletor acima ?
Pseudo classes
a:link {} /* link não visitado */
a:visited {} /* link visitado */
a:hover {} /* mouseover */
a:active {} /* link selecionado */
DECLARAÇÃO
Declaração
(o que está dentro das chaves)
selector {
 property: value;
}
Declaração
É a combinação de propriedade e valor.
Nos declaramos o que queremos mudar
CSS define diversas coisas que 
podemos declarar. Exemplo
font
color
background-color
border
(essas são as propriedades)
Cada propriedade possui um 
conjunto de valores que pode de 
ser aplicado.
font: 12px normal Verdana, sans-serif;
color: #123;
background-color: red;
border: 1px solid rgb(193,193,193); 
Propriedades tem diferentes 
granularidades
Por exemplo a propriedade "border" ...
Propriedades tem diferentes 
granularidades
Por exemplo a propriedade "border" ...
border
border-color
border-bottom
border-width
border-left
border-top
border-right
....
Propriedades tem diferentes 
granularidades
Por exemplo a propriedade "border" ...
border
border-color
border-bottom
border-width
border-left
border-top
border-right
....
font
font-family
font-size
font-style
font-weight
Existe uma alternativa mais 
simples
shorthand
Existe uma alternativa mais 
simples
shorthand
border: 1px solid #000
border-width: 1px 
border-style: solid 
border-color: #000
É equivalente a:
Podemos mudar especificas partes 
no estilo de um elemento
O que estamos fazendo aqui ?
p { border: 1px solid red; }
p.intro {border-color:blue;}
Unidades 
Absoulta vs 
relativas
px em %
Unidades absolutas
Pixels (px) are unidades absolutas.
Elas são sempre do mesmo “tamanho”. 
Independentemente do dispositivo
Unidades relativas
em é sempre relativa ao valor corrente do 
tamanho da fonte.
width: 2em;
font-size: 2em;
% é relativo a diferentes coisas em 
diferentes contextos
width: 50% ; 50% da largura disponível
font-size: 50% ; 50% do tamanho corrente da fonte
Unidades relativas
em é sempre relativa ao valor corrente do 
tamanho da fonte.
width: 2em;
font-size: 2em;
% é relativo a diferentes coisas em 
diferentes contextos
width: 50% ; 50% da largura disponível
font-size: 50% ; 50% do tamanho corrente da fonte
HTML5 
usaremos em 
para fonts e 
não mais px.
Como é calculado ?
Como é calculado ?
body {font-size:12 px;}
h1 {font-size: 200 % ;}
h1 a {font-size: 75%;}
Como é calculado ?
body {font-size:12 px;}
h1 {font-size: 200% ;}
O texto de h1 é 24 pixels (12*2)
h1 a {font-size: 75%;}
Um link dentro de um h1 é 18 pixel 
(12*2*.75)
Como é calculado ?
body {font-size:100%;}
h1 {font-size: .75em;}
Como é calculado ?
body {font-size:100%;}
h1 {font-size: .75em;}
Considerando o tamanho de 16 pixels 
para o browser, temos 0.75 * 16 = 12
CASCATA
Cascata
Como e quais declaração serão 
aplicadas aos elementos;
Regras para aplicação das declarações
Cascata
Como e quais declaração serão 
aplicadas aos elementos;
Regras para aplicação das declarações
Especificidade
Herança
Usualmente, as declarações 
são aplicadas na ordem de 
definição
p {color: red;}
p {color: blue;}
A ultima declaração é a valida para todos 
elementos “p”.
Usualmente, as declarações 
são aplicadas na ordem de 
definição
p {color: red;}
p {color: blue;}
A ultima declaração é a valida para todos 
elementos “p”.
ESPECIFICIDADE.
Usualmente, as declarações 
são aplicadas na ordem de 
definição
p {color: red;}
p {color: blue;}
A ultima declaração é a valida para todos 
elementos “p”.
A última 
declaração 
mais 
específica.
ESPECIFICIDADE.
<div id =“a”>
<div id =“b”>
<h1> </h1>
</div>
</div>
#a #b h1 {color:red;}
#a h1 {color: blue;}
Qual seletor é mais específico ?
Qual será a cor de h1 dentro de #b ?
Regras para determinar a 
especificade
●Elemento é 1 ponto
●Uma classe é 10 pontos
●Um id é 100 pontos
Regras para determinar a 
especificade
●Elemento é 1 ponto
●Uma classe é 10 pontos
●Um id é 100 pontos
Regras para determinar a 
especificade
○ Elemento é 1 ponto
○ Uma classe é 10 pontos
○ Um id é 100 pontos
p a {} = 2 pontos
p.intro a {} = 12 pontos
#about p.intro a {} = 112 pontos
Herança
Elemento podem herdar estilos dos 
elementos ascendentes
#blog {color: red;}
<div id=“blog”>
<p>Ola</p>
</div>
O elemento “p” por ser descendente de 
#blog, terá cor vermelha.
#blog {color: red;}
<div id=“blog”>
<p>Ola</p>
</div>
O elemento “p” por ser descendente de 
#blog, terá cor vermelha.
Atenção, 
nem todos os 
estilos são 
“herdáveis”.
Usualmente ...
Propriedades relativas a texto 
são herdadas
Propriedades relativas a layout 
não são herdáveis
.
Layout
1.Modelo caixa
2.Fluxo (“propriedade display”)
3.Posição
4.Flutuação
Modelo caixa
Content
Padding
Border
Margin
Modelo Caixa
Content
Declarando margin ou 
padding
margin: 1em;
Todas as margens = 1em
margin: 1em 2em;
Superior e inferior = 1em e direita e esquerda = 
2em
margin: 1em 2em 3em 4em ;
Superior = 1em, direita = 2em, inferior = 3em e 
esquerda = 4em
Declarando margin ou 
padding
margin: 1em;
Todas as margens = 1em
margin: 1em 2em;
Superior e inferior = 1em e direita e esquerda = 
2em
margin: 1em 2em 3em 4em ;
Superior = 1em, direita = 2em, inferior = 3em e 
esquerda = 4em
Movimento 
do relógio
Fluxo (“propriedade display”)
Em linha (inline)
Mostra na mesma linha
Ex: <span>, <a>, <input>, <img> ..
Nível de bloco (block)
Mostra em uma linha posterior
Ex: <h1>,<p>, <ul>, <div>
Exemplo
<p> Click <a href=""> aqui </a> </p>
a { display: block; }
Click
aqui
Posição
static (padrão)
absolute
relative
fixed
Posição
static (padrão)
absolute
relative
fixed
Flutuação 
(float)
Exercícios
css-walkthrough

Continue navegando