SlideShare uma empresa Scribd logo
1 de 113
Baixar para ler offline
Aula 07

CSSCascading Style Sheets
Cristiano Pires Martins
Fonte: http://pt-br.html.net
• CSS (Cascading Style Sheets — Folha de

Estilos em Cascata) é uma linguagem de
estilo utilizada para definir a apresentação
de documentos escritos em uma linguagem
de marcação, como HTML ou XML.

• Seu principal benefício é prover a

separação entre o formato e o conteúdo
de um documento.
O que eu posso fazer com CSS?
•

CSS é uma linguagem para estilos que define o layout de
documentos HTML.

•

CSS controla fontes, cores, margens, linhas, alturas, larguras,
imagens de fundo, posicionamentos...

•

HTML pode ser usado para definir o layout de websites.
Contudo CSS proporciona mais opções e é mais preciso e
sofisticado.

•

CSS é suportado por todos os navegadores atuais (*).
CSS != HTML
•
•

HTML é usado para estruturar conteúdos.

•

CSS foi inventada para colocar à disposição dos
web designers meios sofisticados de projetar
layouts suportados por todos os navegadores.

•

E ao mesmo tempo a separação dos estilos de
apresentação da marcação dos conteúdos torna a
manutenção dos sites bem mais fácil.

CSS é usado para formatar conteúdos
estruturados.
Benefícios do uso de CSS?

• controle do layout de vários documentos a
partir de uma simples folha de estilos;

• maior precisão no controle do layout;
• aplicação de diferentes layouts para servir
diferentes mídias (tela, impressora, etc.);

• emprego de variadas, sofisticadas e

avançadas técnicas de desenvolvimento.
História
• Com a variação de atualizações dos

browsers como IE que ficou sem nova
versão de 2001 a 2006, o suporte ao CSS
pode variar.

• O IE6, tem suporte total a CSS1 e

praticamente nulo a CSS2. Navegadores mais
modernos como Chrome e Firefox tem
suporte maior, inclusive para o CSS3.
Testando...
•

Testando os navegadores com o teste
Acid2 (nome dado a uma página de
teste de compatibilidade com padrões
web W3C com navegadores): revela
quão eficiente é o suporte de CSS.

• http://acid2.acidtests.org
Testando Doctype
•

O Doctype informado ou a ausência dele
determina o quirks mode ou o strict mode
modificando o modo como o CSS é
interpretado e a página desenhada.

•

Se você não utilizar nenhum DocType, os
browsers vão trabalhar em Quirls Mode , como
o Internet Explorer e o Ópera, com exceção do
Mozilla Firefox e do Safari que sempre está em
Strict Mode.
Quirks x Strict Mode
•

Quirks Mode é uma maneira peculiar em que os
browsers interpretam o CSS.

•
•

"quirks" = "peculiaridade"

•

Quirks Mode e Strict Mode são as duas maneiras dos
browsers interpretar seu CSS.

•

O modo Strict segue os padrões da W3C e o modo
Quirks é peculiar a cada um.

Quirks Mode é o oposto de "Strict Mode" (modo
estrito, preciso).
Curiosidade!?!
•

No IE 6, a MS validava sua página de acordo com a W3C e ao mesmo tempo
trabalhava em Quirks Mode. Ou seja, para validar em XHTML 1 é preciso usar
um DocType correto, mas usar um Doctype certo ativava o Strict Mode.

•

A solução da Microsoft então, foi usar um prólogo (Prolog de XML) antes do
Doctype que ativa o Quirks Mode ao mesmo tempo em que utiliza um
DocType aceito e validado pela W3C:
<?xml version="1.0" encoding="iso-8859-1"?>

•

Ou então, basta inserir uma linha vazia sobre o Doctype, sem inserir o Prolog
em XML que a ativação do Quirks Mode funciona do mesmo jeito.
Como funciona
• Muitas das propriedades usadas em
Cascading Style Sheets (CSS) são
semelhantes àquelas do HTML
Sintaxe básica das CSS
•
•

Supondo cor de fundo vermelha para a página web:
Usando HTML:
<body bgcolor="#FF0000">

•

Com CSS o mesmo resultado será obtido assim:	

body {background-color: #FF0000;}
Modelo
Onde colocar o CSS?
• In-line
• Interno
• Externo (indicado!)
In-line (o atributo style)
<html>
!

<head>
! <title>Exemplo</title>

!

</head>

!

<body style="background-color: #FF0000;">

!

!

!

</body>

<p>Esta é uma página com fundo vermelho</p>

</html>
Interno (a tag style)
<html>
!

<head>

!

!

<title>Exemplo</title>

!

!

<style type="text/css">

!

!

!

!

body {background-color: #FF0000;}
</style>

!

</head>

!

<body>

!
!
!

!

<p>Esta é uma página com fundo vermelho</p>
</body>

</html>
Externo (link para uma
folha de estilos)
•

O método recomendado é o de linkar para
uma folha de estilos externa.

•

Uma folha de estilos externa é um simples
arquivo de texto com a extensão .css.

•

Você pode colocar uma folha de estilos tanto
no servidor como no disco rígido.
•

•

Externo (link para uma
folha de estilos)
Supondo que sua folha de estilos tenha sido nomeada de style.css e está
localizada no diretório style.

O "truque" é criar um link no documento HTML (default.htm) para a folha
de estilos (style.css). O link é criado em uma simples linha de código HTML
como mostrado a seguir:
!

<link rel="stylesheet" type="text/css" href="style/style.css" />

Notar que o caminho para a folha de estilos é indicado no atributo href.
Onde inserir...
•

Esta linha de código deve ser inserida na seção header do documento HTML:

!
!
!

<html>
<head>
! <title>Meu documento</title>

! ! <link rel="stylesheet" type="text/css"
href="style/style.css" />
!

</head>

!

<body>

!

...
• O link informa ao navegador para usar o
arquivo CSS na renderização e
apresentação do layout do documento
HTML.

• O inteligente disto é que vários

documentos HTML podem lincar para uma
mesma folha de estilos.
Exercício 1
default.htm
!
!

<html>
<head>

!
!
<title>Meu documento</title>
!
!
<link rel="stylesheet" type="text/css"
href="style.css" />
!
!
!
!
!

</head>
<body>
!
<h1>Minha primeira folha de estilos</h1>
</body>
</html>
style.css
body
{
!
}

background-color: #FF0000;
Exercício 2

!
!

<html>
<head>

!
!
<title>Meu documento</title>
!
!
<link rel="stylesheet"
type="text/css" href="style.css" />
default.htm

!

</head>

!
<body>
!
!
<h1>Minha primeira folha de
estilos</h1>
!
!

</body>
</html>

body {
!

!

background-color: #FFCC66;

!
!

!
!

background-image: url("butterfly.gif");
background-repeat: no-repeat;

!

!

background-attachment: fixed;

!

!

background-position: right bottom;

!

}

!
!

h1 {
!
color: #990000;

!

!

!

}

background-color: #FC9804;

style.css
Fontes
•

Família de fontes [font-family]
font-family: usada para definir uma lista de fontes e sua
prioridade para apresentação de um elemento em uma
página.

•
•

•

Se a primeira fonte da lista não estiver instalada na
máquina do usuário, deverá ser usada a segunda e assim
por diante.

Existem dois tipos de nomes para definir fontes:

•
•

nomes para famílias de fontes;
nomes para famílias genéricas.
Nomes para
família de fontes
•

Os dois são explicados a seguir:

•
•

nome para famílias de fontes:

•

Exemplos para este tipo (normalmente conhecidas
como "font") são "Arial", "Times New Roman" ou
"Tahoma".

nome para famílias genéricas:

•

Famílias genéricas são fontes que pertencem a um
grupo com aparência uniforme.

•

Um exemplo são as fontes sans-serif que englobam a
coleção de fontes que "não têm pé".
A diferença está mostrada nas figuras a seguir:
Exemplos de Fontes
• Sans serif: Arial, Arial Narrow, Arial Rounded
MT Bold, Century Gothic, Chicago,
Helvetica, Geneva, Impact, Monaco, MS Sans
Serif, Tahoma, Trebuchet MS e Verdana.

• Serif: Book Antiqua, Bookman Old Style,

Courier, Courier New, Century Schoolbook,
Garamond, Georgia, MS Serif, New York,
Times, Times New Roman e Palatino.
Exemplo 1 - Fontes
h1
{
font-family: arial, verdana, sans-serif;
}
h2
{
font-family: "Times New Roman", serif;
}
Estilo da fonte
[font-style]
• A propriedade font-style define a escolha da
fonte em normal, italic ou oblique.

• Exemplo:	

h1
{
font-family: arial, verdana, sans-serif;
}
h2
{
font-family: "Times New Roman", serif;
font-style: italic;
}
Fonte variante
[font-variant]
• É usada para escolher as variantes normal
ou small-caps. Uma fonte small-caps é
aquela que usa letras maiúsculas de
tamanhos reduzidos. Exemplos:

Se a propriedade font-variant for definida para small-caps e não estiver
disponível na máquina do usuário, será usada fonte em maiúscula.
Exemplo - font-variant
h1
{
font-variant: small-caps;
}
h2
{
font-variant: normal;
}
Peso da fonte
[font-weight]

• A propriedade font-weight define quão

negrito ou "pesada" deve ser renderizada a
fonte.

• Uma fonte pode ser normal ou bold.
• Alguns navegadores suportam números de
100-900 (em intervalos de 100 em 100)
para definir o peso da fonte.
Peso da fonte
[font-weight]
p
{
font-family: arial, verdana, sans-serif;
}
td
{
font-family: arial, verdana, sans-serif;
font-weight: bold;
}
Tamanho da fonte
[font-size]

• O tamanho da fonte é definido pela
propriedade font-size.

• Existem muitas unidades (p. ex.:. pixels e

percentagens) que podem ser usadas para
definir o tamanho da fonte.
Exemplo - Tamanho de
Fonte
h1
{

font-size: 30px;
}
h2
{
font-size: 12pt;
}
h3
{
font-size: 120%;
}
p
{
font-size: 1em;
}
Curiosidades sobre
Fontes

•

As unidades 'px' e 'pt' são absolutas, enquanto '%' e
'em' permitem ao usuário ajustar o tamanho das
fontes ao seu gosto e necessidade.

•

Muitos usuários têm restrições, como por exemplo,
pessoas idosas, pessoas com visão limitada ou as
que usam um monitor de baixa qualidade. Para fazer
seu site acessível a todos, você deverá usar unidades
como '%' ou 'em'.

•

É possível ajustar as fontes nos navegadores Mozilla
Firefox e Internet Explorer.
Compilando [font]
p
{
	

	

	

	

}

font-style: italic;
font-weight: bold;
font-size: 30px;
font-family: arial, sans-serif;
Usar a abreviação simplifica o código como mostrado abaixo:

p
{
	

}

font: italic bold 30px arial, sans-serif;

Usar font é uma abreviação que
permite definir várias
propriedades em uma só.

A ordem dos valores para font é a mostrada a seguir:
font-style | font-variant | font-weight | font-size | font-family
Textos
• text-indent
• text-align
• text-decoration
• letter-spacing
• text-transform
Indentação de texto
[text-indent]
• Permite que você aplique um recuo à
primeira linha de um parágrafo.

p
{
!
}

text-indent: 30px;
Alinhamento de textos
[text-align]
• Corresponde ao atributo align das antigas
versões do HTML.

• Textos podem ser alinhados à esquerda
(left), à direita (right) ou centrados
(centred) e o justificado (justify).
arquivo.html
<body>
!
<h1>Alinhamento de textos</h1>
!
<h2>Texto alinhado em tabelas</h2>
!
<table border="1" width="100%">
!
<tr>
!
<th>Cabeçalho 1</th>
!
<th>Cabeçalho 2</th>
!
</tr>
!
<tr>
!
<td>Célula 1</td>
!
<td>Célula 2</td>
!
</tr>
!
</table>
!
<h2>Texto justificado em parágrafos </h2>
!
<p>Texto com o recuo de 30 pixels
pertencente ao parágrafo</p>
!
<p>Outro parágrafo com as mesmas
características.</p>!
</body>

style.css
th
{
! text-align: right;
}
td
{
! text-align: center;
}
p
{
! text-align: justify;
}
Decoração de textos
[text-decoration]
• Possibilita adicionar "efeitos" ou
"decoração" em textos.

• É possível sublinhar textos, cortar o texto
com uma linha, colocar uma linha sobre o
texto, etc.
arquivo.html
<body>
<h1>Este texto é sublinhado </h1>
<h2>Este texto é com linha em cima </h2>
<h3>Este texto é cortado por uma linha
</h3>
</body>

style.css
h1
{
!
text-decoration: underline;
}
h2
{
!
text-decoration: overline;
}
h3
{
!
text-decoration: line-through;
}
Espaço entre letras
[letter-spacing]
• O espaçamento entre os caracteres de um

texto é controlado pela propriedade letterspacing.

• O valor desta propriedade define o espaço
entre os caracteres.
arquivo.html

<body>
! <h1>Espaçamento entre
caracteres</h1>
! <p>Espaçamento do parágrafo
com 6px. Xxxxx xxxxxxxxx xxxxx
xxxx x x x xxxxxxx x x xxxxxxx
xxxxx xxxx xxxx xxx. </p>
</body>

style.css
h1
{
! letter-spacing: 6px;
}
p
{
! letter-spacing: 3px;
}
Transformação de
textos [text-transform]
•

Controla a capitalização do texto.Você pode escolher
capitalize, uppercase ou lowercase independentemente
de como o texto foi escrito no código HTML. Exemplos:

•

capitalize: Capitaliza a primeira letra de cada palavra.
Exemplo: aula -> Aula

•

uppercase: Converte todas as letras para maiúscula.
Exemplo: aula -> AULA

•

lowercase: Converte todas as letras para minúscula.
Exemplo: AULA -> aula

•

none: Sem trasformações - o texto é apresentado
como foi escrito no código HTML.
arquivo.html
<body>
! <h1>este cabeçalho é com letras
maiúsculas </h1>
! <ul>
! <li>peter hanson</li>
! <li>max larson</li>
! <li>joe doe</li>
! <li>paula jones</li>
! <li>monica lewinsky</li>
! <li>donald duck</li>
! </ul>
! <p>Notar, que com CSS todas as
letras iniciais dos nomes foram
capitalizadas (tornadas
maiúsculas). </p>
</body>

style.css
h1
{
! text-transform:
uppercase;
}
li
{
! text-transform:
capitalize;
}
Links
•

É possível aplicar aos links tudo que foi visto
nessa aula: mudar cores, fontes, sublinhados, etc).

•

A novidade aqui é que você pode definir as
propriedades de maneira diferenciada de acordo
com o estado do link ou seja visitado, não
visitado, ativo ou com o ponteiro do mouse
sobre o link.

•

Para estilizar estes efeitos você usará as
chamadas pseudo-classes.
pseudo-classe?
• Uma pseudo-classe permite estilizar levando em

conta condições diferentes ou eventos ao definir
uma propriedade de estilo para uma tag HTML.

• Exemplo. Como você já sabe, links são marcados
no HTML com tags <a>. É possível usar a como
um seletor CSS:
a
{
! color: blue;
}
link
• Um link pode ter diferentes
estados.

• Por exemplo, pode ter sido
visitado ou não visitado.

• É possível usar pseudo-

classes para estilizar links
visitados e não visitados.
style.css
arquivo.html
! <body>
! <h1>Efeito hover sobre
links!</h1>
! <p>
<a
href="arquivo_teste.html"
> Coloque o ponteiro do
mouse sobre o link
</a>
</p>!
</body>

a:link
{
! color: blue;
}
a:visited
{
! color: red;
}
a:active
{
! background-color: red;
}
a:hover
{
! color: orange;
! font-style: italic;
letter-spacing: 10px;
! font-weight:bold;
text-transform:uppercase;
! background-color:yellow;
}
Removendo sublinhado
dos links
•

Você deve estudar com muito cuidado a
necessidade de retirar o sublinhado dos links,
pois isto poderá reduzir signifcativamente a
usabilidade do website.

•

As pessoas estão acostumadas com links na
cor azul e sublinhados e sabem que ali há um
texto a ser clicado.

•

Para remover o sublinhado, basta definir o
valor none para a propriedade text-decoration.
style.css

arquivo.html
<body>
! <body>
! <h1>Efeito hover sobre links!</h1>
! <p>
<a href="arquivo_teste.html">
Coloque o ponteiro do mouse
sobre o link
</a>
</p>!
</body>
</body>

a:link
{
! color: blue;
! text-decoration:none;
}
a:visited
{
! color: purple;
! text-decoration:none;
}
a:active
{
! background-color: yellow;
! text-decoration:none;
}
a:hover
{
! color:red;
! text-decoration:none;
}
Identificando e agrupando
elementos (classes e id)
•

Em alguns casos é necessário aplicar estilos a um
elemento ou grupo de elementos em particular.

•

Isso é feito usando class e id para estilizar
elementos.

•

Como definir uma cor para um determinado
cabeçalho, diferente da cor usada para os
demais cabeçalhos do website?

•

Como agrupar links em diferentes categorias e
estilizar cada categoria diferentemente?
Agrupando elementos
com uso de classe
arquivo.html

p>Uvas para vinho branco:</p>
<ul>
! <li><a href="ri.htm">Riesling</a></li>
! <li><a href="ch.htm">Chardonnay</a></li>
! <li><a href="pb.htm">Pinot Blanc</a></li>
</ul>
<p>Uvas para vinho tinto:</p>
<ul>
<li><a href="cs.htm">Cabernet Sauvignon</a></li>
<li><a href="me.htm">Merlot</a></li>
<li><a href="pn.htm">Pinot Noir</a></li>
</ul>
Agrupando elementos
com uso de classe
arquivo.html
<p>Uvas para vinho branco:</p>
<ul>
<li><a href="ri.htm" class="whitewine">Riesling</a></
li>
<li><a href="ch.htm" class="whitewine">Chardo</a></li>
<li><a href="pb.htm" class="whitewine">Pinot</a></li>
</ul>
<p>Uvas para vinho tinto:</p>
<ul>
!
<li><a href="cs.htm" class="redwine">Cabern</a></li>
!
<li><a href="me.htm" class="redwine">Merlot</a></li>
!
<li><a href="pn.htm" class="redwine">Pinot</a></li>
</ul>

Pode-se definir propriedades para estilização dos
elementos pertencentes a uma determinada classe
usando um .nomedaclasse na folha de estilos.

style.css
a
{
! color: blue;
}
a.whitewine
{
! color: #FFBB00;
}
a.redwine
{
! color: #800000;
}
Identificando um
elemento com uso de id
•

Além de agrupar elementos podemos querer
atribuir identificação a um único elemento.

•
•

Isto é feito usando o atributo id.

•

Para casos em que haja necessidade de mais de
um elemento com a mesma identificação usamos
o atributo class.

O que há de especial no atributo id é que não
poderá existir dois ou mais elementos com a
mesma id. Cada id é única.
arquivo.html
<h1>Capítulo
! ...
<h2>Capítulo
! ...
<h2>Capítulo
! ...
<h1>Capítulo
! ...
<h2>Capítulo
! ...
<h3>Capítulo
! ...

1</h1>
1.1</h2>
1.2</h2>
2</h1>
2.1</h2>
2.1.2</h3>

arquivo.html
<h1 id="c1">Capítulo 1</h1>
! ...
<h2 id="c1-1">Capítulo 1.1</h2>
! ...
<h2 id="c1-2">Capítulo 1.2</h2>
! ...
<h1 id="c2">Capítulo 2</h1>
! ...
<h2 id="c2-1">CCapítulo 2.1</h2>
! ...
<h3 id="c2-1-2">Capítulo 2.1.2</h3>
! ...
arquivo.html
<h1 id="c1">Capítulo 1</h1>
! ...
<h2 id="c1-1">Capítulo 1.1</h2>
! ...
<h2 id="c1-2">Capítulo 1.2</h2>
! ...
<h1 id="c2">Capítulo 2</h1>
! ...
<h2 id="c2-1">CCapítulo 2.1</h2>
! ...
<h3 id="c2-1-2">Capítulo 2.1.2</h3>
! ...

style.css
#c1-2
{
! ! color: red;
}
Agrupando elementos
(span e div)

•

Os elementos <span> e <div> são usados para
agrupar e estruturar um documento e são
frequentemente usados em conjunto com os
atributos class e id.

•

Agora o uso dos elementos HTML <span> e
<div> no que se refere a sua vital importância
para as CSS.

•
•

Agrupando com <span>
Agrupando com<div>
Agrupando com
<span>
• O elemento <span> é um elemento neutro
e que não adiciona qualquer tipo de
semântica ao documento.

• Contudo, <span> pode ser usado pelas CSS
para adicionar efeitos visuais a partes
específicas do texto no seu documento.
arquivo.html

Exemplo

<p>Dormir cedo e acordar cedo faz o homem
saudável, rico e sábio.</p>

• Se quiser enfatizar os benefícios na cor vermelha,

marca-se os benefícios com <span>.
•A cada span é atribuído uma class, estilizada na folha
de estilos:

arquivo.html

<p>Dormir cedo e acordar cedo faz o homem
<span class="benefit">saudável</span>,
<span class="benefit">rico</span>
e <span class="benefit">sábio</span>.</p>

style.css
span.benefit
{
! color:red;
}
Agrupando com <div>
• Enquanto <span> é usado dentro de um
elemento nível de bloco como vimos no
exemplo anterior, <div> é usado para
agrupar um ou mais elementos nível de
bloco.

• Diferenças à parte, o agrupamento com

<div> funciona mais ou menos da mesma
maneira.
arquivo.html

Exemplo

<div id="democratas">
! <ul>
! <li>Franklin D. Roosevelt</li>
! <li>Harry S. Truman</li>
! <li>John F. Kennedy</li>
! <li>Lyndon B. Johnson</li>
! <li>Jimmy Carter</li>
! <li>Bill Clinton</li>
! </ul>
! </div>
!
!
!
!
!
!
!
!
!
!

<div id="republicanos">
<ul>
<li>Dwight D. Eisenhower</li>
<li>Richard Nixon</li>
<li>Gerald Ford</li>
<li>Ronald Reagan</li>
<li>George Bush</li>
<li>George W. Bush</li>
</ul>
</div>

style.css

#democrats
{
! background:blue;
}
#republicans
{
! background:red;
}
O box model
• O box model (modelo das caixas) em CSS,

descreve os boxes (as caixas) geradas pelos
elementos HTML.

• Detalha ainda, as opções de ajuste de

margens, bordas, padding e conteúdo para
cada elemento.
O box model em CSS
Margin e padding
• Um elemento tem quatro lados:
• right
• left
• top
• bottom
margin
• A margin é a distância entre os lados de
elementos vizinhos (ou às bordas do
documento).
Exemplo - margin
style.css
body
! !
! !
! !
! !
! }

{
margin-top: 100px;
margin-right: 40px;
margin-bottom: 10px;
margin-left: 70px;

style.css

body {
! ! margin: 100px 40px 10px 70px;
! }
padding
• Padding pode também ser entendido como
"enchimento".

• Isto faz sentido, porque padding não é

computado na distância entre elementos,
padding define simplesmente a distância
entre a borda e o conteúdo do elemento.
Exemplo
- padding
style.css
h1 {
! background: yellow;
! padding: 20px 20px 20px 80px;
}
h2 {
! background: orange;
! padding-left:120px;
}
Exemplo
arquivo.html
<h1>Article 1:</h1>
<p>All human beings are
born free and equal in
dignity and rights. They
are endowed with reason
and conscience and
should act towards one
another in a spirit of
brotherhood</p>

Definindo estilos para
cores e fontes o exemplo
pode ser apresentado:
Exercício:
• O exercício contém dois elementos: <h1>
e <p>.

• O box model para os dois elementos é:
Faça um
código
CSS para
mostrar o
texto
dessa
forma:
Bordas
• Bordas podem ser usadas como elemento
decorativo ou para servir de linha de
separação entre duas coisas.

• CSS proporciona infinitas possibilidades de
uso de bordas na página.
A espessura das bordas
[border-width]
• A espessura das bordas é definida pela
propriedade border-width, que pode
assumir os valores:

• thin (fina);
• medium (média);
• thick (grossa)
• valor numérico em pixels.
A espessura das bordas
[border-width]
•

A figura a seguir ilustra algumas
espessuras de bordas:
As cores das bordas
[border-color]

• A propriedade border-color define as cores
para as bordas.

• Os valores são expressos em código ou
nome de cores:

• #123456
• rgb(123,123,123)
• yellow
Tipos de bordas
[border-style]
•

Existem vários tipos de bordas
disponíveis para escolha.

•

A seguir apresentamos 8 tipos diferentes
de bordas e como elas são renderizadas
Internet Explorer 5.5. Todos os exemplos
são mostrados na cor "gold" e com
espessura "thick", mas você pode usar
qualquer cor e espessura ao seu gosto.

•

Os valores none ou hidden podem ser
usados quando não se deseja a existência
de bordas.
Exemplos de definição
de bordas

•

As três propriedades explicadas acima podem
ser definidas juntas para cada elemento e
resultam em diferentes bordas.

•

Para exemplificar, foram estilizadas diferentes
bordas para os elementos <h1>, <h2>, <ul> e
<p>.

•

O resultado pode não ser uma obra prima,
mas, ilustra bem algumas das inúmeras
possibilidades de estilização de bordas.
Exemplos de
definição de bordas
h1{
! !
! !
! !
}
h2{
! !
! !
! !
}
p{
! !
! !
! !
}
ul{
! !
! !
! !
}

border-width: thick;
border-style: dotted;
border-color: gold;

border-width: 20px;
border-style: outset;
border-color: red;

border-width: 1px;
border-style: dashed;
border-color: blue;

border-width: thin;
border-style: solid;
border-color: orange;

style.css

arquivo.html

<body>
! <h1>Bordas</h1>
! <p>Este é um parágrafo</p>
! <ul>
! <li>Primeiro elemento da lista.</li>
! <li>Segundo elemento da lista.</li>
! <li>Terceiro elemento da lista.</li>
! </ul>
! <h2>Este é o H2</h2>
</body>
Compilando [border]
!
!
!
!
!

p
!
!
!
}

{
border-width: 1px;
border-style: solid;
border-color: blue;

Pode ser abreviada assim:
! p {
! ! border: 1px solid blue;
! }
!
Altura e largura
• Até agora ainda não fizemos qualquer
consideração sobre as dimensões dos
elementos com que trabalhamos.

• A propriedade width destina-se a definir a
largura de um elemento.

• O exemplo a seguir constrói um box

dentro do qual podemos digitar um texto:
Atribuindo largura
[width]
style.css
! div.box {
! ! width: 200px;
! ! border: 1px solid
black;
! ! background:
orange;
! }
!

arquivo.html

<body>
! <h1>&lt;div> com 200px de
largura e texto</h1>
! <div class="box">Texto qualquer
para verificar o CSS. Texto
qualquer para verificar o CSS.
Texto qualquer para verificar o
CSS. Texto qualquer para verificar
o CSS. Texto qualquer para
verificar o CSS. Texto qualquer
para verificar o CSS. </div>
</body>
Atribuindo altura
[height]

• No exemplo anterior a altura foi

determinada pelo conteúdo inserido no
box.

• É possível definir a altura de um elemento

com a propriedade height. Como exemplo,
vamos fazer a altura do box anterior igual a
500px:
Atribuindo altura
[height]
style.css

div.box {
! ! height: 500px;
! ! width: 200px;
! ! border: 1px solid black;
! ! background: orange;
! }
!
!

arquivo.html
<body>
!
<h1>&lt;div> com 200px de largura
500px de altura e texto</h1>
!
<div class="box">Este é um texto
para testar o height. Este é um texto
para testar o height. Este é um texto
para testar o height. Este é um texto
para testar o height. Este é um texto
para testar o height. Este é um texto
para testar o height. Este é um texto
para testar o height. Este é um texto
para testar o height. Este é um texto
para testar o height. Este é um texto
para testar o height. </div>
</body>
Flutuando elementos
(floats)
•Um elemento pode ser 'flutuado' à esquerda
ou à direita com uso da propriedade float.
• Isto significa que o box e seu conteúdo são
deslocados para a direita ou para a esquerda
do documento (ou do bloco container).
Flutuando elementos
(floats)
•A figura a seguir ilustra o princípio de float:
style.css
p
!
!
!
!

{
! float:left;
! width: 100px;
}
Flutuando
elementos (floats)

• Como isto é feito ?
• O HTML para o

exemplo acima é
mostrado a seguir:

Para conseguir o efeito
mostrado, basta definir
uma largura para o box
que o contém e declarar
para ele float: left;

<div id="picture">
! ! <img src="bill.jpg"
alt="Bill Gates">
arquivo.html
</div>
<p>causas naturales et
antecedentes,
! idciro etiam nostrarum
voluntatum...</p>

style.css
#picture
{
! float:left;
! width: 100px;
}
!
Exemplo: colunas
• Floats podem ser usados para construir
colunas em um documento.
Exemplo: Colunas
• Para criar as colunas estruturamos as

colunas no código HTML usando <div>
como mostrado a seguir:

arquivo.html

<div id="column1">
! ! <p>Haec disserens qua de re agatur
! ! et in quo causa consistat non videt...</p>
</div>
<div id="column2">
! ! <p>causas naturales et antecedentes,
! ! idciro etiam nostrarum voluntatum...</p>
</div>
<div id="column3">
! ! <p>nam nihil esset in nostra
! ! potestate si res ita se haberet...</p>
</div>
Exemplo: Colunas
style.css

• A seguir definimos a
largura de cada
coluna, por exemplo
33%, e declaramos
float: left; para cada
uma das colunas:

float pode ser declarado left, right ou none.

#column1 {
! ! float:left;
! ! width: 33%;
}
#column2 {
! ! float:left;
! ! width: 33%;
}
#column3 {
! ! float:left;
! ! width: 33%;
}
A propriedade clear
•

A propriedade clear é usada para controlar o
comportamento dos elementos que se seguem aos
elementos floats no documento.

•

Por padrão, o elemento subsequente a um float, ocupa o
espaço livre ao lado do elemento flutuado.

•

A propriedade clear pode assumir os valores left, right, both
ou none.

•

A regra geral é: se clear, for por exemplo definido both para
um box, a margem superior deste box será posicionada
sempre abaixo da margem inferior dos boxes flutuados que
estejam antes dele no código.
A propriedade
clear

arquivo.html
<div id="picture">
! ! <img src="bill.jpg" alt="Bill
Gates">
! </div>
! <h1>Bill Gates</h1>
! <p class="floatstop">causas
naturales et antecedentes, idciro etiam
nostrarum voluntatum...</p>

Para evitar que o texto se posicione no
espaço livre deixado pela foto do Bill
Gates basta adicionar a seguinte regra
CSS:

style.css

#picture {
! ! float:left;
! ! width: 100px;
}
.floatstop {
! clear:both;
}
Posicionando
elementos

• Com posicionamento CSS podemos

colocar um elemento em uma posição
exata na página.

• Combinado com floats, o posicionamento

abre muitas possibilidades para criação de
layouts precisos e avançados.
O princípio de
posicionamento CSS

• Considere a janela do navegador como um
sistema de coordenadas:
O princípio de
posicionamento CSS
• O princípio de posicionamento CSS

estabelece que você pode posicionar um
elemento em qualquer lugar na tela usando
um sistema de coordenadas.
O princípio de
posicionamento CSS
• Vamos supor que queremos posicionar um
cabeçalho. Usando o box model o
cabeçalho pode ser estilizado para ser
apresentado como mostrado abaixo:
O princípio de posicionamento CSS

• Se quisermos o cabeçalho posicionado a

100px do topo do documento e a 200px à
esquerda, podemos usar o seguinte CSS:

style.css
h1
!
!
!
}

{
! position:absolute;
! top: 100px;
! left: 200px;

O resultado é
mostrado a seguir:
Como você pode ver, posicionar com CSS é uma técnica precisa para colocar elementos.
É muito mais fácil do que usar tabelas, imagens transparentes e tudo mais.
Posicionamento
absoluto

•

Um elemento posicionado absolutamente não cria
nenhum espaço no documento. Isto significa que
não deixa nenhum espaço vazio após ser
posicionado.

•

Para posicionar um elemento de forma absoluta a
propriedade position deve ser definida para
absolute.

•

Você pode então usar as propriedades left, right,
top, e bottom para definir as coordenadas e
posicionar o elemento.
Posicionamento absoluto
style.css
#box1 {
! position:absolute;
! top: 50px;
! left: 50px;
}
#box2 {
! position:absolute;
! top: 50px;
right: 50px;
}
#box3 {
! position:absolute;
bottom: 50px;
! right: 50px;
}
#box4 {
! position:absolute;
! bottom: 50px;
! left: 50px;
}

arquivo.html

Para
exemplificar o
posicionamento
absoluto foi
colocado
quatro boxes
nos quatro
cantos da
página:

<body>
! <div id="box1">
! Box 1
! </div>
! <div id="box2">
! Box 2
! </div>
! <div id="box3">
! Box 3
! </div>
! <div id="box4">
! Box 4
! </div>
</body>
Posicionamento relativo
•

Para posicionar um elemento de forma relativa a
propriedade position deve ser definida para relative.

•

A diferença entre os dois tipos de posicionamento é a
maneira como o posicionamento é calculado.

•

O posicionamento para posição relativa é calculado com
base na posição original do elemento no documento.

•

Isto significa uma movimentação do elemento para a
esquerda, para a direita, para cima ou para baixo.

•

Assim fazendo o elemento ocupa um espaço após ser
posicionado.
Posicionamento
relativo

•

Como exemplo de
posicionamento relativo
vamos tentar posicionar
três imagens relativamente
as suas posições originais
na página. Notar como as
imagens deixam um
espaço vazio nas suas
posições originais no
documento:
Posicionamento
relativo
arquivo.html

#dog1 {
! ! position:relative;
style.css ! left: 350px;
!
! ! bottom: 150px;
! }
! #dog2 {
! ! position:relative;
! ! left: 150px;
! ! bottom: 500px;
! }
! #dog3 {
! ! position:relative;
! ! left: 50px;
! ! bottom: 700px;
! }

<body>
! <h1>The Tinder-Box</h1>
! <p><strong>By Hans Christian Andersen</strong></p>
<div id="dog1"><img src="dog1.gif" /></div>
! <p>A soldier came marching along the high road: "Left, right -left, right."</p>
<div id="dog2"><img src="dog2.gif" /></div>
! <p>As he walked on, he met a very frightful-looking old witch in the
road.</p>
<div id="dog3"><img src="dog3.gif" /></div>
! <p>"Thank you, old witch," said the soldier. </p>
</body>
Usando z-index
(Layers)
•

CSS usa o espaço tri-dimensional - altura, largura e
profundidade. Anteriormente foi visto as duas primeiras
dimensões.

•

Agora serão colocados elementos em layers (camadas).
Resumindo, camadas significam como os elementos se
sobrepõem uns aos outros.

•

Para isto, define-se para cada elemento um número
índice (z-index).

•

O comportamento é que elementos com número índice
maior se sobrepõem àqueles com menor número.
Usando z-index
(Layers)

• Supondo um royal flush no jogo de poker.

As cartas podem ser apresentadas como se
cada uma delas tivesse um z-index:
No caso mostrado, os números
índice estão em uma seqüência
direta (de 1-5), contudo o mesmo
resultado poderia ser obtido com
uso de 5 diferentes números, não
em seqüência. O que conta é a
cronologia dos números (a ordem).
Usando z-index (Layers)

• O código para a ilustração das
cartas é mostrado a seguir:

<body>
!
<h1>Royal Flush</h1>
!
<div id="ten_of_diamonds">
!
<img src="diamonds_10.gif" alt="10 of diamonds"
width="70" height="96">
!
</div>
!
<div id="jack_of_diamonds">
!
<img src="diamonds_jack.gif" alt="Jack of diamonds"
width="70" height="96">
!
</div>
!
<div id="queen_of_diamonds">
!
<img src="diamonds_queen.gif" alt="Queen of diamonds"
width="70" height="96">
!
</div>
!
<div id="king_of_diamonds">
!
<img src="diamonds_king.gif" alt="King of diamonds"
width="70" height="96">
!
</div>
!
<div id="ace_of_diamonds">
!
<img src="diamonds_ace.gif" alt="Ace of diamonds"
width="70" height="96">
!
</div>!
</body>

Você pode colocar imagens sobre textos, texto sobre texto, etc.

#ten_of_diamonds {
! ! position: absolute;
! ! left: 100px;
! ! top: 100px;
! ! z-index: 1;
}
#jack_of_diamonds {
! ! position: absolute;
! ! left: 115px;
! ! top: 115px;
! ! z-index: 2;
}
#queen_of_diamonds {
! ! position: absolute;
! ! left: 130px;
! ! top: 130px;
! ! z-index: 3;
}
#king_of_diamonds {
! ! position: absolute;
! ! left: 145px;
! ! top: 145px;
! ! z-index: 4;
}
#ace_of_diamonds {
! ! position: absolute;
! ! left: 160px;
! ! top: 160px;
! ! z-index: 5;
}!
Web-standards e
validação

•

W3C é a sigla para World Wide Web Consortium,
uma organização independente que gerencia as
normas para codificação na Internet (isto é, HTML,
CSS, XML e outros).

•

Microsoft, Fundação Mozilla e muitas outras
organizações são membros do W3C e formam um
consenso sobre o futuro desenvolvimento de
normas.

•

Há uma grande diferença na maneira como
diferentes navegadores renderizam uma página.
Web-standards e
validação

•

A idéia da normatização é criar um consenso e
encontrar um denominador comum para uso de
tecnologias para a Web.

•

Isto significa que seguindo as normas, um
desenvolvedor terá a certeza de que sua criação
será tratada de maneira apropriada em diferentes
plataformas.

•

É recomendado que você se beneficie do trabalho
desenvolvido pelo W3C e valide sua CSS para estar
em conformidade com as normas.
Validador CSS
•

Para facilitar a verificação aos preceitos das normas CSS,
o W3C desenvolveu um validador que faz uma verificação
da folha de estilos e retorna um relatório com os
eventuais erros e avisos caso sua CSS não valide.

•

Para facilitar a validação da sua folha de estilos você
poderá submetê-la ao validador aqui mesmo nesta página.

•

Na caixa de texto abaixo, substitua a URL existente pela
URL da sua folha de estilos e clique no botão para validar.

•

Você será informado pelo site do W3C se há erros na
sua folha de estilos.
Validador CSS
• Se o validador não encontrar erros; será

mostrada uma imagem como a abaixo, que
você poderá usar na sua página para
anunciar que está usando um código válido:

O validador pode também ser encontrado neste link: http://jigsaw.w3.org/css-validator/
CSS 3 - Novidades
Cantos arredondados
<body>
<div class="box-radius">Cantos arredondados - CSS3</div>
</body>

.box-radius{
-webkit-border-radius: 6px;
-moz-border-radius: 6px;
border-radius: 6px;
background-color: #234666;
color: #FFFFFF;
padding: 0.5em;
width: 170px;
}
.box{
border-radius: 50px 50px 50px 50px;
-moz-box-pack: center;
-moz-box-align: center;
-webkit-box-pack: center;
-webkit-box-align: center;
display: -moz-box;
display: -webkit-box;
text-align: center;
width: 100px;
height: 100px;
background-color: #234666;
color: #FFFFFF;
font-weight: bold;
}

Círculo usando
border-radius

<body>
<div class="box">border-radius</div>
</body>
.box{
border-radius: 50px 50px 50px 50px;
-moz-box-pack: center;
-moz-box-align: center;
-webkit-box-pack: center;
-webkit-box-align: center;
display: -moz-box;
display: -webkit-box;
-webkit-box-shadow: 1px 2px 5px #234666;
-moz-box-shadow: 1px 2px 5px #234666;
box-shadow: 1px 2px 5px #234666;
text-align: center;
width: 100px;
height: 100px;
background-color: #FFFFFF;
color: #234666;
font-weight: bold;
}
.box2{
-webkit-box-shadow: 1px 2px 5px #A3A3A3;
-moz-box-shadow: 1px 2px 5px #A3A3A3;
box-shadow: 1px 2px 5px #A3A3A3;
padding: 1em;
<body>
<div
margin: 1em;
<div
width: 110px;
</body>
}

sombra ou profundidade

class="box">Caixa 1 - CSS 3</div>
class="box2">Caixa 2 - CSS 3</div>

Mais conteúdo relacionado

Mais procurados

Construindo layout de sites com CSS
Construindo layout de sites com CSSConstruindo layout de sites com CSS
Construindo layout de sites com CSSTalita Pagani
 
Introdução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento webIntrodução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento webCarlos Eduardo Kadu
 
Minicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicaçãoMinicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicaçãoVanessa Me Tonini
 
HTML & CSS - Aula 5
HTML & CSS - Aula 5HTML & CSS - Aula 5
HTML & CSS - Aula 5lucampos_si
 
HTML & CSS - Aula 3
HTML & CSS - Aula 3 HTML & CSS - Aula 3
HTML & CSS - Aula 3 lucampos_si
 
Curso de css3 unidade 1 - introdução ao css
Curso de css3   unidade 1 - introdução ao cssCurso de css3   unidade 1 - introdução ao css
Curso de css3 unidade 1 - introdução ao cssLéo Dias
 
Básico em (X)HTML e CSS
Básico em (X)HTML e CSSBásico em (X)HTML e CSS
Básico em (X)HTML e CSSKako Botasso
 
Curso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosCurso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosTiago Antônio da Silva
 
CSS - Módulo Básico de WEB
CSS - Módulo Básico de WEBCSS - Módulo Básico de WEB
CSS - Módulo Básico de WEBDaniel Brandão
 
Técnicas e processos - HTML / CSS - aula 3
Técnicas e processos - HTML / CSS - aula 3Técnicas e processos - HTML / CSS - aula 3
Técnicas e processos - HTML / CSS - aula 3Ritielle de Souza
 
Técnicas e processos - HTML / CSS - aula 3
Técnicas e processos - HTML / CSS - aula 3Técnicas e processos - HTML / CSS - aula 3
Técnicas e processos - HTML / CSS - aula 3Ritielle de Souza
 
HTML & CSS - Aula 2
HTML & CSS - Aula 2HTML & CSS - Aula 2
HTML & CSS - Aula 2lucampos_si
 
HTML & CSS - Aula 4
HTML & CSS - Aula 4HTML & CSS - Aula 4
HTML & CSS - Aula 4lucampos_si
 

Mais procurados (20)

Construindo layout de sites com CSS
Construindo layout de sites com CSSConstruindo layout de sites com CSS
Construindo layout de sites com CSS
 
Introdução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento webIntrodução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento web
 
Introdução ao CSS
Introdução ao CSSIntrodução ao CSS
Introdução ao CSS
 
Css
CssCss
Css
 
Minicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicaçãoMinicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicação
 
Introdução CSS
Introdução CSSIntrodução CSS
Introdução CSS
 
HTML & CSS - Aula 5
HTML & CSS - Aula 5HTML & CSS - Aula 5
HTML & CSS - Aula 5
 
Modular CSS - Projetando CSS para aplicativos
Modular CSS - Projetando CSS para aplicativosModular CSS - Projetando CSS para aplicativos
Modular CSS - Projetando CSS para aplicativos
 
HTML & CSS - Aula 3
HTML & CSS - Aula 3 HTML & CSS - Aula 3
HTML & CSS - Aula 3
 
Curso de css3 unidade 1 - introdução ao css
Curso de css3   unidade 1 - introdução ao cssCurso de css3   unidade 1 - introdução ao css
Curso de css3 unidade 1 - introdução ao css
 
Básico em (X)HTML e CSS
Básico em (X)HTML e CSSBásico em (X)HTML e CSS
Básico em (X)HTML e CSS
 
Aprenda HTML e CSS
Aprenda HTML e CSSAprenda HTML e CSS
Aprenda HTML e CSS
 
Curso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosCurso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicos
 
Slides Css3
Slides Css3 Slides Css3
Slides Css3
 
CSS - Módulo Básico de WEB
CSS - Módulo Básico de WEBCSS - Módulo Básico de WEB
CSS - Módulo Básico de WEB
 
Técnicas e processos - HTML / CSS - aula 3
Técnicas e processos - HTML / CSS - aula 3Técnicas e processos - HTML / CSS - aula 3
Técnicas e processos - HTML / CSS - aula 3
 
Técnicas e processos - HTML / CSS - aula 3
Técnicas e processos - HTML / CSS - aula 3Técnicas e processos - HTML / CSS - aula 3
Técnicas e processos - HTML / CSS - aula 3
 
Curso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSSCurso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSS
 
HTML & CSS - Aula 2
HTML & CSS - Aula 2HTML & CSS - Aula 2
HTML & CSS - Aula 2
 
HTML & CSS - Aula 4
HTML & CSS - Aula 4HTML & CSS - Aula 4
HTML & CSS - Aula 4
 

Destaque

Destaque (20)

Aula 02 semiótica e cores
Aula 02   semiótica e coresAula 02   semiótica e cores
Aula 02 semiótica e cores
 
Aula 06 textos na web
Aula 06   textos na webAula 06   textos na web
Aula 06 textos na web
 
Aula 07 - lista linear
Aula 07 - lista linearAula 07 - lista linear
Aula 07 - lista linear
 
Aula 07 acessibilidade
Aula 07  acessibilidadeAula 07  acessibilidade
Aula 07 acessibilidade
 
Java script aula 07 - eventos
Java script   aula 07 - eventosJava script   aula 07 - eventos
Java script aula 07 - eventos
 
Java script aula 06 - dom
Java script   aula 06 - domJava script   aula 06 - dom
Java script aula 06 - dom
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 
Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
OAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e SaídaOAC Aula 09 - Entrada e Saída
OAC Aula 09 - Entrada e Saída
 
Java script aula 08 - formulários
Java script   aula 08 - formuláriosJava script   aula 08 - formulários
Java script aula 08 - formulários
 
Java script aula 04 - objeto array
Java script   aula 04 - objeto arrayJava script   aula 04 - objeto array
Java script aula 04 - objeto array
 
Aula 05 layout e composição do site
Aula 05   layout e composição do siteAula 05   layout e composição do site
Aula 05 layout e composição do site
 
Aula 04 layout e composição do site
Aula 04   layout e composição do siteAula 04   layout e composição do site
Aula 04 layout e composição do site
 
Java script aula 03 - objetos
Java script   aula 03 - objetosJava script   aula 03 - objetos
Java script aula 03 - objetos
 
Java script aula 09 - JQuery
Java script   aula 09 - JQueryJava script   aula 09 - JQuery
Java script aula 09 - JQuery
 
Java script aula 07 - j-query
Java script   aula 07 - j-queryJava script   aula 07 - j-query
Java script aula 07 - j-query
 
Upload
UploadUpload
Upload
 
curso de html
curso de htmlcurso de html
curso de html
 
Aula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oacAula 01-oac-introducao-a-oac
Aula 01-oac-introducao-a-oac
 
Aula 01-introducao-ao-so
Aula 01-introducao-ao-soAula 01-introducao-ao-so
Aula 01-introducao-ao-so
 

Semelhante a CSS: Aprenda os principais conceitos

2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdf2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdfRubenManhia
 
Aula 4 e 5 css e java script
Aula 4 e 5   css e java scriptAula 4 e 5   css e java script
Aula 4 e 5 css e java scriptandreluizlc
 
CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1Israel Messias
 
2014 - Desenvolvimento Web - 03 CSS
2014 - Desenvolvimento Web - 03 CSS2014 - Desenvolvimento Web - 03 CSS
2014 - Desenvolvimento Web - 03 CSSWillian Magalhães
 
MVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões WebMVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões WebRogério Moraes de Carvalho
 
Técnico de Informática de SistemasScripts CGI e Folhas de Estilo
Técnico de Informática de SistemasScripts CGI e Folhas de EstiloTécnico de Informática de SistemasScripts CGI e Folhas de Estilo
Técnico de Informática de SistemasScripts CGI e Folhas de EstiloElsaValada
 
Apresentação1.pptx
Apresentação1.pptxApresentação1.pptx
Apresentação1.pptxssusercbd9c4
 
Tecnologias Web com foco na criação de Landing Pages
Tecnologias Web com foco na criação de Landing PagesTecnologias Web com foco na criação de Landing Pages
Tecnologias Web com foco na criação de Landing PagesRangel Javier
 
01 Introdução à programação web
01 Introdução à programação web01 Introdução à programação web
01 Introdução à programação webCentro Paula Souza
 
CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata Mauro Duarte
 

Semelhante a CSS: Aprenda os principais conceitos (20)

2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdf2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdf
 
Aula 4 e 5 css e java script
Aula 4 e 5   css e java scriptAula 4 e 5   css e java script
Aula 4 e 5 css e java script
 
CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1
 
Desenvolvimento de sites css
Desenvolvimento de sites cssDesenvolvimento de sites css
Desenvolvimento de sites css
 
2014 - Desenvolvimento Web - 03 CSS
2014 - Desenvolvimento Web - 03 CSS2014 - Desenvolvimento Web - 03 CSS
2014 - Desenvolvimento Web - 03 CSS
 
Aula 07 Css - Parte 1
Aula 07   Css - Parte 1Aula 07   Css - Parte 1
Aula 07 Css - Parte 1
 
Super CSS
Super CSSSuper CSS
Super CSS
 
MVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões WebMVP Virtual Conference 2013: Suporte a padrões Web
MVP Virtual Conference 2013: Suporte a padrões Web
 
Curso HTML e CSS
Curso HTML e CSSCurso HTML e CSS
Curso HTML e CSS
 
Criando sites com estilos
Criando sites com estilosCriando sites com estilos
Criando sites com estilos
 
Técnico de Informática de SistemasScripts CGI e Folhas de Estilo
Técnico de Informática de SistemasScripts CGI e Folhas de EstiloTécnico de Informática de SistemasScripts CGI e Folhas de Estilo
Técnico de Informática de SistemasScripts CGI e Folhas de Estilo
 
Css completo(2)
Css   completo(2)Css   completo(2)
Css completo(2)
 
Mini curso html5 slides
Mini curso html5   slidesMini curso html5   slides
Mini curso html5 slides
 
Apresentação1.pptx
Apresentação1.pptxApresentação1.pptx
Apresentação1.pptx
 
Apresentacao aula5
Apresentacao aula5Apresentacao aula5
Apresentacao aula5
 
Tecnologias Web com foco na criação de Landing Pages
Tecnologias Web com foco na criação de Landing PagesTecnologias Web com foco na criação de Landing Pages
Tecnologias Web com foco na criação de Landing Pages
 
14 CSS Introdução
14 CSS Introdução14 CSS Introdução
14 CSS Introdução
 
01 Introdução à programação web
01 Introdução à programação web01 Introdução à programação web
01 Introdução à programação web
 
Curso HTML e CSS Part2
Curso HTML e CSS Part2Curso HTML e CSS Part2
Curso HTML e CSS Part2
 
CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata
 

Mais de Cristiano Pires Martins (14)

Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
Java script - funções
Java script - funçõesJava script - funções
Java script - funções
 
Aula 01 introdução
Aula 01   introduçãoAula 01   introdução
Aula 01 introdução
 
Aula 03 esquema de cores
Aula 03   esquema de coresAula 03   esquema de cores
Aula 03 esquema de cores
 
Aula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programasAula 08-oac-execucao-de-programas
Aula 08-oac-execucao-de-programas
 
Aula 07-oac-processadores
Aula 07-oac-processadoresAula 07-oac-processadores
Aula 07-oac-processadores
 
Aula 06-oac-memoria-principal
Aula 06-oac-memoria-principalAula 06-oac-memoria-principal
Aula 06-oac-memoria-principal
 
Aula 05-oac-conceitos-de-logica-digital
Aula 05-oac-conceitos-de-logica-digitalAula 05-oac-conceitos-de-logica-digital
Aula 05-oac-conceitos-de-logica-digital
 
Aula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacaoAula 03-oac-componentes-de-um-sistema-de-computacao
Aula 03-oac-componentes-de-um-sistema-de-computacao
 
Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2Aula 02-oac-historia-da-computacao-part2
Aula 02-oac-historia-da-computacao-part2
 
Aula 02-oac-historia-da-computacao-part1
Aula 02-oac-historia-da-computacao-part1Aula 02-oac-historia-da-computacao-part1
Aula 02-oac-historia-da-computacao-part1
 
Aula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-riscAula 10-oac-arquitetura-risc
Aula 10-oac-arquitetura-risc
 
Aula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivoAula 06-sistemas de-arquivo
Aula 06-sistemas de-arquivo
 
Aula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoriaAula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoria
 

CSS: Aprenda os principais conceitos

  • 1. Aula 07 CSSCascading Style Sheets Cristiano Pires Martins Fonte: http://pt-br.html.net
  • 2. • CSS (Cascading Style Sheets — Folha de Estilos em Cascata) é uma linguagem de estilo utilizada para definir a apresentação de documentos escritos em uma linguagem de marcação, como HTML ou XML. • Seu principal benefício é prover a separação entre o formato e o conteúdo de um documento.
  • 3. O que eu posso fazer com CSS? • CSS é uma linguagem para estilos que define o layout de documentos HTML. • CSS controla fontes, cores, margens, linhas, alturas, larguras, imagens de fundo, posicionamentos... • HTML pode ser usado para definir o layout de websites. Contudo CSS proporciona mais opções e é mais preciso e sofisticado. • CSS é suportado por todos os navegadores atuais (*).
  • 4. CSS != HTML • • HTML é usado para estruturar conteúdos. • CSS foi inventada para colocar à disposição dos web designers meios sofisticados de projetar layouts suportados por todos os navegadores. • E ao mesmo tempo a separação dos estilos de apresentação da marcação dos conteúdos torna a manutenção dos sites bem mais fácil. CSS é usado para formatar conteúdos estruturados.
  • 5. Benefícios do uso de CSS? • controle do layout de vários documentos a partir de uma simples folha de estilos; • maior precisão no controle do layout; • aplicação de diferentes layouts para servir diferentes mídias (tela, impressora, etc.); • emprego de variadas, sofisticadas e avançadas técnicas de desenvolvimento.
  • 6. História • Com a variação de atualizações dos browsers como IE que ficou sem nova versão de 2001 a 2006, o suporte ao CSS pode variar. • O IE6, tem suporte total a CSS1 e praticamente nulo a CSS2. Navegadores mais modernos como Chrome e Firefox tem suporte maior, inclusive para o CSS3.
  • 7. Testando... • Testando os navegadores com o teste Acid2 (nome dado a uma página de teste de compatibilidade com padrões web W3C com navegadores): revela quão eficiente é o suporte de CSS. • http://acid2.acidtests.org
  • 8. Testando Doctype • O Doctype informado ou a ausência dele determina o quirks mode ou o strict mode modificando o modo como o CSS é interpretado e a página desenhada. • Se você não utilizar nenhum DocType, os browsers vão trabalhar em Quirls Mode , como o Internet Explorer e o Ópera, com exceção do Mozilla Firefox e do Safari que sempre está em Strict Mode.
  • 9. Quirks x Strict Mode • Quirks Mode é uma maneira peculiar em que os browsers interpretam o CSS. • • "quirks" = "peculiaridade" • Quirks Mode e Strict Mode são as duas maneiras dos browsers interpretar seu CSS. • O modo Strict segue os padrões da W3C e o modo Quirks é peculiar a cada um. Quirks Mode é o oposto de "Strict Mode" (modo estrito, preciso).
  • 10. Curiosidade!?! • No IE 6, a MS validava sua página de acordo com a W3C e ao mesmo tempo trabalhava em Quirks Mode. Ou seja, para validar em XHTML 1 é preciso usar um DocType correto, mas usar um Doctype certo ativava o Strict Mode. • A solução da Microsoft então, foi usar um prólogo (Prolog de XML) antes do Doctype que ativa o Quirks Mode ao mesmo tempo em que utiliza um DocType aceito e validado pela W3C: <?xml version="1.0" encoding="iso-8859-1"?> • Ou então, basta inserir uma linha vazia sobre o Doctype, sem inserir o Prolog em XML que a ativação do Quirks Mode funciona do mesmo jeito.
  • 11. Como funciona • Muitas das propriedades usadas em Cascading Style Sheets (CSS) são semelhantes àquelas do HTML
  • 12. Sintaxe básica das CSS • • Supondo cor de fundo vermelha para a página web: Usando HTML: <body bgcolor="#FF0000"> • Com CSS o mesmo resultado será obtido assim: body {background-color: #FF0000;}
  • 14. Onde colocar o CSS? • In-line • Interno • Externo (indicado!)
  • 15. In-line (o atributo style) <html> ! <head> ! <title>Exemplo</title> ! </head> ! <body style="background-color: #FF0000;"> ! ! ! </body> <p>Esta é uma página com fundo vermelho</p> </html>
  • 16. Interno (a tag style) <html> ! <head> ! ! <title>Exemplo</title> ! ! <style type="text/css"> ! ! ! ! body {background-color: #FF0000;} </style> ! </head> ! <body> ! ! ! ! <p>Esta é uma página com fundo vermelho</p> </body> </html>
  • 17. Externo (link para uma folha de estilos) • O método recomendado é o de linkar para uma folha de estilos externa. • Uma folha de estilos externa é um simples arquivo de texto com a extensão .css. • Você pode colocar uma folha de estilos tanto no servidor como no disco rígido.
  • 18. • • Externo (link para uma folha de estilos) Supondo que sua folha de estilos tenha sido nomeada de style.css e está localizada no diretório style. O "truque" é criar um link no documento HTML (default.htm) para a folha de estilos (style.css). O link é criado em uma simples linha de código HTML como mostrado a seguir: ! <link rel="stylesheet" type="text/css" href="style/style.css" /> Notar que o caminho para a folha de estilos é indicado no atributo href.
  • 19. Onde inserir... • Esta linha de código deve ser inserida na seção header do documento HTML: ! ! ! <html> <head> ! <title>Meu documento</title> ! ! <link rel="stylesheet" type="text/css" href="style/style.css" /> ! </head> ! <body> ! ...
  • 20. • O link informa ao navegador para usar o arquivo CSS na renderização e apresentação do layout do documento HTML. • O inteligente disto é que vários documentos HTML podem lincar para uma mesma folha de estilos.
  • 21. Exercício 1 default.htm ! ! <html> <head> ! ! <title>Meu documento</title> ! ! <link rel="stylesheet" type="text/css" href="style.css" /> ! ! ! ! ! </head> <body> ! <h1>Minha primeira folha de estilos</h1> </body> </html> style.css body { ! } background-color: #FF0000;
  • 22. Exercício 2 ! ! <html> <head> ! ! <title>Meu documento</title> ! ! <link rel="stylesheet" type="text/css" href="style.css" /> default.htm ! </head> ! <body> ! ! <h1>Minha primeira folha de estilos</h1> ! ! </body> </html> body { ! ! background-color: #FFCC66; ! ! ! ! background-image: url("butterfly.gif"); background-repeat: no-repeat; ! ! background-attachment: fixed; ! ! background-position: right bottom; ! } ! ! h1 { ! color: #990000; ! ! ! } background-color: #FC9804; style.css
  • 23. Fontes • Família de fontes [font-family] font-family: usada para definir uma lista de fontes e sua prioridade para apresentação de um elemento em uma página. • • • Se a primeira fonte da lista não estiver instalada na máquina do usuário, deverá ser usada a segunda e assim por diante. Existem dois tipos de nomes para definir fontes: • • nomes para famílias de fontes; nomes para famílias genéricas.
  • 24. Nomes para família de fontes • Os dois são explicados a seguir: • • nome para famílias de fontes: • Exemplos para este tipo (normalmente conhecidas como "font") são "Arial", "Times New Roman" ou "Tahoma". nome para famílias genéricas: • Famílias genéricas são fontes que pertencem a um grupo com aparência uniforme. • Um exemplo são as fontes sans-serif que englobam a coleção de fontes que "não têm pé".
  • 25. A diferença está mostrada nas figuras a seguir:
  • 26. Exemplos de Fontes • Sans serif: Arial, Arial Narrow, Arial Rounded MT Bold, Century Gothic, Chicago, Helvetica, Geneva, Impact, Monaco, MS Sans Serif, Tahoma, Trebuchet MS e Verdana. • Serif: Book Antiqua, Bookman Old Style, Courier, Courier New, Century Schoolbook, Garamond, Georgia, MS Serif, New York, Times, Times New Roman e Palatino.
  • 27. Exemplo 1 - Fontes h1 { font-family: arial, verdana, sans-serif; } h2 { font-family: "Times New Roman", serif; }
  • 28. Estilo da fonte [font-style] • A propriedade font-style define a escolha da fonte em normal, italic ou oblique. • Exemplo: h1 { font-family: arial, verdana, sans-serif; } h2 { font-family: "Times New Roman", serif; font-style: italic; }
  • 29. Fonte variante [font-variant] • É usada para escolher as variantes normal ou small-caps. Uma fonte small-caps é aquela que usa letras maiúsculas de tamanhos reduzidos. Exemplos: Se a propriedade font-variant for definida para small-caps e não estiver disponível na máquina do usuário, será usada fonte em maiúscula.
  • 30. Exemplo - font-variant h1 { font-variant: small-caps; } h2 { font-variant: normal; }
  • 31. Peso da fonte [font-weight] • A propriedade font-weight define quão negrito ou "pesada" deve ser renderizada a fonte. • Uma fonte pode ser normal ou bold. • Alguns navegadores suportam números de 100-900 (em intervalos de 100 em 100) para definir o peso da fonte.
  • 32. Peso da fonte [font-weight] p { font-family: arial, verdana, sans-serif; } td { font-family: arial, verdana, sans-serif; font-weight: bold; }
  • 33. Tamanho da fonte [font-size] • O tamanho da fonte é definido pela propriedade font-size. • Existem muitas unidades (p. ex.:. pixels e percentagens) que podem ser usadas para definir o tamanho da fonte.
  • 34. Exemplo - Tamanho de Fonte h1 { font-size: 30px; } h2 { font-size: 12pt; } h3 { font-size: 120%; } p { font-size: 1em; }
  • 35. Curiosidades sobre Fontes • As unidades 'px' e 'pt' são absolutas, enquanto '%' e 'em' permitem ao usuário ajustar o tamanho das fontes ao seu gosto e necessidade. • Muitos usuários têm restrições, como por exemplo, pessoas idosas, pessoas com visão limitada ou as que usam um monitor de baixa qualidade. Para fazer seu site acessível a todos, você deverá usar unidades como '%' ou 'em'. • É possível ajustar as fontes nos navegadores Mozilla Firefox e Internet Explorer.
  • 36. Compilando [font] p { } font-style: italic; font-weight: bold; font-size: 30px; font-family: arial, sans-serif; Usar a abreviação simplifica o código como mostrado abaixo: p { } font: italic bold 30px arial, sans-serif; Usar font é uma abreviação que permite definir várias propriedades em uma só. A ordem dos valores para font é a mostrada a seguir: font-style | font-variant | font-weight | font-size | font-family
  • 37. Textos • text-indent • text-align • text-decoration • letter-spacing • text-transform
  • 38. Indentação de texto [text-indent] • Permite que você aplique um recuo à primeira linha de um parágrafo. p { ! } text-indent: 30px;
  • 39. Alinhamento de textos [text-align] • Corresponde ao atributo align das antigas versões do HTML. • Textos podem ser alinhados à esquerda (left), à direita (right) ou centrados (centred) e o justificado (justify).
  • 40. arquivo.html <body> ! <h1>Alinhamento de textos</h1> ! <h2>Texto alinhado em tabelas</h2> ! <table border="1" width="100%"> ! <tr> ! <th>Cabeçalho 1</th> ! <th>Cabeçalho 2</th> ! </tr> ! <tr> ! <td>Célula 1</td> ! <td>Célula 2</td> ! </tr> ! </table> ! <h2>Texto justificado em parágrafos </h2> ! <p>Texto com o recuo de 30 pixels pertencente ao parágrafo</p> ! <p>Outro parágrafo com as mesmas características.</p>! </body> style.css th { ! text-align: right; } td { ! text-align: center; } p { ! text-align: justify; }
  • 41. Decoração de textos [text-decoration] • Possibilita adicionar "efeitos" ou "decoração" em textos. • É possível sublinhar textos, cortar o texto com uma linha, colocar uma linha sobre o texto, etc.
  • 42. arquivo.html <body> <h1>Este texto é sublinhado </h1> <h2>Este texto é com linha em cima </h2> <h3>Este texto é cortado por uma linha </h3> </body> style.css h1 { ! text-decoration: underline; } h2 { ! text-decoration: overline; } h3 { ! text-decoration: line-through; }
  • 43. Espaço entre letras [letter-spacing] • O espaçamento entre os caracteres de um texto é controlado pela propriedade letterspacing. • O valor desta propriedade define o espaço entre os caracteres.
  • 44. arquivo.html <body> ! <h1>Espaçamento entre caracteres</h1> ! <p>Espaçamento do parágrafo com 6px. Xxxxx xxxxxxxxx xxxxx xxxx x x x xxxxxxx x x xxxxxxx xxxxx xxxx xxxx xxx. </p> </body> style.css h1 { ! letter-spacing: 6px; } p { ! letter-spacing: 3px; }
  • 45. Transformação de textos [text-transform] • Controla a capitalização do texto.Você pode escolher capitalize, uppercase ou lowercase independentemente de como o texto foi escrito no código HTML. Exemplos: • capitalize: Capitaliza a primeira letra de cada palavra. Exemplo: aula -> Aula • uppercase: Converte todas as letras para maiúscula. Exemplo: aula -> AULA • lowercase: Converte todas as letras para minúscula. Exemplo: AULA -> aula • none: Sem trasformações - o texto é apresentado como foi escrito no código HTML.
  • 46. arquivo.html <body> ! <h1>este cabeçalho é com letras maiúsculas </h1> ! <ul> ! <li>peter hanson</li> ! <li>max larson</li> ! <li>joe doe</li> ! <li>paula jones</li> ! <li>monica lewinsky</li> ! <li>donald duck</li> ! </ul> ! <p>Notar, que com CSS todas as letras iniciais dos nomes foram capitalizadas (tornadas maiúsculas). </p> </body> style.css h1 { ! text-transform: uppercase; } li { ! text-transform: capitalize; }
  • 47. Links • É possível aplicar aos links tudo que foi visto nessa aula: mudar cores, fontes, sublinhados, etc). • A novidade aqui é que você pode definir as propriedades de maneira diferenciada de acordo com o estado do link ou seja visitado, não visitado, ativo ou com o ponteiro do mouse sobre o link. • Para estilizar estes efeitos você usará as chamadas pseudo-classes.
  • 48. pseudo-classe? • Uma pseudo-classe permite estilizar levando em conta condições diferentes ou eventos ao definir uma propriedade de estilo para uma tag HTML. • Exemplo. Como você já sabe, links são marcados no HTML com tags <a>. É possível usar a como um seletor CSS: a { ! color: blue; }
  • 49. link • Um link pode ter diferentes estados. • Por exemplo, pode ter sido visitado ou não visitado. • É possível usar pseudo- classes para estilizar links visitados e não visitados.
  • 50. style.css arquivo.html ! <body> ! <h1>Efeito hover sobre links!</h1> ! <p> <a href="arquivo_teste.html" > Coloque o ponteiro do mouse sobre o link </a> </p>! </body> a:link { ! color: blue; } a:visited { ! color: red; } a:active { ! background-color: red; } a:hover { ! color: orange; ! font-style: italic; letter-spacing: 10px; ! font-weight:bold; text-transform:uppercase; ! background-color:yellow; }
  • 51. Removendo sublinhado dos links • Você deve estudar com muito cuidado a necessidade de retirar o sublinhado dos links, pois isto poderá reduzir signifcativamente a usabilidade do website. • As pessoas estão acostumadas com links na cor azul e sublinhados e sabem que ali há um texto a ser clicado. • Para remover o sublinhado, basta definir o valor none para a propriedade text-decoration.
  • 52. style.css arquivo.html <body> ! <body> ! <h1>Efeito hover sobre links!</h1> ! <p> <a href="arquivo_teste.html"> Coloque o ponteiro do mouse sobre o link </a> </p>! </body> </body> a:link { ! color: blue; ! text-decoration:none; } a:visited { ! color: purple; ! text-decoration:none; } a:active { ! background-color: yellow; ! text-decoration:none; } a:hover { ! color:red; ! text-decoration:none; }
  • 53. Identificando e agrupando elementos (classes e id) • Em alguns casos é necessário aplicar estilos a um elemento ou grupo de elementos em particular. • Isso é feito usando class e id para estilizar elementos. • Como definir uma cor para um determinado cabeçalho, diferente da cor usada para os demais cabeçalhos do website? • Como agrupar links em diferentes categorias e estilizar cada categoria diferentemente?
  • 54. Agrupando elementos com uso de classe arquivo.html p>Uvas para vinho branco:</p> <ul> ! <li><a href="ri.htm">Riesling</a></li> ! <li><a href="ch.htm">Chardonnay</a></li> ! <li><a href="pb.htm">Pinot Blanc</a></li> </ul> <p>Uvas para vinho tinto:</p> <ul> <li><a href="cs.htm">Cabernet Sauvignon</a></li> <li><a href="me.htm">Merlot</a></li> <li><a href="pn.htm">Pinot Noir</a></li> </ul>
  • 55. Agrupando elementos com uso de classe arquivo.html <p>Uvas para vinho branco:</p> <ul> <li><a href="ri.htm" class="whitewine">Riesling</a></ li> <li><a href="ch.htm" class="whitewine">Chardo</a></li> <li><a href="pb.htm" class="whitewine">Pinot</a></li> </ul> <p>Uvas para vinho tinto:</p> <ul> ! <li><a href="cs.htm" class="redwine">Cabern</a></li> ! <li><a href="me.htm" class="redwine">Merlot</a></li> ! <li><a href="pn.htm" class="redwine">Pinot</a></li> </ul> Pode-se definir propriedades para estilização dos elementos pertencentes a uma determinada classe usando um .nomedaclasse na folha de estilos. style.css a { ! color: blue; } a.whitewine { ! color: #FFBB00; } a.redwine { ! color: #800000; }
  • 56. Identificando um elemento com uso de id • Além de agrupar elementos podemos querer atribuir identificação a um único elemento. • • Isto é feito usando o atributo id. • Para casos em que haja necessidade de mais de um elemento com a mesma identificação usamos o atributo class. O que há de especial no atributo id é que não poderá existir dois ou mais elementos com a mesma id. Cada id é única.
  • 57. arquivo.html <h1>Capítulo ! ... <h2>Capítulo ! ... <h2>Capítulo ! ... <h1>Capítulo ! ... <h2>Capítulo ! ... <h3>Capítulo ! ... 1</h1> 1.1</h2> 1.2</h2> 2</h1> 2.1</h2> 2.1.2</h3> arquivo.html <h1 id="c1">Capítulo 1</h1> ! ... <h2 id="c1-1">Capítulo 1.1</h2> ! ... <h2 id="c1-2">Capítulo 1.2</h2> ! ... <h1 id="c2">Capítulo 2</h1> ! ... <h2 id="c2-1">CCapítulo 2.1</h2> ! ... <h3 id="c2-1-2">Capítulo 2.1.2</h3> ! ...
  • 58. arquivo.html <h1 id="c1">Capítulo 1</h1> ! ... <h2 id="c1-1">Capítulo 1.1</h2> ! ... <h2 id="c1-2">Capítulo 1.2</h2> ! ... <h1 id="c2">Capítulo 2</h1> ! ... <h2 id="c2-1">CCapítulo 2.1</h2> ! ... <h3 id="c2-1-2">Capítulo 2.1.2</h3> ! ... style.css #c1-2 { ! ! color: red; }
  • 59. Agrupando elementos (span e div) • Os elementos <span> e <div> são usados para agrupar e estruturar um documento e são frequentemente usados em conjunto com os atributos class e id. • Agora o uso dos elementos HTML <span> e <div> no que se refere a sua vital importância para as CSS. • • Agrupando com <span> Agrupando com<div>
  • 60. Agrupando com <span> • O elemento <span> é um elemento neutro e que não adiciona qualquer tipo de semântica ao documento. • Contudo, <span> pode ser usado pelas CSS para adicionar efeitos visuais a partes específicas do texto no seu documento.
  • 61. arquivo.html Exemplo <p>Dormir cedo e acordar cedo faz o homem saudável, rico e sábio.</p> • Se quiser enfatizar os benefícios na cor vermelha, marca-se os benefícios com <span>. •A cada span é atribuído uma class, estilizada na folha de estilos: arquivo.html <p>Dormir cedo e acordar cedo faz o homem <span class="benefit">saudável</span>, <span class="benefit">rico</span> e <span class="benefit">sábio</span>.</p> style.css span.benefit { ! color:red; }
  • 62. Agrupando com <div> • Enquanto <span> é usado dentro de um elemento nível de bloco como vimos no exemplo anterior, <div> é usado para agrupar um ou mais elementos nível de bloco. • Diferenças à parte, o agrupamento com <div> funciona mais ou menos da mesma maneira.
  • 63. arquivo.html Exemplo <div id="democratas"> ! <ul> ! <li>Franklin D. Roosevelt</li> ! <li>Harry S. Truman</li> ! <li>John F. Kennedy</li> ! <li>Lyndon B. Johnson</li> ! <li>Jimmy Carter</li> ! <li>Bill Clinton</li> ! </ul> ! </div> ! ! ! ! ! ! ! ! ! ! <div id="republicanos"> <ul> <li>Dwight D. Eisenhower</li> <li>Richard Nixon</li> <li>Gerald Ford</li> <li>Ronald Reagan</li> <li>George Bush</li> <li>George W. Bush</li> </ul> </div> style.css #democrats { ! background:blue; } #republicans { ! background:red; }
  • 64. O box model • O box model (modelo das caixas) em CSS, descreve os boxes (as caixas) geradas pelos elementos HTML. • Detalha ainda, as opções de ajuste de margens, bordas, padding e conteúdo para cada elemento.
  • 65. O box model em CSS
  • 66. Margin e padding • Um elemento tem quatro lados: • right • left • top • bottom
  • 67. margin • A margin é a distância entre os lados de elementos vizinhos (ou às bordas do documento).
  • 68. Exemplo - margin style.css body ! ! ! ! ! ! ! ! ! } { margin-top: 100px; margin-right: 40px; margin-bottom: 10px; margin-left: 70px; style.css body { ! ! margin: 100px 40px 10px 70px; ! }
  • 69. padding • Padding pode também ser entendido como "enchimento". • Isto faz sentido, porque padding não é computado na distância entre elementos, padding define simplesmente a distância entre a borda e o conteúdo do elemento.
  • 70. Exemplo - padding style.css h1 { ! background: yellow; ! padding: 20px 20px 20px 80px; } h2 { ! background: orange; ! padding-left:120px; }
  • 71. Exemplo arquivo.html <h1>Article 1:</h1> <p>All human beings are born free and equal in dignity and rights. They are endowed with reason and conscience and should act towards one another in a spirit of brotherhood</p> Definindo estilos para cores e fontes o exemplo pode ser apresentado:
  • 72. Exercício: • O exercício contém dois elementos: <h1> e <p>. • O box model para os dois elementos é: Faça um código CSS para mostrar o texto dessa forma:
  • 73. Bordas • Bordas podem ser usadas como elemento decorativo ou para servir de linha de separação entre duas coisas. • CSS proporciona infinitas possibilidades de uso de bordas na página.
  • 74. A espessura das bordas [border-width] • A espessura das bordas é definida pela propriedade border-width, que pode assumir os valores: • thin (fina); • medium (média); • thick (grossa) • valor numérico em pixels.
  • 75. A espessura das bordas [border-width] • A figura a seguir ilustra algumas espessuras de bordas:
  • 76. As cores das bordas [border-color] • A propriedade border-color define as cores para as bordas. • Os valores são expressos em código ou nome de cores: • #123456 • rgb(123,123,123) • yellow
  • 77. Tipos de bordas [border-style] • Existem vários tipos de bordas disponíveis para escolha. • A seguir apresentamos 8 tipos diferentes de bordas e como elas são renderizadas Internet Explorer 5.5. Todos os exemplos são mostrados na cor "gold" e com espessura "thick", mas você pode usar qualquer cor e espessura ao seu gosto. • Os valores none ou hidden podem ser usados quando não se deseja a existência de bordas.
  • 78. Exemplos de definição de bordas • As três propriedades explicadas acima podem ser definidas juntas para cada elemento e resultam em diferentes bordas. • Para exemplificar, foram estilizadas diferentes bordas para os elementos <h1>, <h2>, <ul> e <p>. • O resultado pode não ser uma obra prima, mas, ilustra bem algumas das inúmeras possibilidades de estilização de bordas.
  • 79. Exemplos de definição de bordas h1{ ! ! ! ! ! ! } h2{ ! ! ! ! ! ! } p{ ! ! ! ! ! ! } ul{ ! ! ! ! ! ! } border-width: thick; border-style: dotted; border-color: gold; border-width: 20px; border-style: outset; border-color: red; border-width: 1px; border-style: dashed; border-color: blue; border-width: thin; border-style: solid; border-color: orange; style.css arquivo.html <body> ! <h1>Bordas</h1> ! <p>Este é um parágrafo</p> ! <ul> ! <li>Primeiro elemento da lista.</li> ! <li>Segundo elemento da lista.</li> ! <li>Terceiro elemento da lista.</li> ! </ul> ! <h2>Este é o H2</h2> </body>
  • 80. Compilando [border] ! ! ! ! ! p ! ! ! } { border-width: 1px; border-style: solid; border-color: blue; Pode ser abreviada assim: ! p { ! ! border: 1px solid blue; ! } !
  • 81. Altura e largura • Até agora ainda não fizemos qualquer consideração sobre as dimensões dos elementos com que trabalhamos. • A propriedade width destina-se a definir a largura de um elemento. • O exemplo a seguir constrói um box dentro do qual podemos digitar um texto:
  • 82. Atribuindo largura [width] style.css ! div.box { ! ! width: 200px; ! ! border: 1px solid black; ! ! background: orange; ! } ! arquivo.html <body> ! <h1>&lt;div> com 200px de largura e texto</h1> ! <div class="box">Texto qualquer para verificar o CSS. Texto qualquer para verificar o CSS. Texto qualquer para verificar o CSS. Texto qualquer para verificar o CSS. Texto qualquer para verificar o CSS. Texto qualquer para verificar o CSS. </div> </body>
  • 83. Atribuindo altura [height] • No exemplo anterior a altura foi determinada pelo conteúdo inserido no box. • É possível definir a altura de um elemento com a propriedade height. Como exemplo, vamos fazer a altura do box anterior igual a 500px:
  • 84. Atribuindo altura [height] style.css div.box { ! ! height: 500px; ! ! width: 200px; ! ! border: 1px solid black; ! ! background: orange; ! } ! ! arquivo.html <body> ! <h1>&lt;div> com 200px de largura 500px de altura e texto</h1> ! <div class="box">Este é um texto para testar o height. Este é um texto para testar o height. Este é um texto para testar o height. Este é um texto para testar o height. Este é um texto para testar o height. Este é um texto para testar o height. Este é um texto para testar o height. Este é um texto para testar o height. Este é um texto para testar o height. Este é um texto para testar o height. </div> </body>
  • 85. Flutuando elementos (floats) •Um elemento pode ser 'flutuado' à esquerda ou à direita com uso da propriedade float. • Isto significa que o box e seu conteúdo são deslocados para a direita ou para a esquerda do documento (ou do bloco container).
  • 86. Flutuando elementos (floats) •A figura a seguir ilustra o princípio de float: style.css p ! ! ! ! { ! float:left; ! width: 100px; }
  • 87. Flutuando elementos (floats) • Como isto é feito ? • O HTML para o exemplo acima é mostrado a seguir: Para conseguir o efeito mostrado, basta definir uma largura para o box que o contém e declarar para ele float: left; <div id="picture"> ! ! <img src="bill.jpg" alt="Bill Gates"> arquivo.html </div> <p>causas naturales et antecedentes, ! idciro etiam nostrarum voluntatum...</p> style.css #picture { ! float:left; ! width: 100px; } !
  • 88. Exemplo: colunas • Floats podem ser usados para construir colunas em um documento.
  • 89. Exemplo: Colunas • Para criar as colunas estruturamos as colunas no código HTML usando <div> como mostrado a seguir: arquivo.html <div id="column1"> ! ! <p>Haec disserens qua de re agatur ! ! et in quo causa consistat non videt...</p> </div> <div id="column2"> ! ! <p>causas naturales et antecedentes, ! ! idciro etiam nostrarum voluntatum...</p> </div> <div id="column3"> ! ! <p>nam nihil esset in nostra ! ! potestate si res ita se haberet...</p> </div>
  • 90. Exemplo: Colunas style.css • A seguir definimos a largura de cada coluna, por exemplo 33%, e declaramos float: left; para cada uma das colunas: float pode ser declarado left, right ou none. #column1 { ! ! float:left; ! ! width: 33%; } #column2 { ! ! float:left; ! ! width: 33%; } #column3 { ! ! float:left; ! ! width: 33%; }
  • 91. A propriedade clear • A propriedade clear é usada para controlar o comportamento dos elementos que se seguem aos elementos floats no documento. • Por padrão, o elemento subsequente a um float, ocupa o espaço livre ao lado do elemento flutuado. • A propriedade clear pode assumir os valores left, right, both ou none. • A regra geral é: se clear, for por exemplo definido both para um box, a margem superior deste box será posicionada sempre abaixo da margem inferior dos boxes flutuados que estejam antes dele no código.
  • 92. A propriedade clear arquivo.html <div id="picture"> ! ! <img src="bill.jpg" alt="Bill Gates"> ! </div> ! <h1>Bill Gates</h1> ! <p class="floatstop">causas naturales et antecedentes, idciro etiam nostrarum voluntatum...</p> Para evitar que o texto se posicione no espaço livre deixado pela foto do Bill Gates basta adicionar a seguinte regra CSS: style.css #picture { ! ! float:left; ! ! width: 100px; } .floatstop { ! clear:both; }
  • 93. Posicionando elementos • Com posicionamento CSS podemos colocar um elemento em uma posição exata na página. • Combinado com floats, o posicionamento abre muitas possibilidades para criação de layouts precisos e avançados.
  • 94. O princípio de posicionamento CSS • Considere a janela do navegador como um sistema de coordenadas:
  • 95. O princípio de posicionamento CSS • O princípio de posicionamento CSS estabelece que você pode posicionar um elemento em qualquer lugar na tela usando um sistema de coordenadas.
  • 96. O princípio de posicionamento CSS • Vamos supor que queremos posicionar um cabeçalho. Usando o box model o cabeçalho pode ser estilizado para ser apresentado como mostrado abaixo:
  • 97. O princípio de posicionamento CSS • Se quisermos o cabeçalho posicionado a 100px do topo do documento e a 200px à esquerda, podemos usar o seguinte CSS: style.css h1 ! ! ! } { ! position:absolute; ! top: 100px; ! left: 200px; O resultado é mostrado a seguir: Como você pode ver, posicionar com CSS é uma técnica precisa para colocar elementos. É muito mais fácil do que usar tabelas, imagens transparentes e tudo mais.
  • 98. Posicionamento absoluto • Um elemento posicionado absolutamente não cria nenhum espaço no documento. Isto significa que não deixa nenhum espaço vazio após ser posicionado. • Para posicionar um elemento de forma absoluta a propriedade position deve ser definida para absolute. • Você pode então usar as propriedades left, right, top, e bottom para definir as coordenadas e posicionar o elemento.
  • 99. Posicionamento absoluto style.css #box1 { ! position:absolute; ! top: 50px; ! left: 50px; } #box2 { ! position:absolute; ! top: 50px; right: 50px; } #box3 { ! position:absolute; bottom: 50px; ! right: 50px; } #box4 { ! position:absolute; ! bottom: 50px; ! left: 50px; } arquivo.html Para exemplificar o posicionamento absoluto foi colocado quatro boxes nos quatro cantos da página: <body> ! <div id="box1"> ! Box 1 ! </div> ! <div id="box2"> ! Box 2 ! </div> ! <div id="box3"> ! Box 3 ! </div> ! <div id="box4"> ! Box 4 ! </div> </body>
  • 100. Posicionamento relativo • Para posicionar um elemento de forma relativa a propriedade position deve ser definida para relative. • A diferença entre os dois tipos de posicionamento é a maneira como o posicionamento é calculado. • O posicionamento para posição relativa é calculado com base na posição original do elemento no documento. • Isto significa uma movimentação do elemento para a esquerda, para a direita, para cima ou para baixo. • Assim fazendo o elemento ocupa um espaço após ser posicionado.
  • 101. Posicionamento relativo • Como exemplo de posicionamento relativo vamos tentar posicionar três imagens relativamente as suas posições originais na página. Notar como as imagens deixam um espaço vazio nas suas posições originais no documento:
  • 102. Posicionamento relativo arquivo.html #dog1 { ! ! position:relative; style.css ! left: 350px; ! ! ! bottom: 150px; ! } ! #dog2 { ! ! position:relative; ! ! left: 150px; ! ! bottom: 500px; ! } ! #dog3 { ! ! position:relative; ! ! left: 50px; ! ! bottom: 700px; ! } <body> ! <h1>The Tinder-Box</h1> ! <p><strong>By Hans Christian Andersen</strong></p> <div id="dog1"><img src="dog1.gif" /></div> ! <p>A soldier came marching along the high road: "Left, right -left, right."</p> <div id="dog2"><img src="dog2.gif" /></div> ! <p>As he walked on, he met a very frightful-looking old witch in the road.</p> <div id="dog3"><img src="dog3.gif" /></div> ! <p>"Thank you, old witch," said the soldier. </p> </body>
  • 103. Usando z-index (Layers) • CSS usa o espaço tri-dimensional - altura, largura e profundidade. Anteriormente foi visto as duas primeiras dimensões. • Agora serão colocados elementos em layers (camadas). Resumindo, camadas significam como os elementos se sobrepõem uns aos outros. • Para isto, define-se para cada elemento um número índice (z-index). • O comportamento é que elementos com número índice maior se sobrepõem àqueles com menor número.
  • 104. Usando z-index (Layers) • Supondo um royal flush no jogo de poker. As cartas podem ser apresentadas como se cada uma delas tivesse um z-index: No caso mostrado, os números índice estão em uma seqüência direta (de 1-5), contudo o mesmo resultado poderia ser obtido com uso de 5 diferentes números, não em seqüência. O que conta é a cronologia dos números (a ordem).
  • 105. Usando z-index (Layers) • O código para a ilustração das cartas é mostrado a seguir: <body> ! <h1>Royal Flush</h1> ! <div id="ten_of_diamonds"> ! <img src="diamonds_10.gif" alt="10 of diamonds" width="70" height="96"> ! </div> ! <div id="jack_of_diamonds"> ! <img src="diamonds_jack.gif" alt="Jack of diamonds" width="70" height="96"> ! </div> ! <div id="queen_of_diamonds"> ! <img src="diamonds_queen.gif" alt="Queen of diamonds" width="70" height="96"> ! </div> ! <div id="king_of_diamonds"> ! <img src="diamonds_king.gif" alt="King of diamonds" width="70" height="96"> ! </div> ! <div id="ace_of_diamonds"> ! <img src="diamonds_ace.gif" alt="Ace of diamonds" width="70" height="96"> ! </div>! </body> Você pode colocar imagens sobre textos, texto sobre texto, etc. #ten_of_diamonds { ! ! position: absolute; ! ! left: 100px; ! ! top: 100px; ! ! z-index: 1; } #jack_of_diamonds { ! ! position: absolute; ! ! left: 115px; ! ! top: 115px; ! ! z-index: 2; } #queen_of_diamonds { ! ! position: absolute; ! ! left: 130px; ! ! top: 130px; ! ! z-index: 3; } #king_of_diamonds { ! ! position: absolute; ! ! left: 145px; ! ! top: 145px; ! ! z-index: 4; } #ace_of_diamonds { ! ! position: absolute; ! ! left: 160px; ! ! top: 160px; ! ! z-index: 5; }!
  • 106. Web-standards e validação • W3C é a sigla para World Wide Web Consortium, uma organização independente que gerencia as normas para codificação na Internet (isto é, HTML, CSS, XML e outros). • Microsoft, Fundação Mozilla e muitas outras organizações são membros do W3C e formam um consenso sobre o futuro desenvolvimento de normas. • Há uma grande diferença na maneira como diferentes navegadores renderizam uma página.
  • 107. Web-standards e validação • A idéia da normatização é criar um consenso e encontrar um denominador comum para uso de tecnologias para a Web. • Isto significa que seguindo as normas, um desenvolvedor terá a certeza de que sua criação será tratada de maneira apropriada em diferentes plataformas. • É recomendado que você se beneficie do trabalho desenvolvido pelo W3C e valide sua CSS para estar em conformidade com as normas.
  • 108. Validador CSS • Para facilitar a verificação aos preceitos das normas CSS, o W3C desenvolveu um validador que faz uma verificação da folha de estilos e retorna um relatório com os eventuais erros e avisos caso sua CSS não valide. • Para facilitar a validação da sua folha de estilos você poderá submetê-la ao validador aqui mesmo nesta página. • Na caixa de texto abaixo, substitua a URL existente pela URL da sua folha de estilos e clique no botão para validar. • Você será informado pelo site do W3C se há erros na sua folha de estilos.
  • 109. Validador CSS • Se o validador não encontrar erros; será mostrada uma imagem como a abaixo, que você poderá usar na sua página para anunciar que está usando um código válido: O validador pode também ser encontrado neste link: http://jigsaw.w3.org/css-validator/
  • 110. CSS 3 - Novidades
  • 111. Cantos arredondados <body> <div class="box-radius">Cantos arredondados - CSS3</div> </body> .box-radius{ -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; background-color: #234666; color: #FFFFFF; padding: 0.5em; width: 170px; }
  • 112. .box{ border-radius: 50px 50px 50px 50px; -moz-box-pack: center; -moz-box-align: center; -webkit-box-pack: center; -webkit-box-align: center; display: -moz-box; display: -webkit-box; text-align: center; width: 100px; height: 100px; background-color: #234666; color: #FFFFFF; font-weight: bold; } Círculo usando border-radius <body> <div class="box">border-radius</div> </body>
  • 113. .box{ border-radius: 50px 50px 50px 50px; -moz-box-pack: center; -moz-box-align: center; -webkit-box-pack: center; -webkit-box-align: center; display: -moz-box; display: -webkit-box; -webkit-box-shadow: 1px 2px 5px #234666; -moz-box-shadow: 1px 2px 5px #234666; box-shadow: 1px 2px 5px #234666; text-align: center; width: 100px; height: 100px; background-color: #FFFFFF; color: #234666; font-weight: bold; } .box2{ -webkit-box-shadow: 1px 2px 5px #A3A3A3; -moz-box-shadow: 1px 2px 5px #A3A3A3; box-shadow: 1px 2px 5px #A3A3A3; padding: 1em; <body> <div margin: 1em; <div width: 110px; </body> } sombra ou profundidade class="box">Caixa 1 - CSS 3</div> class="box2">Caixa 2 - CSS 3</div>