Tutorial CSS PDF
Tutorial CSS PDF
Tutorial CSS
Introdução
Este tutorial iniciará você nas CSS em algumas poucas horas. É fácil de entender e
ensinará a você todas as técnicas sofisticadas.
Aprender CSS é divertido. À medida em que você for progredindo no tututorial não
esqueça de dedicar algum tempo para fazer seus experimentos com o que for
aprendendo em cada lição.
Para usar CSS é necessário um conhecimento básico de HTML. Se você não está
familiarizado com HTM L, consulte nosso tutorial HTM L antes de começar com CSS.
Um editor de texto simples é o ideal para o aprendizado de HTM L e de CSS porque eles
não afetam e nem modificam o código que você digita. Assim os acertos e erros de
codificação devem-se exclusivamente a você — não ao software que você utiliza.
Você pode usar qualquer navegador parta acompanhar este tutorial. Nós aconselhamos
que você mantenha seu navegador sempre atualizado e utilize a última versão
disponível.
HTM L pode ser (in)devidamente 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.
Depois de estudar algumas poucas lições deste tutorial, você estará em condições de
projetar uma folha de estilos, usando CSS para dar um grande visual ao seu website.
OK, isto soa um tanto técnico e confuso. M as, por favor continue lendo. Tudo fará
sentido em breve.
Em tempos passados quando a M adonna era virgem e um sujeito chamado Tim Berners
Lee inventou a World Wide Web, a linguagem HTM L era usada somente para estruturar
textos. Um autor podia marcar seus textos definindo "isto é um cabeçalho " ou "isto é
um parágrafo" usando tags HTM L tais como <h1> e <p>.
CSS foi inventada para solucionar esta situação, colocando à 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.
Lição 2: Como funciona CSS?
Nesta lição você aprenderá a desenvolver sua primeira folha de estilos. Você verá o
básico sobre o modelo CSS e que código é necessário para usar CSS em um documento
HTM L.
M uitas das propriedades usadas em Cascading Style Sheets (CSS) são semelhantes
àquelas do HTM L. Assim, se você está acostumado a usar HTM L para layout irá
reconhecer muitos dos códigos que usaremos. Vamos dar uma olhada em um exemplo
concreto.
<body bgcolor="#FF0000">
Como você pode notar os códigos HTM L e CSS são mais ou menos parecidos. O
exemplo acima serve também para demonstrar o fundamento do modelo CSS:
Uma maneira de aplicar CSS é pelo uso do atributo style do HTM L. Tomando como
base o exemplo mostrado anteriormente a cor vermelha para o fundo da página pode ser
aplicada conforme mostrado a seguir:
<html>
<head>
<title>Exemplo</title>
</head>
<body style="background-color: #FF0000;">
Método 2: Interno (a tag sty le)
Uma outra maneira de aplicar CSS e pelo uso da tag <style> do HTM L. Como
mostrado a seguir:
<html>
<head>
<title>Exemplo</title>
<style type="text/css">
</body>
</html>
Método 3: Externo (link para uma folha de estilos)
O método recomendado é o de lincar para uma folha de estilos externa. Usaremos este
método nos exemplos deste tutorial.
Uma folha de estilos externa é um simples arquivo de texto com a extensão .css. Tal
como com qualquer outro tipo de arquivo você pode colocar uma folha de estilos tanto
no servidor como no disco rígido.
Vamos supor, por exemplo, que sua folha de estilos tenha sido nomeada de style.css e
está localizada no diretório style. Tal situação está mostrada a seguir:
O "truque" é criar um link no documento HTM L (default.htm) para a folha de estilos
(style.css). O link é criado em uma simples linha de código HTM L como mostrado a
seguir:
Esta linha de código deve ser inserida na seção header do documento HTM L, isto é,
entre as tags <head> e </head>. Conforme mostrado abaixo:
<html>
<head>
<title>Meu documento</title>
<link rel="stylesheet" type="text/css" href="style/style.css" />
</head>
<body>
...
Este link informa ao navegador para usar o arquivo CSS na renderização e apresentação
do layout do documento HTM L.
A coisa realmente inteligente disto é que vários documentos HTM L podem lincar para
uma mesma folha de estilos. Em outras palavras isto significa que um simples arquivo
será capaz de controlar a apresentação de muitos documentos HTM L.
Esta técnica pode economizar uma grande quantidade de trabalho. Se por exemplo, você
quiser trocar a cor do fundo de um site com 100 páginas, a folha de estilos evita que
você edite manualmente uma a uma as páginas para fazer a mudança nos 100
documentos HTM L. Usando CSS a mudança se fará em uns poucos segundos trocando-
se a cor em uma folha de estilos central.
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;
}
Abra default.htm no seu navegador e veja uma página com o fundo vermelho.
Parabéns! Você construiu sua primeira folha de estilos!
Lição 3: Cores e fundos
Nesta lição você aprenderá como aplicar cores de primeiro plano e cores de fundo no
seu website. Abordaremos ainda os métodos avançados de controle e posicionamento de
imagens de fundo. Serão explicadas as seguintes propriedades CSS:
• color
• background-color
• background-image
• background-repeat
• background-attachment
• background-position
• background
Considere, por exemplo, que desejamos que todos os cabeçalhos de primeiro nível no
documento sejam na cor vermelha. O elemento HTM L que marca tais cabeçalhos é o
elemento <h1>. O código a seguir define todos os <h1> na cor vermelha.
h1 {
color: #ff0000;
}
• Ver exemplo
As cores podem ser definidas pelo seu valor hexadecimal como no exemplo acima
(#ff0000), com uso do nome da cor ("red") ou ainda pelo seu valor rgb (rgb(255,0,0)).
A propriedade 'background-color'
A propriedade background-color define a cor do fundo de um elemento.
Você pode aplicar cores de fundo para outros elementos, inclusive para cabeçalhos e
textos. No exemplo abaixo foram aplicadas diferentes cores de fundo para os elementos
<body> e <h1>.
body {
background-color: #FFCC66;
}
h1 {
color: #990000;
background-color: #FC9804;
• Ver exemplo
Notar que foram aplicadas duas propriedades ao elemento <h1> separadas por um ponto
e vírgula.
Para inserir uma imagem de fundo na página basta aplicar a propriedade background-
image ao elemento <body> e especificar o caminho para onde está gravada a imagem.
body {
background-color: #FFCC66;
background-image: url("butterfly.gif");
}
h1 {
color: #990000;
background-color: #FC9804;
}
• Ver exemplo
NB: Notar como foi especificado o caminho para a imagem usando
url("butterfly.gif"). Isto significa que a imagem está localizada no mesmo diretório da
folha de estilos. Pode ser escolhido um outro diretório para gravar as imagens e o
caminho seria url("../images/butterfly.gif") ou até mesmo hospedá-la na Internet:
url("http://www.html.net/butterfly.gif").
Por exemplo, o código mostrado a seguir é para que a imagem não se repita na tela:
body {
background-color: #FFCC66;
background-image: url("butterfly.gif");
background-repeat: no-repeat;
}
h1 {
color: #990000;
background-color: #FC9804;
}
• Ver exemplo
Uma imagem de fundo fixa permanece no mesmo lugar e não rola com a tela ao
contrário da imagem que não é fixa e rola acompanhando o conteúdo da tela.
A tabela a seguir mostra os quatro diferentes valores para background-attachment.
Veja os exemplos para constatar a diferença entre imagem fixa e imegem que rola.
body {
background-color: #FFCC66;
background-image: url("butterfly.gif");
background-repeat: no-repeat;
background-attachment: fixed;
}
h1 {
color: #990000;
background-color: #FC9804;
}
• Ver exemplo
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;
}
• Ver exemplo
Compilando [background]
A propriedade background é uma abreviação para todas as propriedades listadas
anteriormente.
background-color: #FFCC66;
background-image: url("butterfly.gif");
background-repeat: no-repeat;
background-attachment: fixed;
background-position: right bottom;
Se uma das propriedades não for declarada ela assume automaticamente o seu valor
default. Por exemplo, a propriedade background-attachment e background-
position não foram declaradas no código mostrado a seguir:
As duas propriedades não declaradas assumirão o valor default que como você já sabe
são: a imagem rola na tela e será posicionada no canto superior esquerdo (que são os
valores default para as propriedades não declaradas).
Lição 4: Fontes
Nesta lição estudaremos as fontes e como aplicá-las usando CSS. Veremos como criar
situações para que determinada fonte seja visualizada pelo usuário mesmo não estando
instalada em seu sistema operacional. Descreveremos as seguintes propriedades CSS:
• font-family
• font-style
• font-variant
• font-weight
• font-size
• font
Existem dois tipos de nomes para definir fontes: nomes para famílias de fontes e nomes
para famílias genéricas. Os dois são explicados a seguir:
• Ver exemplo
Cabeçalhos <h1> serão renderizados com fonte "Arial". Se o usuário não tiver a font
Arial instalada, será usada a fonte "Verdana". Se ambas estiverem indisponíveis na
máquina do usuário será usada uma fonte da família sans-serif.
Notar que para especificar a fonte "Times New Roman" foram usadas aspas. Isto é
necessário para fontes com nomes compostos e que contenham espaços entre os nomes.
h1 {font-variant: small-caps;}
h2 {font-variant: normal;}
• Ver exemplo
• Ver exemplo
Existem muitas unidades (p. ex.:. pixels e percentagens) que podem ser usadas para
definir o tamanho da fonte. Neste tutorial nós usaremos as unidades mais comuns e
apropriadas. Ver exemplos a seguir:
h1 {font-size: 30px;}
h2 {font-size: 12pt;}
h3 {font-size: 120%;}
p {font-size: 1em;}
• Ver exemplo
Existe uma diferença fundamental entre as quatro unidades adotadas no exemplo acima.
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. M uitos 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'.
Abaixo uma figura mostrando como ajustar o tamanho das fontes nos navegadores
M ozilla Firefox e Internet Explorer. Tente você mesmo este ajuste — uma excelente
funcionalidade do navegador, não é mesmo?
Compilando [font]
Usar font é uma abreviação que permite definir várias propriedades em uma só.
Veja a seguir quatro linhas de código usadas para definir propriedades de fonte para um
parágrafo <p>:
p {
font-style: italic;
font-weight: bold;
font-size: 30px;
font-family: arial, sans-serif;
}
p {
font: italic bold 30px arial, sans-serif;
}
Lição 5: Textos
Formatar e estilizar textos é um item chave para qualquer web designer. Nesta lição
você será apresentado às interessantes oportunidades que as CSS proporcionam para
adicionar layout aos textos. Serão discutidadas as propriedades listadas abaixo:
• text-indent
• text-align
• text-decoration
• letter-spacing
• text-transform
p {
text-indent: 30px;
}
• Ver exemplo
th {
text-align: right;
}
td {
text-align: center;
}
p {
text-align: justify;
}
• Ver exemplo
h1 {
text-decoration: underline;
}
h2 {
text-decoration: overline;
}
h3 {
text-decoration: line-through;
}
• Ver exemplo
h1 {
letter-spacing: 6px;
}
p {
letter-spacing: 3px;
}
• Ver exemplo
capitalize
Capitaliza a primeira letra de cada palavra. Por exemplo: "john doe" transforma-
se para "John Doe".
uppercase
Converte todas as letras para maiúscula. Por exemplo: "john doe" transforma-se
para"JOHN DOE".
lowercase
Converte todas as letras para minúscula. Por exemplo: "JOHN DOE"
transforma-se para"john doe".
none
Sem trasformações - o texto é apresentado como foi escrito no código HTM L.
Para exemplificar vamos usar uma lista de nomes. Os nomes estão marcados com o
elemento <li> (item de lista). Vamos supor que desejamos os nomes capitalizados e os
cabeçalhos em letras maiúsculas.
Ao consultar o exemplo sugerido para este código dê uma olhada no HTM L da página e
observe que os textos no código foram escritos com todas as letras em minúsculas.
h1 {
text-transform: uppercase;
}
li {
text-transform: capitalize;
}
• Ver exemplo
Lição 6: Links
Você pode aplicar aos links tudo que aprendeu nas lições anteriores (i.e. 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. Isto possibilita adicionar interessantes
efeitos ao seu website. Para estilizar estes efeitos você usará as chamadas pseudo-
classes.
O que é pseudo-classe?
Uma pseudo-classe permite estilizar levando em conta condições diferentes ou eventos
ao definir uma propriedade de estilo para uma tag HTM L.
Vamos ver um exemplo. Como você já sabe, links são marcados no HTM L com tags
<a>. Podemos então usar a como um seletor CSS:
a {
color: blue;
}
Um link pode ter diferentes estados. Por exemplo, pode ter sido visitado ou não visitado. Você
usará pseudo‐classes para estilizar links visitados e não visitados.
a:link {
color: blue;
}
a:visited {
color: red;
}
Use as pseudo-classes a:link e a:visited para estilizar links não visitados e visitados
respectivamente. Links ativos são estilizados com a pseudo-classe a:active e a:hover,
esta última é a pseudo-classe para links com o ponteiro do mouse sobre ele.
Pseudoclasse: link
a:link {
color: green;
}
• Ver exemplo
Pseudoclasse: visited
a:visited {
color: yellow;
}
• Ver exemplo
Pseudoclasse: active
a:active {
background-color: red;
}
• Ver exemplo
Pseudoclasse: hover
A pseudo-classe :hover é usada para quando o ponteiro do mouse está sobre o link.
Isto pode ser usado para conseguir efeitos bem interessantes. Por exemplo, podemos
mudar a cor do link para laranja e o texto para itálico quando o ponteiro do mouse passa
sobre ele, o código CSS para estes efeitos é o mostrado a seguir:
a:hover {
color: orange;
font-style: italic;
}
• Ver exemplo
Exemplo 1a: Espaçamento entre as letras
Como você deve estar lembrado da lição 5, o espaçamento entre as letras de um texto
pode ser controlado pela propriedade letter-spacing. Isto pode ser aplicado aos links
para obter um efeito interessante:
a:hover {
letter-spacing: 10px;
font-weight:bold;
color:red;
}
• Ver exemplo
Exemplo 1b: UPPERCASE e lowercase
a:hover {
text-transform: uppercase;
font-weight:bold;
color:blue;
background-color:yellow;
}
• Ver exemplo
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. Até minha mãe sabe disto! Se você muda a cor e retira o sublinhado
dos links, poderá confundir seus visitantes e em conseqüência não retirar o máximo dos
conteúdos do seu website.
Feita esta ressalva, é muito fácil retirar o sublinhado dos links. Conforme explicado na
lição 5, a propriedade text-decoration pode ser usada para definir se o texto é ou não
sublinhado. Para remover o sublinhado, basta definir o valor none para a propriedade
text-decoration.
a {
text-decoration:none;
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;
}
• Ver exemplo
Lição 7: Identificando e agrupando
elementos (classes e id)
Em alguns casos você deseja aplicar estilos a um elemento ou grupo de elementos em
particular. Nesta lição veremos como usar 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? Estas são algumas das questões que iremos responder
nesta lição.
• Ver exemplo
Queremos que os links para vinho branco sejam na cor amarela, para vinho tinto na cor
vermelha e os demais links na página permaneçam na cor azul.
Para conseguir isto, dividimos os links em duas categorias. Isto é feito atribuindo uma
classe para cada link, usando o atributo class.
a {
color: blue;
}
a.whitewine {
color: #FFBB00;
}
a.redwine {
color: #800000;
}
• Ver exemplo
Como mostrado no exemplo acima, pode-se definir propriedades para estilização dos
elementos pertencentes a uma determinada classe usando um .nomedaclasse na folha de
estilos do documento.
O que há de especial no atributo id é que não poderá existir dois ou mais elementos
com a mesma id, ou seja em um documento apenas um e somente um elemento poderá
ter uma determinada id. Cada id é única. Para casos em que haja necessidade de mais
de um elemento com a mesma identificação usamos o atributo class. A seguir um
exemplo de possível uso de id:
<h1>Capítulo 1</h1>
...
<h2>Capítulo 1.1</h2>
...
<h2>Capítulo 1.2</h2>
...
<h1>Capítulo 2</h1>
...
<h2>Capítulo 2.1</h2>
...
<h3>Capítulo 2.1.2</h3>
...
O exemplo acima simula os cabeçalhos de um documento estruturado em capítulos e
parágrafos. É comum atribuir uma id para cada capítulo como mostrado a seguir:
Vamos supor que o cabeçalho do capítulo 1.2 deva ser na cor vermelha. Isto pode ser
feito conforme mostrado na folha de estilo a seguir:
#c1-2 {
color: red;
}
• Ver exemplo
Lição 8: Agrupando elementos (span e
div)
Os elementos <span> e <div> são usados para agrupar e estruturar um documento e são
freqüentemente usados em conjunto com os atributos class e id.
Nesta lição veremos com detalhes o uso dos elementos HTM L <span> e <div> no que
se refere a sua vital importância para as CSS.
Vamos supor que queremos enfatizar na cor vermelha os benefícios apontados por Mr.
Franklin pelo fato de não se passar o dia dormindo. Para isto marcamos os benefícios
com <span>. A cada span atribuímos uma class, e estilizamos na folha de estilos:
A folha de estilos:
span.benefit {
color:red;
}
• Ver exemplo
É claro que você pode usar id para estilizar o elemento <span>. M as, como você deve
estar lembrado, deverá usar uma única id para cada um os três elementos <span>,
conforme foi explicado na lição anterior.
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.
<div id="democrats">
<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="republicans">
<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>
#democrats {
background:blue;
}
#republicans {
background:red;
}
• Ver exemplo
Nos exemplos mostrados acima usamos somente <div> e <span> para simples
estilizações, tais como cores de textos e de fundos. Contudos estes dois elementos
possibilitam estilizações bem mais avançadas como veremos adiante nas lições deste
tutorial.
Lição 9: O box model
O box model (modelo das caixas) em CSS, descreve os boxes (as caixas) geradas pelos
elementos HTM L. O box model, detalha ainda, as opções de ajuste de margens, bordas,
padding e conteúdo para cada elemento. Abaixo apresentamos um diagrama
representando a estrutura de construção do box model:
<h1>Article 1:</h1>
Definindo estilos para cores e fontes o exemplo pode ser apresentado como a seguir:
O exemplo contém dois elementos: <h1> e <p>. O box model para os dois elementos é
mostrado a seguir:
Embora possa parecer um pouco complicado, a ilustração mostra como cada um dos
elementos é contido em um box (uma caixa). Boxes que podem ser ajustados e
controlados via CSS.
Lição 10: Margin e padding
Na lição anterior vimos o box model. Nesta lição veremos como controlar a
apresentação de um elemento definindo as propriedades margin e padding.
Vamos começar com um exemplo mostrando como definir margins para o documento,
ou seja, para o elemento <body>. A ilustração a seguir mostra como serão as margens da
página.
body {
margin-top: 100px;
margin-right: 40px;
margin-bottom: 10px;
margin-left: 70px;
}
Ou, adotando uma sintaxe mais elegante:
body {
margin: 100px 40px 10px 70px;
}
• Ver exemplo
As margens para a maioria dos elementos pode ser definida conforme o exemplo acima.
Podemos então, por exemplo, definir margens para todos os parágrafos <p>:
body {
margin: 100px 40px 10px 70px;
}
p {
margin: 5px 50px 5px 50px;
}
• Ver exemplo
Ilustramos o uso de padding através de um exemplo onde todos os cabeçalhos têm uma
cor de fundo definida:
h1 {
background: yellow;
}
h2 {
background: orange;
}
• Ver exemplo
h1 {
background: yellow;
padding: 20px 20px 20px 80px;
}
h2 {
background: orange;
padding-left:120px;
}
• Ver exemplo
Lição 11: Bordas
Bordas podem ser usadas para muitas coisas, por exemplo, 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.
• border-width
• border-color
• border-style
• Exemplos de definição de bordas
• border
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:
h1 {
border-width: thick;
border-style: dotted;
border-color: gold;
}
h2 {
border-width: 20px;
border-style: outset;
border-color: red;
}
p {
border-width: 1px;
border-style: dashed;
border-color: blue;
}
ul {
border-width: thin;
border-style: solid;
border-color: orange;
}
• Ver exemplo
É possível ainda definir propriedades especialmente para as bordas top, bottom, right ou
left (superior, inferior, direita e esquerda). Veja o exemplo a seguir:
h1 {
border-top-width: thick;
border-top-style: solid;
border-top-color: red;
border-bottom-width: thick;
border-bottom-style: solid;
border-bottom-color: blue;
border-right-width: thick;
border-right-style: solid;
border-right-color: green;
border-left-width: thick;
border-left-style: solid;
border-left-color: orange;
}
• Ver exemplo
Compilando [border]
Assim como para muitas outras propriedades, você pode usar uma declaração abreviada
para bordas. Vamos a um exemplo:
p {
border-width: 1px;
border-style: solid;
border-color: blue;
}
p {
border: 1px solid blue;
}
Lição 12: Altura e largura
Até agora ainda não fizemos qualquer consideração sobre as dimensões dos elementos
com que trabalhamos. Nesta lição veremos como é fácil atribuir uma altura e uma
largura para um elemento.
• width
• height
div.box {
width: 200px;
border: 1px solid black;
background: orange;
}
• Ver exemplo
div.box {
height: 500px;
width: 200px;
border: 1px solid black;
background: orange;
}
• Ver exemplo
Lição 13: 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) (ver lição 9 para descrição do Box model). A
figura a seguir ilustra o princípio de float:
Se desejamos que um texto seja posicionado em volta de uma figura como mostrado
abaixo, basta flutuarmos a imagem:
<div id="picture">
<img src="bill.jpg" alt="Bill Gates">
</div>
Para conseguir o efeito mostrado, basta definir uma largura para o box que o contém e
declarar para ele float: left;
#picture {
float:left;
width: 100px;
}
• Ver exemplo
<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>
A seguir definimos a largura de cada coluna, por exemplo 33%, e declaramos float:
left; para cada uma das colunas:
#column1 {
float:left;
width: 33%;
}
#column2 {
float:left;
width: 33%;
}
#column3 {
float:left;
width: 33%;
}
• Ver exemplo
A propriedade clear
A propriedade clear é usada para controlar o comportamento dos elementos que se
seguem aos elementos floats no documento.
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.
<div id="picture">
<img src="bill.jpg" alt="Bill Gates">
</div>
<h1>Bill Gates</h1>
Para evitar que o texto se posicione no espaço livre deixado pela foto do Bill Gates
basta adicionar a seguinte regra CSS:
#picture {
float:left;
width: 100px;
}
.floatstop {
clear:both;
}
• Ver exemplo
Lição 14: Posicionando elementos
Com posicionamento CSS podemos colocar um elemento em uma posição exata na
página. Combinado com floats (ver lição 13), o posicionamento abre muitas
possibilidades para criação de layouts precisos e avançados.
Vamos supor que queremos posicionar um cabeçalho. Usando o box model (ver lição 9)
o cabeçalho pode ser estilizado para ser apresentado como mostrado abaixo:
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.
#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;
}
• Ver exemplo
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.
#dog1 {
position:relative;
left: 350px;
bottom: 150px;
}
#dog2 {
position:relative;
left: 150px;
bottom: 500px;
}
#dog3 {
position:relative;
left: 50px;
bottom: 700px;
}
• Ver exemplo
Lição 15: Usando z-index (Layers)
CSS usa o espaço tri-dimensional - altura, largura e profundidade. Nas lições anteriores
vimos as duas primeiras dimensões. Nesta lição aprenderemos como colocar elementos
em layers (camadas). Resumindo, camadas significam como os elementos se sobrepõem
uns aos outros.
Para fazer isto definimos 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.
Vamos supor 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).
#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;
}
• Ver exemplo
O método é simples, mas as possibilidades são muitas. Você pode colocar imagens
sobre textos, texto sobre texto, etc.
Lição 16: 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 é, HTM L, CSS, XM L e outros).
M icrosoft, Fundação M ozilla e muitas outras organizações são membros do W3C e
formam um consenso sobre o futuro desenvolvimento de normas.
Se você tem alguma experiência com web design, provavelmente sabe que há uma
grande diferença na maneira como diferentes navegadores renderizam uma página. É
frustante e requer um consumo de muito tempo, criar uma página que possa ser
visualizada consistentemente no M ozilla, Internet Explorer, Opera e no restante dos
navegadores existentes.
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.
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: