BOTÃO EM CSS COM EFEITO 3D

O site cssglobe publicou um artigo com 4 técnicas CSS para criar links de texto, links em imagens e links através de botões com efeito 3D. O resultado do botão é uma bonita figura de botão projetado na página que com o passar do mouse se move para baixo. Veja o exemplo. Outro CSS interessante é o que lhe permite adicionar miniaturas de imagens no site que são ampliadas automaticamente quando o visitante passa o mouse sobre elas. Veja o exemplo. O site fornece a dica completa do código CSS que você deve utilizar e um arquivo para download com todos os exemplos.

Defina a altura de uma imagem usando um pixel valor

http://74.125.93.104/translate_c?hl=pt-BR&sl=en&tl=pt&u=http://www.w3schools.com/css/tryit.asp%3Ffilename%3Dtrycss_dim_height&usg=ALkJrhieVJmmR3Zzx7XNgC8SzKasmEpVMQ

CSS para campos textarea de formulário

Com as folhas de estilo CSS pode-se configurar o aspecto de cada elemento de uma página web, de uma maneira muito detalhada. Neste workshop de CSS vamos aplicar estilos aos elementos de formulário Textarea, que são caixas de texto de várias linhas. Veremos vários estilos aplicados sobre textarea, comentando suas distintas propriedades CSS. O objetivo deste workshop não é explicar o modo de trabalho com CSS, e sim, praticar com determinados atributos sobre os textarea. Pode-se encontrar informação básica para aprender a manejar as folhas de estilo em nosso Manual de CSS. Também dispomos de outros Workshops de CSS, onde se poderá aprender a utilizar esta tecnologia na prática.

Antes que nada, podemos ver a página aonde estão aplicados os diferentes estilos que vamos comentar sobre elementos textarea.

Um textarea é um elemento de formulário, logo à princípio deveríamos coloca-los entre

e
. O código HTML mais básico para um textarea é o seguinte:



Já lhe aplicamos uma classe de estilos CSS (estilotextarea), que definiremos na declaração de estilos da página:

.estilotextarea {width:400px;height:100px;border: 2px solid #990000;}

Nesta declaração de estilos indicamos que a largura da caixa de texto seja de 400 pixels e que a altura seja de 100 pixels. Também indicamos uma borda de 2 pixels de tamanho e de cor vermelho escuro.

O efeito é o seguinte:



Agora vejamos outro código HTML para incluir um textarea.



Neste caso, à parte que a classe para definir o estilo do textarea mudou (estilotextarea2), também está sendo indicado umas filas e umas colunas como tamanho do textarea, com os atributos cols e rows. Como os textarea são linhas de texto de várias linhas, com cols indica-se o número de caracteres em horizontal do textarea e com rows o número de filas ou linhas.

Agora o estilo para este textarea seria o seguinte:

.estilotextarea2 {width:300px;height:80px;border: 1px dotted #000099;}

Observamos que com CSS redefinimos a largura e altura, com os atributos width e height. Entretanto, entre a definição com HTML da altura e largura em caracteres do textarea, e a definição com CSS da altura e largura em pixels, manda o que tiver sido definido com CSS. Isto é assim geralmente em todos os casos de estilos que se redefinem com CSS, sempre acabam sendo as folhas de estilo as que predominam no aspecto dos elementos das webs.

Ademais, declaramos uma borda com linha de pontos de 1 pixel de largura no textarea, de cor vermelho escuro. O aspecto final deste textarea será o seguinte:



Agora vejamos um terceiro exemplo de textarea. Primeiro seu código HTML:



Este textarea tem a particularidade que aparecerá com um texto escrito dentro. Ou seja, quando se visualizar na página web, ao invés de estar vazio, terá escrito o que colocamos entre , "Texto de prova".

A classe que define o estilo deste textarea pode-se ver a seguir:

.estilotextarea3 {font-family: Garamond,verdana;font-size: 18pt;font-weight: bold;letter-spacing: 5px;}

Como se pode ver, foram definidos nesta ocasião vários estilos para as tipografias que serão utilizadas no texto do textarea. Neste caso, foi definida uma fonte garamond, e como padrão, verdana. Um tamanho do texto de 18 pontos, negrito, e um espaçamento entre letras de 5 pixels.

O resultado pode ser visto a seguir.

Texto de prova

Para acabar, veremos um último textarea ao qual vamos colocar o fundo transparente e no qual vamos modificar as cores das barras de deslocamento do textarea.



Para definir o estilo utilizamos o seguinte CSS:

.estilotextarea4 {background-color: transparent;border: 1px solid #000000;scrollbar-arrow-color: #000066;scrollbar-base-color: #000033;scrollbar-dark-shadow-color: #336699;scrollbar-track-color: #666633;scrollbar-face-color: #cc9933;scrollbar-shadow-color: #DDDDDD;scrollbar-highlight-color: #CCCCCC;}

A cor de fundo é transparente, pelo atributo background-color: transparent; isto quer dizer, que a cor do textarea tem a mesma cor que o fundo da página onde está colocado. Se tivermos o textarea colocado sobre um fundo branco, não observaremos nenhuma diferença com respeito a outros textareas, mas se o tivermos sobre um fundo de outra cor, o textarea se verá dessa mesma cor. Logo, foi aplicada uma borda de um pixel negro e com os restantes atributos se modifica a cor das barras de deslocamento do textarea. Atenção, que os estilos para barras de deslocamento só funcionam no Internet Explorer.

O resultado pode ser visto a seguir:

Com estes exemplos podemos ver algumas interessantes declarações de estilos para elementos textarea de formulário. Esperemos que sirva para fazer seus próprios formulários com mais estilo. Aliás, no Workshop de CSS temos exercícios para aplicar estilos a outros elementos de formulário, como os artigos Decorar um campo select de formulário com CSS, Estilizando formulários ou Estilos em campos de texto.

CSS para imprimir páginas web

Às vezes necessitamos que nossa página se imprima em uma impressora de maneira diferente de como se visualiza na página web. Por exemplo, se em uma página mostra-se um informe com dados que se deseja guardar impresso em papel, provavelmente desejaremos que na impressora se mostre com uma fonte menor, para que se possa comprimir todo o conteúdo de forma que caiba em uma folha. Também é possível que desejemos que apareça nos informes o logo da companhia centralizado no cabeçalho do informe.



Tudo isto pode ser feito com CSS. As Folhas de Estilo em Cascata servem para definir o aspecto da página, e estes estilos podem ser declarados de maneira distinta na hora de imprimir um documento e na hora de vê-lo no navegador.



Com CSS pode-se definir estilos em um documento externo, desta maneira:



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



Com isto supomos que temos um arquivo chamado estilos.css, que está no mesmo diretório da página, onde se definem os estilos do documento.









Referência: As diferentes maneiras de incluir estilos em uma web estão comentadas em nosso Manual de CSS.



De modo parecido, podemos atribuir uma folha de estilos externa para definir o aspecto quando um usuário imprime a página web:



<link href="estilos_impressao.css" rel="stylesheet" type="text/css" media="print">



O único que muda é o atributo media="print", que indica que esta folha de estilos é só para quando vai se imprimir a web.



Exemplo de duas folhas CSS distintas para impressão e visualização



Agora vejamos um exemplo de página web que tem duas folhas de estilo diferentes, uma para quando se está no navegador e outra quando vai se imprimir.



O exemplo pode-se ver em funcionamento em uma página a parte.



Temos um HTML que inclui duas folhas de estilos e dispõe de várias camadas, que logo construiremos ou posicionaremos com CSS.



<html>

<head>

   <title>informe super quebra-cabeça</title>

   <link rel="STYLESHEET" type="text/css" href="estilo.css">

   <link rel="STYLESHEET" type="text/css" href="estilo_imprimir.css" media="print">

</head>



<body>



<div id="container">

    <div id="cabecalho">

      Super quebra-cabeça

    </div>

   <div id="logo">

       <img src="logo.gif">

   </div>

   <div id="corpo">

    <div id="lateral">

    <ul>

       <li><a href="#">Link 1</a>

       <li><a href="#">Vínculo 2</a>

    </ul>

    </div>

    <div id="direita">

       <div id="principal">

Conteúdo de um possível informe

       </div>

    </div>

   </div>

    <div id="rodape">

    © 2007 CriarWeb.com

    </div>

</div>



</body>

</html>



Como pode ser visto no HTML anterior, foram incluídos dois arquivos CSS com estilos. O primeiro é estilo.css, que é o estilo que se utilizará ao visualizar a página no navegador. O segundo link com uma folha de estilos CSS é estilo_imprimir.css, que definirá o aspecto da página ao imprimi-la (observe o atributo media="print" da etiqueta).



Os códigos CSS são muito parecidos, simplesmente fizemos duas mudanças para ilustrar o que vínhamos dizendo. Na visualização da página não se mostrará a camada com id="logo". Por sua parte, ao imprimir a página não se mostrará a barra de navegação da esquerda e os conteúdos centrais se mostrarão em toda a largura do espaço de impressão. Também não se mostrará a camada id="cabecalho".



O código CSS de visualização no navegador



BODY {

font: 8pt Verdana, Geneva, Arial, Helvetica, sans-serif;

margin: 10 0 10 0px;

text-align: center;

background-color: #ffffff;

}

#container{

text-align: left;

width: 770px;

margin: auto;

}

#cabecalho{

background-color: #d0d0ff;

color: #333300;

font-size:12pt;

font-weight: bold;

padding: 3 3 3 10px;

}



#logo{

visibility:hidden;

display: none;

}



#corpo{

margin: 10 0 10 0px;

}

#lateral{

width: 160px;

background-color: #d0d0ff;

float:left;

}

#lateral ul{

margin : 0 0 0 0px;

padding: 0 0 0 0px;

list-style: none;

}

#lateral li{

background-color: #ffffff;

margin: 2 2 2 2px;

padding: 2 2 2 2px;

font-weight: bold;

}

#lateral a{

color: #3333cc;

text-decoration: none;

}



#rodape{

background-color: #cccccc;

padding: 3 10 3 10px;

text-align:right;

clear: both;

}



#principal{

background-color: #ffffff;

padding: 0 0 0 20px;

width: 580px;

float: left;

}



#principal table{

background-color: #ffffff;

width: 580px;

border: 2px solid #cccccc;

font-size:10pt;

}



O código CSS que se utilizará para a impressão da página



BODY {

   font: 8pt Verdana, Geneva, Arial, Helvetica, sans-serif;

   margin: 10 0 10 0px;

   text-align: center;

    background-color: #ffffff;

}

#container{

    text-align: left;

    width: 600px;

    margin: auto;

}

#cabecalho{

   visibility:hidden;

   display: none;

}



#logo{

   visibility:visible;

   display: block;

   margin-left: 20px;

}



#corpo{

    margin: 10 0 10 0px;

}

#lateral{

   visibility:hidden;

   display: none;

}



#rodape{

    background-color: #cccccc;

    padding: 3 10 3 10px;

    text-align:right;

   clear: both;

}



#principal{

    background-color: #ffffff;

    padding: 0 0 0 20px;

    width: 600px;

    float: left;

}



#principal table{

   background-color: #ffffff;

    width: 600px;

   border: 2px solid #cccccc;

   font-size:10pt;

}



Novamente, colocamos o link para que se possa ver a página do exemplo de estilos de impressão CSS.









Nota: Se quisermos ver como se imprimiria a página, porém sem a necessidade de utilizar a impressora (para não gastar papel nem tinta ou se não tivermos impressora), podemos acessar ao menu Arquivo - Visualizar impressão ).

Molduras para fotos com CSS

Neste workshop de CSS vamos criar uma série de 4 molduras para fotos, que podemos utilizar em uma página web para melhorar a presença, porém sem complicar nossa vida. Uma vez escolhida a moldura que mais gostemos, podemos utiliza-la repetidas vezes na página para que todas as fotos sejam vistas de maneira parecida e ganhe também um pouco de personalidade o design da web.

Para fazer esta série de molduras, evitamos o uso de imagens adicionais, só as fotografias, o que faz com que o desenho seja mais fácil de aplicar, definindo somente os estilos CSS.

Podemos ver o resultado conseguido em uma página a parte.

Primeira moldura CSS, que é simples e aplica estilos tanto ao container da foto como à própria imagem.

.moldura1 {
padding:8px;
background-color: #f5f5f5;
width: 200px;
border: 1px solid #999999;
}
.moldura1 IMG{
border: 1px solid #000000;
}





Neste caso definimos um espaço entre a moldura e a foto, uma cor de fundo e uma borda. Com a segunda declaração estamos definindo também uma borda de cor preta para a imagem, para que fique mais ressaltada.

Vejamos agora a segunda moldura, que quisemos fazer uma borda como com relieve.

.moldura2 {
padding:8px;
background-color: #f5f5f5;
width: 200px;
border-bottom: 1px solid #999999;
border-right: 1px solid #999999;
}





Definimos estilos CSS para um espaço entre a foto e a borda do container, uma cor de fundo e as bordas mencionadas, que só se aplicam abaixo e à direita.

Agora definimos uma moldura muito simples, mas que lembra as fotos instantâneas de Polaroid.

.moldura3 {
padding:8px 8px 20px 8px;
background-color: #ffffff;
width: 200px;
border: 1px solid #999999;
}





Simplesmente definimos uns espaços entre a foto e a borda do elemento, onde o espaço debaixo é maior para emular a moldura das Polaroid, que era mais larga embaixo.

Logo, colocamos uma borda ao próprio container para que se diferencie com o fundo da página, que também é branco.

Por último criamos uma moldura com sombra. Esta moldura com sombra sem utilizar imagens é um pouco mais complicado no código HTML, porém ainda mais no código CSS. Este efeito de sombra com CSS já foi explicado em outro artigo anterior em CriarWeb.com, por isso não daremos mais explicações, e sim a referência ao artigo: Efeito de sombra com CSS

.blur{
background-color: #ccc; /*shadow color*/
color: inherit;
margin-left: 4px;
margin-top: 4px;
width: 224px;
}
.shadow, .content{
position: relative;
bottom: 2px;
right: 2px;
}
.shadow{
background-color: #666; /*shadow color*/
color: inherit;
}
.content{
background-color: #fff; /*background color of content*/
color: #000; /*text color of content*/
border: 1px solid #000; /*border color*/
padding: .5em 2ex;
}
.content IMG{
border: 1px solid #000000;
}







Como vemos no código HTML, utilizam-se três containers diferentes, para emular o efeito de degrade da sombra, que é mais escura perto do objeto e mais clara à medida que a sombra se afasta do objeto.

Teremos que definir estilos para cada um dos três containers. O bom é que, como os estilos se definem pelas classes CSS, só teremos que defini-los uma vez e poderemos utiliza-los em todas as imagens que desejarmos.

Mapear uma imagem apenas com css

Veremos como mapear uma região sem o uso da tag map, utilizando apenas CSS.




Vejo muita gente usando a tag map para mapear determinada regiao e juntamente com um link, não sabendo que está em desuso.



Nesse exemplo que posto aqui criei um layout com um topo que é uma imagem qualquer com 758 de largura e 50 de altura, mas quero que quando a pessoa clicar sobre a imagem volte a home. A diferença é que não quero que esse link ocupe a imagem toda, quero apenas que ocupe 200px da imagem. Hoje em dia isso é muito usado na maioria dos sites, o problema é que o pessoal usa ainda a tag map para fazer isso....



Segue o código:



<html>



<head>



<style type="text/css">



body{

margin:0px;

padding:0px;

text-align:center;

background-color:silver;

font-family:arial, verdana, serif;

font-size:11px;

}



#moldura{

width:758px;

height:500px;

margin:0 auto;

background-color:white;

text-align:left;

}





ul {

position: relative;

list-style: none;

margin:0;

padding: 0;

width: 758px;

height:50px;

background-image: url(carro02.jpg); <!--a imagem que vai receber o link-->

backgrond-repeat: no-repeat;

}





a {

position: absolute;

display: block;

text-decoration: none;

}







a.regiao {

width: 200px;

height:50px;

margin:0 auto;

}





a:hover {

border:none;

}





#topo {

width:758px;

height:500px;

margin:0 auto;

}



</style>



</head>



<body>



<div id="moldura">



<div id="topo">



<ul>

<a href="teste_home.htm" title="home" class="regiao"></a>

</ul>



</div>



</body>



</html>

Lição 16: Web-standards e validação

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 é, 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.

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 Mozilla, Internet Explorer, Opera e no restante dos navegadores existentes.

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. Assim, nós recomendamos 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.



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/

Lição 15: Usando z-index (Layers)

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:

Royal Flush

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).

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


#ten_of_diamonds {
position: absolute;
left: 100px;
bottom: 100px;
z-index: 1;
}

#jack_of_diamonds {
position: absolute;
left: 115px;
bottom: 115px;
z-index: 2;
}

#queen_of_diamonds {
position: absolute;
left: 130px;
bottom: 130px;
z-index: 3;
}

#king_of_diamonds {
position: absolute;
left: 145px;
bottom: 145px;
z-index: 4;
}

#ace_of_diamonds {
position: absolute;
left: 160px;
bottom: 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.
Sumário

Layers podem ser usados em muitas situações. Tente, por exemplo, usar z-index para criar efeitos em cabeçalhos no lugar de usar imagens. Por um lado é mais rápido carregar texto na página e por outro, texto é mais amigável aos dispositivos de indexação.

Lição 14: Posicionando elementos

O princípio de posicionamento CSS


Considere a janela do navegador como um sistema de coordenadas:


Janela do navegador com coordenadas


O princípio de posicionamento CSS estabelece que você pode posicionar um elemento em qualquer lugar na tela usando um sistema de coordenadas.


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:


Cabeçalho em um box


Se quisermos o cabeçalho posicionado a 100px do topo do documento e a 200px à esquerda, podemos usar o seguinte CSS:



  h1 {   position:absolute;   top: 100px;   left: 200px;  }    

O resultado é mostrado a seguir:

Cabeçalho posicionado na janela do navegador


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.


Para exemplificar o posicionamento absoluto escolhemos colocar quatro boxes nos quatro cantos da página:



  #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;  }    



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.


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:



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



Sumário


Nas duas lições anteriores você aprendeu como flutuar e posicionar elementos. Estes dois métodos posibilitam a você construir o layouy sem uso das ultrapassadas tabelas e imagens transparentes no HTML. Use CSS. É mais preciso, mais vantajoso e muito mais fácil de manutenir.

Lição 13: Flutuando elementos (floats)

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:


Um box flutuado à esquerda


Se desejamos que um texto seja posicionado em volta de uma figura como mostrado abaixo, basta flutuarmos a imagem:


Um box flutuado, contendo uma imagem


Como isto é feito ?


O HTML para o exemplo acima é mostrado a seguir:



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


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;  }    



Outro exemplo : colunas


Floats podem ser usados para construir colunas em um documento. Para criar as colunas estruturamos as colunas no código HTML usando <div> como mostrado a seguir:



  <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%;  }    



float pode ser declarado left, right ou none.


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. Veja no exemplo acima que o texto deslocou-se automaticamente para o lado da foto de Bill Gates.


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>    <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:



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



Sumário


Floats são muito úteis em várias situações e frequentemente usados em conjunto com posicionamento. Na próxima lição veremos como posicionar um box tanto de maneira relativa como absoluta.

Lição 12: Altura e largura

Atribuindo largura [width]


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:



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



Atribuindo altura [height]


No exemplo acima a altura será determinada pelo conteúdo inserido no box. Você pode definir a altura de um elemento com a propriedade height. Como exemplo, vamos fazer a altura do box anterior igual a 500px:



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



Sumário


Nas Lições9, 10, 11 e 12 você aprendeu os fundamentos do box model em CSS. Como podemos notar o box model fornece uma série de novas opções de estilização. Até agora, você deve ter usado tabelas para criar seus layouts, porém com CSS e o box model você, a partir de agora, estará capacitado a criar layouts mais elegantes, precisos e em conformidade com as recomendações do W3C.

Lição 11: Bordas

Definindo margin de um elemento


Um elemento tem quatro lados: right, left, top e bottom (direito, esquerdo, superior e inferior). A margin é a distância entre os lados de elementos vizinhos (ou às bordas do documento). Ver o diagrama mostrado na lição 9.


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.


Exemplos de margens


As CSS são mostradas abaixo:



  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;  }    



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;  }    



Definindo padding de um elemento


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.


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;  }    



Definindo padding para os cabeçalhos, alteramos a quantidade de enchimento existente ao redor de cada um deles:



  h1 {   background: yellow;   padding: 20px 20px 20px 80px;  }    h2 {   background: orange;   padding-left:120px;  }    



Sumário


Você está no caminho para se tornar um mestre em CSS box model. Na próxima lição veremos com detalhes como atribuir bordas coloridas e formas aos elementos.

Lição 10: Margin e padding

Definindo margin de um elemento


Um elemento tem quatro lados: right, left, top e bottom (direito, esquerdo, superior e inferior). A margin é a distância entre os lados de elementos vizinhos (ou às bordas do documento). Ver o diagrama mostrado na lição 9.


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.


Exemplos de margens


As CSS são mostradas abaixo:



  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;  }    



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;  }    



Definindo padding de um elemento


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.


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;  }    



Definindo padding para os cabeçalhos, alteramos a quantidade de enchimento existente ao redor de cada um deles:



  h1 {   background: yellow;   padding: 20px 20px 20px 80px;  }    h2 {   background: orange;   padding-left:120px;  }    



Sumário


Você está no caminho para se tornar um mestre em CSS box model. Na próxima lição veremos com detalhes como atribuir bordas coloridas e formas aos elementos.

Lição 9: O box model

O box model (modelo das caixas) em CSS, descreve os boxes (as caixas) geradas pelos elementos HTML. 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:


O box model em CSS





A ilustração acima é teórica. Vamos explicá-la na prática tomando como base um cabeçalho e um texto. O HTML para nosso exemplo (o texto foi retirado da Declaração Universal dos Direitos Humanos e está no original em inglês) é o mostrado abaixo:



  <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 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.


Sumário


Nesta lição você foi apresentado ao box model. Nas três lições seguintes iremos detalhar como criar e controlar elementos no box model.

Lição 8: Agrupando elementos (span e div)

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 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.


Um exemplo deste uso é mostrado na citação abaixo de autoria de Benjamin Franklin:



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


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:



  <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>


A folha de estilos:



  span.benefit {   color:red;  }    



É claro que você pode usar id para estilizar o elemento <span>. Mas, 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.


Diferenças à parte, o agrupamento com <div> funciona mais ou menos da mesma maneira. Vamos ver um exemplo tomando duas listas de presidentes dos Estados Unidos agrupados segundo suas filiações políticas:



  <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>    


E na folha de estilos, podemos agrupar a estilização da mesma maneira como fizemos no exemplo acima:



  #democrats {   background:blue;  }    #republicans {   background:red;  }    



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.


Sumário


Na lição7 e 8 você aprendeu seletores id e class e elementos <span> e <div>.

Lição 7: Identificando e agrupando elementos (classes e id)

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.


Agrupando elementos com uso de classe


Vamos supor que temos duas listas de links para diferentes tipos de uvas usadas na produção de vinho branco e de vinho tinto. O código HTML conforme mostrado abaixo:



  <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>    



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.


Vamos especificar esta classe no exemplo a seguir:



  <p>Uvas para vinho branco:</p>  <ul>  <li><a href="ri.htm" class="whitewine">Riesling</a></li>  <li><a href="ch.htm" class="whitewine">Chardonnay</a></li>  <li><a href="pb.htm" class="whitewine">Pinot Blanc</a></li>  </ul>    <p>Uvas para vinho tinto:</p>  <ul>  <li><a href="cs.htm" class="redwine">Cabernet Sauvignon</a></li>  <li><a href="me.htm" class="redwine">Merlot</a></li>  <li><a href="pn.htm" class="redwine">Pinot Noir</a></li>  </ul>    


Agora podemos definir propriedades específicas para links pertencentes as classes whitewine e redwine, respectivamente.



  a {   color: blue;  }    a.whitewine {   color: #FFBB00;  }    a.redwine {   color: #800000;  }    



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.


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.


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:



  <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>  ...    


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;  }    



Como mostrado no exemplo acima, podemos definir propriedades para um elemento específico usando um seletor #id na folha de estilos para o documento.

Lição 6: Links

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 HTML.


Vamos ver um exemplo. Como você já sabe, links são marcados no HTML 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.


A seguir explicaremos com mais detalhes e exemplificação, as quatro pseudo-classes.


Pseudo-classe: link


A pseudo-classe :link é usada para links não visitados.


No exemplo a seguir links não vistados serão na cor verde.



  a:link {   color: green;  }      



Pseudo-classe: visited


A pseudo-clases :visited é usada para links visitados. No exemplo a seguir links visitados serão na cor amarela:



  a:visited {   color: yellow;  }    



Pseudo-classe: active


A pseudo-classe :active é usada para links ativos.


No exemplo a seguir links ativos terão seu fundo na cor vermelha:



  a:active {   background-color: red;  }      



Pseudo-classe: 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;  }    



Exemplo 1: Efeito quando o ponteiro está sobre o link


É comum a criação de efeitos diferentes quando o ponteiro está sobre o link. Veremos a seguir alguns exemplos extras de estilização da pseudo-classe :hover.


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;  }    



Exemplo 1b: UPPERCASE e lowercase


Na lição 5 vimos a propriedade text-transform, para estilizar com letras maiúsculas e minúsculas. Isto pode ser usado para estilizar links:



  a:hover {   text-transform: uppercase;   font-weight:bold;   color:blue;   background-color:yellow;  }    



Os exemplos mostrados dão uma idéia das inúmeras possibilidades de combinação de diferentes propriedades. Você pode criar seus próprios efeitos — faça uma tentativa!


Exemplo 2: Removendo sublinhado dos links


Uma pergunta comum: Como remover o 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. 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;    }    


Alternativamante, você pode definir text-decoration juntamente com outras propriedades para as quatro pseudo-classes.



  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;  }    



Sumário


Nesta lição você aprendeu pseudo-classes, usando algumas propriedades já estudadas nas lições anteriores. Isto deve ter proporcionado uma idéia das possibilidades das CSS.

Lição 5: Textos

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:



Indentação de texto [text-indent]


A propriedade text-indent permite que você aplique um recuo à primeira linha de um parágrafo. No exemplo a seguir um recuo de 30px é aplicado à todos os textos marcados com <p>:



  p {   text-indent: 30px;  }    



Alinhamento de textos [text-align]


A propriedade text-align corresponde ao atributo align das antigas versões do HTML. Textos podem ser alinhados à esquerda (left), à direita (right) ou centrados (centred). E temos ainda o valor justify que faz com o texto contido em uma linha se estenda tocando as margens esquerda e direita. Este tipo de alinhamento é usado em jornais e revistas.


No exemplo a seguir o texto contido na célula de cabeçalho <th> é alinhado à direita e os contidos nas células de dados <td> são centrados. E, os textos normais em parágrafos são justificados:



  th {   text-align: right;  }    td {   text-align: center;  }    p {   text-align: justify;  }    



Decoração de textos [text-decoration]


A propriedade text-decoration possibilita adicionar "efeitos" ou "decoração" em textos. Você pode por rexemplo, sublinhar textos, cortar o texto com uma linha, colocar uma linha sobre o texto, etc. No exemplo a seguir os cabeçalhos <h1> são sublinhados, os cabeçalhos <h2> levam um linha em cima e os cabeçalhos <h3> são cortados por uma linha.



  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 letter-spacing. O valor desta propriedade define o espaço entre os caracteres. Por exemplo, se você deseja um espaço de 3px entre as letras do texto de um parágrafo <p> e de 6px entre as letras do texto de um cabeçalho <h1> o código a seguir deverá ser usado.



  h1 {   letter-spacing: 6px;  }    p {   letter-spacing: 3px;  }    



Transformação de textos [text-transform]


A propriedade text-transform controla a capitalização (tornar maiúscula) do texto. Você pode escolher capitalize, uppercase ou lowercase independentemente de como o texto foi escrito no código HTML.


Como exemplo tomamos a palavra "cabeçalho" que pode ser apresentada ao usuário como "CABEÇALHO" ou "Cabeçalho". São quatro os valores possíveis para text-transform:



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 HTML.


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 HTML 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;  }    


Lição 4: Fontes

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:



Família de fontes [font-family]


A propriedade 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 até ser encontrada uma fonte instalada.


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:



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 na figura a seguir:


Tres exemplos de familias de fontes genericas e alguns de seus membros


Ao listar fontes para seu website, comece com aquela preferida, seguindo-se algumas alternativas para ela. É recomendável encerrar a listagem das fontes com uma fonte genérica. Assim fazendo, em último caso a página será renderizada com fonte da mesma família das que foram especificadas quando todas as demais estiverem indisponíveis na máquina do usuário.


A seguir mostramos um exemplo de listagem de fontes:



  h1 {font-family: arial, verdana, sans-serif;}  h2 {font-family: "Times New Roman", serif;}    



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.


Estilo da fonte [font-style]


A propriedade font-style define a escolha da fonte em normal, italic ou oblique. No exemplo a seguir todos as cabeçalhos <h2> serão em itálico.



  h1 {font-family: arial, verdana, sans-serif;}  h2 {font-family: "Times New Roman", serif; font-style: italic;}    



Fonte variante [font-variant]


A propriedade font-variant é usada para escolher as variantes normal ou small-caps. Uma fonte small-caps é aquela que usa letras maiúsculas de tamanhos reduzidos. Confundiu? Dê uma olhada nos exemplos a seguir:


Quatro exemplos de fontes em small caps


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.



  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.



  p {font-family: arial, verdana, sans-serif;}  td {font-family: arial, verdana, sans-serif; font-weight: bold;}    



Tamanho da fonte [font-size]


On 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. 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;}      



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. 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'.


Abaixo uma figura mostrando como ajustar o tamanho das fontes nos navegadores Mozilla 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;  }    


Usar a abreviação simplifica o código como mostrado abaixo:



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


A ordem dos valores para font é a mostrada a seguir :


font-style | font-variant | font-weight | font-size | font-family


Sumário


Você acaba de aprender algumas possibilidades relativas a fontes. Lembre-se que a grande vantagem de especificar fontes usando CSS é que você poderá alterar em alguns minutos, as fontes de um website inteiro. CSS economiza tempo e facilita sua vida. Na próxima lição veremos as propriedades para textos.

Lição 3: Cores e fundos

Cor do primeiro plano: a propriedade 'color'


A propriedade color define a cor do primeiro plano de um elemento.


Considere, por exemplo, que desejamos que todos os cabeçalhos de primeiro nível no documento sejam na cor vermelha. O elemento HTML que marca tais cabeçalhos é o elemento <h1>. O código a seguir define todos os <h1> na cor vermelha.



  h1 {   color: #ff0000;  }    



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.


O elemento <body> contém todo o conteúdo de um documento HTML. Assim, para mudar a cor de fundo da página, devemos aplicar a propriedade background-color ao elemento <body>.


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;    }    



Notar que foram aplicadas duas propriedades ao elemento <h1> separadas por um ponto e vírgula.


Images de fundo [background-image]


A propriedade CSS background-image é usada para definir uma imagem de fundo.


Usaremos a imagem de uma borboleta para exemplificar a aplicação de imagens de fundo. Você pode fazer o download da imagem mostrada abaixo e usá-la nos seus experimentos (clique com o botão direito do mouse sobre a imagem e escolha "salvar imagem como") ou você poderá usar uma outra imagem qualquer ao seu gosto.


Borboleta


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;  }    



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").


Imagem de fundo repetida [background-repeat]


No exemplo anterior você observou que a imagem da borboleta repetiu tanto na vertical como na horizontal cobrindo toda a tela? A propriedade background-repeat controla o comportamento de repetição da imagem de fundo.


A tabela a seguir mostra os quatro diferentes valores para background-repeat.






























Value Description Example
Background-repeat: repeat-x A imagem se repete na horizontal Ver exemplo
background-repeat: repeat-y A imagem se repete na vertical Ver exemplo
background-repeat: repeat A imagem se repete na tanto na horizontal como na vertical Ver exemplo
background-repeat: no-repeat A imagem não se repete Ver exemplo

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;  }    



Image de fundo fixa [background-attachment]


A propriedade background-attachment define se a imagem será fixa ou se irá rolar juntamente com o elemento que a contém.


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.




















Value Description Example
Background-attachment: scroll A imagem rola com a página Ver exemplo
Background-attachment: fixed A imagem é fixa Ver exemplo

Por exemplo, o código abaixo fixa a imagem na tela.



  body {   background-color: #FFCC66;   background-image: url("butterfly.gif");   background-repeat: no-repeat;   background-attachment: fixed;  }    h1 {   color: #990000;   background-color: #FC9804;  }    



Posição da imagem de fundo [background-position]


Por padrão uma imagem de fundo é posicionada no canto superior esquerdo da tela. A propriedade background-position permite alterar este posicionamento padrão e colocar a imagem em qualquer lugar na tela.


Existem várias maneiras de definir o posicionamento da imagem na tela definindo valores para background-position. Todas elas se utilizam de um sistema de coordenadas. Por exemplo, os valores '100px 200px' posiciona a imagem a 100px do topo e a 200px do lado esquerdo da janela do navegador.


As coordenadas podem ser expressas em percentagem da largura da janeja, em unidades fixas (pixels, centímetros, etc.) ou pode-se usar as palavras top, bottom, center, left e right. A figura a seguir ilustra o modelo de coordenadas:





Na tabela a seguir são mostrados alguns exemplos .

























Value Description Example
background-position: 2cm 2cm A imagem é posicionada a 2 cm da esquerda e 2 cm para baixo na página Ver exemplo
background-position: 50% 25% A imagem é centrada na horizontal e a um quarto (25%) para baixo na página Ver exemplo
background-position: top right A imagem é posicionada no canto superior direito da página Ver exemplo

No exemplo de código a seguir a imagem é posicionada no canto inferior direito da página:



  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;  }    



Compilando [background]


A propriedade background é uma abreviação para todas as propriedades listadas anteriormente.


Com background você declara várias propriedades de modo abreviado, economizando digitação e alguns bites, além de tornar a folha de estilo mais fácil de se ler e entender.


Por exemplo, observe as cinco linhas a seguir:



  background-color: #FFCC66;  background-image: url("butterfly.gif");  background-repeat: no-repeat;  background-attachment: fixed;  background-position: right bottom;    


Usando background você consegue o mesmo resultado, abreviando como mostrado abaixo:



  background: #FFCC66 url("butterfly.gif") no-repeat fixed right bottom;    


A declaração abreviada deve seguir a seguinte ordem:


[background-color] | [background-image] | [background-repeat] | [background-attachment] | [background-position]


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:



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


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).


Sumário


Nesta lição você aprendeu técnicas que não são possíveis com uso de HTML. A brincadeira continua na próxima lição onde examinaremos as possibilidades de estilização das fontes.

Lição 2: Como funciona CSS?

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 HTML.


Muitas das propriedades usadas em Cascading Style Sheets (CSS) são semelhantes àquelas do HTML. Assim, se você está acostumado a usar HTML para layout irá reconhecer muitos dos códigos que usaremos. Vamos dar uma olhada em um exemplo concreto.


A sintaxe básica das CSS


Suponha que desejamos uma cor de fundo vermelha para a página web:


Usando HTML podemos fazer assim:



  <body bgcolor="#FF0000">    


Com CSS o mesmo resultado será obtido assim:



  body {background-color: #FF0000;}    


Como você pode notar os códigos HTML e CSS são mais ou menos parecidos. O exemplo acima serve também para demonstrar o fundamento do modelo CSS:


Figura explicando seletor, propriedade e valor


Mas, onde colocar o código CSS? É isto que veremos a seguir.


Aplicando CSS a um documento HTML


Você pode aplicar CSS a um documento de três maneiras distintas. Os três métodos de aplicação estão exemplificados a seguir. Recomendamos que você foque no terceiro método, ou seja o método externo.


Método 1: In-line (o atributo style)


Uma maneira de aplicar CSS é pelo uso do atributo style do HTML. 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;">        <p>Esta é uma página com fundo vermelho</p>    </body>  </html>  


Método 2: Interno (a tag style)


Uma outra maneira de aplicar CSS e pelo uso da tag <style> do HTML. Como mostrado a seguir:



<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>  


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 diretório 'style' contendo os arquivos 'style.css'


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.


Esta linha de código deve ser inserida na seção header do documento HTML, 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 HTML.

A coisa realmente inteligente disto é que vários documentos HTML 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 HTML.


Figura mostrando vários documentos HTML lincados a uma folha de estilos


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 HTML. Usando CSS a mudança se fará em uns poucos segundos trocando-se a cor em uma folha de estilos central.


Vamos praticar o que aprendemos.


Faça você mesmo


Abra o Notepad (ou qualquer outro editor de texto que queira usar) e crie dois arquivos — um arquivo HTML e um arquivo CSS — com os seguintes conteúdos:


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;  }  


Salve os dois arquivos no mesmo diretório. Lembre-se de salvar os arquivos com a extensão apropriada (".css" e ".htm")


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 1: O que é CSS? O aparecimento das CSS, vantagens do seu uso para layout em relação ao HTML.

Lição 1: O que é CSS?


Talvez você já tenha ouvido falar em CSS, mas não saiba o que significa exatamente. Nesta lição você saberá o que é e para que serve CSS.


CSS é a abreviatura para Cascading Style Sheets. — Folha de Estilos em Cascata


O que eu posso fazer com CSS?


CSS é uma linguagem para estilos que define o layout de documentos HTML. Por exemplo, CSS controla fontes, cores, margens, linhas, alturas, larguras, imagens de fundo, posicionamentos e muito mais. Aguarde e você verá!


HTML 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.


Qual é a diferença entre CSS e HTML?


HTML é usado para estruturar conteúdos. CSS é usado para formatar conteúdos estruturados.


OK, isto soa um tanto técnico e confuso. Mas, por favor continue lendo. Tudo fará sentido em breve.


Em tempos passados quando a Madonna era virgem e um sujeito chamado Tim Berners Lee inventou a World Wide Web, a linguagem HTML era usada somente para estruturar textos. Um autor podia marcar seus textos definindo "isto é um cabeçalho " ou "isto é um parágrafo" usando tags HTML tais como <h1> e <p>.


À medida que a Web ganhava popularidade, os designers começavam a sentir a necessidade de encontrar meios de construir layout para os documentos online. Para suprir estas necessidades os fabricantes de navegadores (àquela época a Netscape e a Microsoft) inventaram novas tags HTML tais como, por exemplo a tag <font> que se diferenciava das tags originais do HTML pelo fato de destinar-se à layout — e não à estrutura.


Isto adicionalmente teve o efeito de disvirtuar o emprego de tags inicialmente projetadas para estrutura como por exemplo a tag <table> que passaram a ser empregadas para layout. Muitas destas novas tags para layout como a tag <blink> eram suportadas somente por um determinado tipo de navegador. A frase "Você precisa do navegador X para visualizar esta página" tornou-se comum nos websites.


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.


Quais são os benefícios do uso de CSS?


CSS é uma revolução no mundo do web design. Os benefícios concretos do uso de CSS incluem:



  • 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.

Introdução - Uma breve introdução ao tutorial e o que você aprenderá.

Folhas de estilos em cascata — Cascading Style Sheets (CSS) — é uma ferramenta fantástica para construção do layout dos seus websites. Permite que você projete websites com uma técnica completamente diferente da convencional e possibilita uma considerável redução de tempo de trabalho. Conhecer CSS é uma necessidade para qualquer um envolvido com o projeto web.

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 HTML, consulte nosso tutorial HTML antes de começar com CSS.
Quais softwares eu precisarei?

Por favor, evite usar softwares tais como FrontPage, DreamWeaver ou Word para acompanhar este tutorial. Softwares avançados não facilitarão seu aprendizado de CSS. Ao contrário, eles colocarão limites para você e atrasarão seu aprendizado.

Tudo o que você precisa é de um simples e gratuito editor de texto.

Por exemplo, Microsoft Windows vem com um programa chamado Notepad. Normalmente este programa está no diretório Accessories no menu Start => Programs. Alternativamente você pode usar um editor de texto similar, tal como, Pico para Linux ou Simple Text para Macintosh.

Um editor de texto simples é o ideal para o aprendizado de HTML 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.

Um navegador e um editor de textos simples é tudo o que você precisa.

CSS - Os seletores de links

São quatro os seletores dos links:

  1. a:link define o estilo do link no estado inicial;
  2. a:visited define o estilo do link visitado;
  3. a:hover define o estilo do link quando passa-se o mouse sobre ele;
  4. a:active define o estilo do link ativo (o que foi "clicado").

CSS - Adicionando sublinhado e sobrelinhado