CSS Level 1

CSS é a abreviatura de Cascading Style Sheets. CSS1 é um mecanismo simples de folhas de estilo que permitem aos autores e leitores associar estilos (ou design) a documentos HTML.

Sintaxe

Um documento CSS é composto por blocos, cada qual tem uma zona de selecção de etiquetas (ver secção Selecção) e, entre chavetas, um conjunto de propriedades separadas por um ponto e vírgula (ver secção Propriedades).

 <selector-1> { <propriedades-1> }
 <selector-2> {
    <propriedades-2>
 }

Os comentários podem ser inseridos entre blocos usando a mesma notação usada na linguagem C:

 em { color: red }  /* red, really red!! */

Como Incluir

A inclusão de folhas de estilo em documentos HTML pode ser realizada a três níveis diferentes:

(1)
Incluir o estilo directamente na etiqueta em causa. Isto é feito usando o atributo style da etiqueta e colocando como seu valor uma string com as propriedades em causa:
  <h1 style="font-color: red">Título</h1>

(2)
Incluir o estilo no cabeçalho do documento (elemento head). Para isso é usada a etiqueta style da seguinte forma:
  <style type="text/css"><!--
     h1 { font-color: red }
  --></style>

Neste caso, usa-se o comentário para esconder o código CSS de browsers mais antigos que possam não reconhecer a etiqueta style. A sintaxe é a usada para ficheiros de folhas de estilo.

(3)
Relacionar ficheiros com folhas de estilo com o documento. Isto é feito usando a etiqueta link dentro do cabeçalho do HTML (head) da seguinte forma:
  <link rel="stylesheet" type="text/css"
        href="http://style.com/cool";/>

A CSS em causa estaria num ficheiro denominado cool. É possivel e correcto usar mais do que uma destas ligações.

Estes métodos podem ser usados em conjunto. Nestes casos, a precedência para propriedades repetidas é daquelas que são especificadas na própria etiqueta.

Selecção

Cada um dos métodos apresentados pode ser usado com outros, sempre que faça sentido.

Selecção múltipla
Para associar o mesmo conjunto de propriedades a um conjunto de elementos usa-se como selector uma lista de etiquetas separadas por vírgulas:
 H1, H2, H3 { font-family: helvetica }

Selecção por classe
É possivel seleccionar elementos com base na sua classe, isto é, com base no identificador usado no atributo class de cada elemento. Neste caso,
 .title { color: red }

iria colocar todos os elementos com class="title" a vermelho.

Selecção por identificador
Uma vez que cada elemento num documento HTML pode conter um identificador (atributo id), único nesse documento, é possível associar a esse elemento uma propriedade inserindo um # antes do identificador:
 #mainTitle { font-size: 20px }

Selecção contextual
Por vezes é necessária a selecção contextual. No seguinte exemplo, os elementos LI serão seleccionados apenas se estiverem num nível maior que dois:
 ul ul li { font-size: x-small }

Pseudo-classes
Existem pseudo-classes para determinados elementos. Um desses elementos é o elemento a que permitem as pseudo-classes hover, active, link e visited. Estas pseudo-classes são usadas quando o cursor estiver sobre o link, quando o link estiver activo, nos links normais e nos links já visitados (respectivamente).

Note-se que as pseudo-classes e classes podem ter nomes iguais, sem que isso os associe à mesma propriedade.

 a:link    { color: red  }   /* unvisited link */
 a:visited { color: blue }   /* visited links */
 a:active  { color: lime }   /* active links */

Pseudo-elementos
Existem pseudo-elementos para elementos de texto:
 /* associar às primeiras linhas de parágrafos */
 p:first-line { font-variant: small-caps }
 /* associar à primeira letra de cada parágrafo */
 p:first-letter { font-size: 200%; float: left }

Propriedades

Embora nem todas as propriedades possam ser associadas a qualquer tipo de elemento, estas não serão distinguidas neste documento. Para mais informação veja o standard no W3C.

FONTS
font-family
Recebe uma lista de familias de tipos de letras (genéricos ou específicos). Os genéricos são serif, sans-serif, cursive, fantasy e monospace. O primeiro tipo da lista presente no sistema é escolhido.
 body { font-family: "new century schoolbook", serif }

font-style
Pode ser normal, italic ou oblique.
 em { font-style: italic }

font-variant
Pode ser normal ou small-caps.
 h3 { font-variant: small-caps }

font-weight
Pode ser normal, bold, bolder, lighter, 100, 200, ..., 900. Os valores numéricos correspondem a vários níveis de negrito, em que 900 é o mais escuro, e 100 o mais claro. A palavra-chave normal corresponde a 500, enquanto que bold corresponde a 700.
 b { font-weight: 900 }

As palavras-chave bolder e lighter escolhem um tipo mais escuro ou claro, respectivamente, do que o activo no momento actual.

font-size
Tamanho das letras. Pode ser uma palavra chave entre: xx-small, x-small, small, medium, large, x-large ou xx-large. Também pode ser um valor em pixeis (com unidade px) ou outros valores absolutos ou relativos. Para mais informação, consultar o standard.
 h1 { font-size: 50px }

font
Permite o uso das várias propriedades para letras numa única regra.
 p { font: bold italic large Palatino, serif }

CORES E FUNDOS
color
background-color
background-image
background-repeat
background-attachment
background-position
background

Autor

HowTo por Alberto Simões <albie@alfarrabio.di.uminho.pt>.

Baseado na especificação do W3C <http://www.w3.org> e nas referências e tutoriais do ZVON <http://www.zvon.org>.