Total de visualizações de página

sexta-feira, 25 de fevereiro de 2011

Folhas de Estilo

                        12. Introdução
Aulas de Informática

                                               12.1. O que são folhas de estilo?
Uma folha de estilos é um conjunto de regras que informa a um programa, responsável pela formatação de um documento, como organizar a página, como posicionar e expor o texto e, dependendo de onde é aplicada, como organizar uma coleção de documentos.
A maior parte dos programas de editoração eletrônica e processadores de texto moder-nos trabalham com folhas de estilos. O processo consiste em definir um rótulo (nome do esti-lo) para um determinado parágrafo e em seguida alterar os seus atributos. Todo parágrafo que for rotulado com aquele estilo passará a exibir as características definidas anteriormente. Qual-quer alteração nos atributos de um estilo afetará todos os parágrafos que estiverem rotulados com ele.
Esta descrição, que se aplica a estilos em processadores de texto e programas de editora-ção eletrônica, também vale para a Web. Na Web, os "parágrafos" são blocos marcados por descritores HTML como <H1>, <P>, etc. Para fazer com que todos os blocos de textos mar-cados com <H1> em um documento sejam exibidos em tamanho de 48 pontos, basta definir a regra:
H1 {font-size: 48pt}
dentro de uma "folha de estilos" aplicada ao documento.
A folha de estilos pode ser um arquivo de textos simples (alfabeto ISO-Latin1) com a extensão
.css. Para vinculá-lo a uma página HTML, esta deve ter dentro do seu bloco <HE-AD> ... </HEAD> o seguinte descritor:
<LINK REL="stylesheet" HREF="url_do_arquivo.css">
O restante deste artigo tratará dos fundamentos da tecnologia de folhas de estilos aplicáveis ao HTML, chamada de
Cascading Style Sheets (folhas de estilo em cascata), mostrando como estabelecer as regras de estilo para um bloco de texto, uma página ou todo um site. Seções específicas abordarão cores, imagens, tipologia e posicionamento. Este texto não é completo. Omitimos propriedades e recursos não suportados nos browsers e nos limitamos àqueles recursos que constam da especifica-ção CSS1 (não incluímos recursos proprietários nem a maior parte das novidades do CSS2 que não 67 Parte 3 – Folhas de Estilo
funcionam nos browsers disponíveis no mercado). Para uma abordagem mais completa, consulte a documentação oficial do W3C:
http://www.w3.org/Style/.
12.2. Para que servem as folhas de estilo
 
Separar apresentação da estrutura
Com isto é possível voltar a suportar browsers antigos que antes estavam condenados por não conseguirem ler a informação sem perdas. Com a informação toda armazenada no HTML (estrutura), a apresentação (estilo) seria uma camada a mais, alterando a disposição do texto, cores, etc. mas sem afetar a estrutura essencial da informação. Isto permite que uma página tenha vários estilos e use
scripts (programas embutidos) para decidir qual carregar (em função do browser e da plataforma). Isto é muito menos trabalho que fazer uma página para cada browser e plataforma, pois a atualização é feita apenas no HTML. Também, com isso, é possível ter uma folha de estilos especial somente para impressão, onde haveria informações de quebra de páginas, etc. (este recurso não faz parte da versão 1 do CSS).
Controle absoluto da aparência da página.
É algo que não se tem com o HTML. Pode-se usar tabelas, GIFs invisíveis de um pixel e mais uma dúzia de "macetes" mas não se consegue fazer o texto fluir suavemente em volta de uma imagem irregular, por exemplo. Além do mais, quanto mais sofisticada a técnica, mais difícil é de codificar e mais "sujo" fica o código, o que o torna mais sujeito a erros. Com CSS, pode-se colocar uma imagem em qualquer lugar da página (até fora dela), usando técnicas de posicionamento absoluto ou relativo. Pode-se escolher a posição exata da imagem de
back-ground e fazê-la combinar com algo no foreground. As dimensões e posições são exatas e dadas em unidades conhecidas no mundo da tipografia como pixels, pontos, paicas, milímetros.
Páginas mais leves
Com folhas de estilo é possível criar muitas páginas com um layout sofisticado que antes só era possível usando imagens, tecnologias como
Flash ou applets Java. Estas páginas eram sempre mais pesadas, pois precisavam carregar imagens, componentes, programas. Com CSS é possível definir texto de qualquer tamanho, posicioná-lo por cima de outros objetos, ao lado ou por cima de texto e conseguir efeitos sofisticados a um custo (banda de rede) baixo. É pos-sível ainda importar fontes (que o usuário talvez não tenha).
Manutenção de um grande site
Uma folha de estilos serve para toda uma coleção de páginas, podendo ser usada para dar um estilo consistente a todo o site. Sendo aplicada em separado da informação e estrutura, não precisará ser atualizada todas as vezes em que a informação for mudada. A página pode ser atualizada em um editor HTML ou gerador de HTML simples, sem recursos de cor ou alinha-
68 Parte 3 – Folhas de Estilo
mento, e ser formatada na hora em que for carregada pelo browser. É possível também fazer o contrário: mudar o estilo sem alterar a informação, como ter uma página que sempre carrega com um estilo diferente.
O uso das folhas de estilo depende da boa estrutura do HTML. A linguagem CSS (é uma linguagem declarativa) trabalha com os elementos tratando-os como "objetos". Cada parágrafo <P>, cada <H1>, cada <IMG> é um objeto. Objetos podem ser agrupados de várias formas. A cada objeto ou grupo de objetos podem ser atribuídas propriedades de estilo definidas em regras. Por exemplo, considere a seguinte regra: "todo objeto P da classe 'editorial' será azul, terá tamanho de 12 pontos, espaçamento duplo, alinhamento pela direita e usará a família de fontes Arial, ou, se esta não existir, Helvetica, ou então a fonte sem-serifa
default do sistema". Um arquivo CSS com apenas a regra acima conteria o texto:
P.editorial {color: 0000ff; font-size: 12pt; line-height: 24pt; text-align: right; font-family: arial, helvetica, sans-serif}
Se a folha de estilos acima for aplicada a uma página que possua parágrafos <P> rotula-dos com o nome "editorial" (atributo 'CLASS=editorial'), eles serão formatados de acordo com as propriedades especificadas se o browser suportar CSS. Se o browser não suportar CSS, a estrutura será mantida (embora a aparência não seja a ideal) e o usuário conseguirá ter acesso à informação estruturada, mesmo em um meio de visualização mais limitado.
Quando se usa CSS, são poucas as modificações necessárias no HTML. Não são neces-sários novos descritores ou extensões. No exemplo acima, teremos que incluir apenas um atri-buto a mais (o atributo CLASS, do HTML 4) classificando os parágrafos que fazem parte do nosso 'editorial' (parágrafos que tem uma função diferente dos demais).
A grande vantagem das folhas de estilo é a preservação da estrutura do HTML e um controle muito melhor do autor sobre a sua aparência na tela do usuário final. Uma página deverá aparecer da melhor forma possível tanto num
PowerPC sofisticado como naquele IBM PCXT 4.77MHz rodando o Lynx for DOS. O primeiro utilizará todos os recursos gráficos determinados pelas folhas de estilo. O segundo as ignorará, mas preservará a estrutura e a in-formação 69 Parte 3 – Folhas de Estilo
 
13. Regras Básicas
13.1. Regras, declarações e seletores
A estrutura dos estilos é bastante simples. Consiste de uma
lista de regras. Cada regra pos-sui um bloco, entre chaves ({ e }), de uma ou mais declarações aplicáveis a um ou mais seletores. Um seletor é algo no qual pode-se aplicar um estilo. Pode ser um descritor HTML, uma hie-rarquia de descritores ou um atributo que identifique um grupo de descritores. Uma folha de estilos consiste de uma ou mais linhas de regras, da forma:
seletores { declarações }
As regras podem estar dentro de um arquivo de texto (ISO Latin1 ou ASCII 8-bit) com extensão ".css" ou
Um exemplo de folha de estilos com apenas uma regra foi mostrada na seção anterior:
embutidas em um arquivo HTML (as várias maneiras de aplicar estilos a um arquivo HTML serão vistas na seção seguinte).
H1 {font-size: 48pt}
Nesta regra,
As declarações são feitas usando a sintaxe:
H1 é o seletor e {font-size: 48pt} é o bloco da declaração, que estabele-ce um tamanho de fonte (prop. font-size) para todos os objetos (parágrafos) marcados com <H1>.
propriedade: valor
Observe que se usa dois-pontos (
:) e não igual (=) para aplicar um valor a uma proprie-dade. Pode haver mais de uma declaração de estilo para um seletor. Isto pode ser feito em ou-tro bloco. Cada linha acrescenta ou sobrepõe declarações feitas em linhas anteriores:
H1 { font-size: 24pt } H1 { color: blue } H1 { font-size: 18pt }
No trecho acima, o texto marcado com
<H1> será azul e terá tamanho de 18pt porque a regra H1 { font-size: 18pt } ocorreu depois da regra H1 { font-size: 24pt }. 70 Parte 3 – Folhas de Estilo
 
13.2. Múltiplas declarações e seletores
Várias declarações de estilo podem ser aplicadas de uma vez a um seletor. As declara-ções, então, precisam ser separadas por ponto-e-vírgula (
;) :
H1 {font-size: 18pt; color: blue; font-family: Caslon, serif } BODY { background : navy; color : white }
Os espaços em branco (espaços, novas-linhas e tabulações) são ignorados pelo browser na hora de interpretar uma folha de estilos e podem ser usados para melhorar a sua legibilida-de. As duas linhas acima ficariam mais legíveis da forma:
BODY {background : navy; color : white }
H1 {color: blue; font-size: 18pt; font-family: Caslon, serif }
Uma declaração só termina com uma fecha-chaves (
}) ou com um ponto-e-vírgula (;). Dependendo da propriedade, esta pode ter vários valores separados por vírgulas ou valores compostos com as palavras separadas por espaços:
P { font: 12pt "Times New Roman" bold } H2 { font-family: Arial, Helvetica, Sans-serif }
As aspas devem ser usadas quando uma palavra que tem espaços precisar ser usada. No exemplo acima, o nome "Times New Roman" deveria ser tratado como o nome de uma fonte distinta, e não como três valores, o que ocorreria se as aspas não estivessem presentes.
Assim como um seletor pode ter várias propriedades definidas para ele, um mesmo con-junto de propriedades pode ser aplicada a um grupo de seletores, separando-os com vírgulas:
H1, H2, H3 { color: blue; font-size: 18pt; font-family: Arial, Helvetica, Sans-serif }
As declarações de estilo podem ser aplicadas em quase qualquer descritor HTML - no mundo perfeito! Na prática, muitos browsers ainda têm problemas de compatibilidade, e não implementam a especificação à risca, como veremos adiante.
Ao utilizar folhas de estilo, deve-se respeitar os elementos HTML que possuem descrito-res finais freqüentemente ignorados, como </P>, </LI>, etc. A falta do </P> pode causar o "vazamento" das declarações de estilo para fora do parágrafo em alguns browsers.
13.3. Comentários e instruções
Além das regras, um arquivo CSS pode ter ainda comentários e instruções (precedidas de @). No CSS1 apenas uma instrução é definida:
@import. Ela é usada para que uma folha de estilos possa importar estilos de outro arquivo CSS através de uma URL. Os estilos importados 71 Parte 3 – Folhas de Estilo
sempre têm menos precedência que os locais (ou seja, os locais podem sobrepor os importa-dos). A sintaxe da instrução
@import é:
@import url(url_da_folha_de_estilos)
Não deve haver outras estruturas (a não ser comentários) na linha onde há uma instru-ção. Exemplos do uso de
@import:
@import url(../basico.css) @import url(http://longe.com/estilos/basico.css)
Pode-se inserir trechos que serão ignorados pelo browser ao interpretar folhas de estilo usando blocos de comentário. Comentários em folhas de estilos são iguais a comentários em linguagens como C ou Java: entre
/* e */:
/* este texto é ignorado até que seja encontrado um asterisco seguido por uma barra */
13.4. Valores
Os valores que são aplicados às propriedades têm uma sintaxe que depende da proprie-dade que os usa. Propriedades que envolvem tamanho (tamanho de fontes, espaçamento, etc.) geralmente recebem valores que consistem de um número e uma unidade ou porcentagem. O sinal de porcentagem ou unidade deve estar junto ao número correspondente sem espaços. Ou seja, deve-se escrever
Cores e arquivos externos podem requerer uma função para serem definidos. São duas as funções (ou procedimentos) do CSS1:
Há quatro maneiras diferentes de especificar cores em CSS: usando o nome do sistema (red, yellow, blue, black, lightGray), usando seu código RGB hexadecimal (ff0000, ffff00, 0000ff, 34adfc, 80a7a7) ou usando a função
font-size: 24pt e não font-size: 24 pt. rgb(), que constrói uma cor, e url(), que retorna um vínculo para uma imagem ou arquivo CSS (usada em instruções @import). rgb(). A função rgb() requer três argumentos que representam a intensidade dos componentes vermelho (R), verde (G) e azul (B) de uma cor em forma de luz (não opaca). A intensidade pode ser expressa em valores inteiros de 0 (mínimo) a 255 (máximo) ou em valores fracionários de 0% a 100%. As instruções abaixo de-finem a mesma cor para um parágrafo:
P {color: red} P {color: ff0000} P {color: rgb(100%, 0%, 0%)} P {color: rgb(255, 0, 0)}
Não deve haver espaço entre o "
A função URL pode ser usada em propriedades que requerem arquivos (no caso, ima-gens) como valores. Ela recebe um argumento apenas com a URL (relativa ou absoluta) da imagem:
b" de rgb e o abre-parênteses. 72 Parte 3 – Folhas de Estilo
P {background-image: url(../imagens/tijolos.gif)} P {background-image: url(http://longe.com/imagens/pedras.png)}
13.5. Herança
Os estilos "herdam" propriedades de várias maneiras. Uma das formas é através da pró-pria hierarquia do HTML. Se você declara propriedades para BODY, todos os descritores se-rão afetados a não ser que tenham as suas propriedades redefinidas dentro de um novo bloco de declarações CSS. Se um <I> está dentro de um <P> e todos os <P> são declarados como tendo a cor vermelha, o <I> também será vermelho a menos que haja um bloco, posterior àquela declaração, redefinindo as propriedades de <I>, por exemplo:
P {font: 12pt "Times New Roman" bold; color: red }
I {color: black }
faria com que o texto "seletor", no texto a seguir permanecesse preto:
<P>Um
<I>seletor</I> é algo no qual pode-se aplicar um estilo.</P>
Se você definir atributos para os descritores <BODY> ou <HTML>, toda a página será afetada. No exemplo a seguir, uma cor de texto definida para BODY será usada para colorir todo o texto do documento, a não ser que sejam sobrepostos por uma regra subseqüente:
BODY {color: navy } H1, H2 {color: yellow }
Os blocos acima farão com que todo o texto seja azul marinho, exceto aquele marcado com H1 ou H2, que será amarelo.
Os browsers comerciais têm problemas principalmente com a aplicação de estilos em BODY, portanto, freqüentemente é preciso mexer nas declarações de estilo, acrescentando propriedades redundantes para adaptá-los à realidade. No site do W3C (
http://www.w3.org) há links para documentos que analisam essas diferenças entre browsers. O site http://www.w3.org/Styçe/CSS/Test/ é uma plataforma de testes que pode ser usada para verificar se um browser suporta ou não determinada propriedade.
13.6. Descritores HTML especiais
Dois descritores HTML têm importância fundamental em CSS. Eles são descritores es-truturais puros que não definem apresentação específica na folha de estilos nativa do browser. Com CSS é possível definir propriedades de apresentação para esses descritores. Eles são <DIV> e <SPAN>.
<SPAN> é um descritor que deve ser usado dentro de blocos de texto apenas. É cha-mado de descritor em-linha (
inline), já que não quebra a linha antes ou depois. Ele se assemelha 73 Parte 3 – Folhas de Estilo
a descritores como <B>, <I>, <SMALL>, <A HREF> e <SUP> que servem para formatar texto dentro de parágrafos, células de tabela, etc.
<DIV> é um descritor que define um bloco ou seção da página. Pode ser usado para di-vidir a página em seções (e subseções no
Internet Explorer) e permitir que sejam aplicados estilos específicos a essas seções. Descritores de bloco são <P>, <H1>, <TABLE>, etc. <DIV> define um bloco sem função ou aparência definida. A função e aparência será determinada em CSS.
13.7. Como incluir estilos em uma página
Há três formas de aplicar uma folha de estilos a uma página Web. Estas formas irão de-terminar a abrangência dos estilos: se afetarão um trecho limitado de uma página, se a toda a página, ou se irão afetar todo um site.
A primeira forma, mais abrangente, é a vinculação a um arquivo CSS. Isto é feito ligando a página HTML a um arquivo de folha de estilo, usando do descritor <LINK>). Este método permite que múltiplas páginas ou um site inteiro usem a mesma folha de estilos.
Para fazer um vínculo à uma folha de estilos externa, deve-se criar um arquivo de texto contendo um conjunto de regras de estilo em CSS, salvá-lo com uma extensão ".css" e chamá-lo a partir de todos os documentos HTML onde o estilo será aplicado. Não é preciso compilar ou qualquer coisa do tipo. Depois que as definições estiverem prontas, o estilo estará pronto para ser usado. Pode ser importado através do descritor LINK:
<HEAD> (...)
<LINK REL=STYLESHEET
HREF="http://internet-name/mystyles.css"
TYPE="text/css">
</HEAD>
O elemento <LINK> não tem descritor de fechamento e deve ser usado dentro do blo-co <HEAD>.
Uma segunda forma, permite que estilos sejam aplicados localmente, em uma única pá-gina, embutindo uma folha de estilos diretamente na página HTML dentro de um bloco for-mado pelos descritores <STYLE> e </STYLE>. Este método permite que você altere as propriedades de estilo de uma única página.
A linguagem que é embutida em um bloco <STYLE> é a mesma usada nos arquivos CSS. <STYLE> ... </STYLE> deve ser usado em <HEAD>. Um atributo
type informa o tipo de arquivo utilizado:
<style type="text/css">
P { font: 12pt "Times New Roman" bold;
color: red }
I { color: black }
</style>
As propriedades declaradas no bloco <STYLE> sobrepõem qualquer propriedades an-teriores do elemento (inclusive as de uma folha de estilos importada, se houver). É comum colocar todo o código entre comentários HTML (
<!--e -->) para proteger browsers antigos da exibição indesejada do código:
<style type="text/css">
<!--
P { font: 12pt "Times New Roman" bold;
color: red }
I { color: black }
-->
</style>
Finalmente, há uma forma de aplicar estilos diretamente a um descritor individual. Para fazer isto deve-se usar o atributo STYLE em quase qualquer descritor. Este método não cor-responde exatamente a uma "folha" de estilos, pois os estilos aplicados não são reaproveitáveis. Permite alterar a aparência de um único descritor, de um conjunto deles ou de um bloco de informações da página. Por exemplo:
<P
STYLE="color: green; font-size: 12pt">Este texto</P>
Esta propriedade é mais interessante quando aplicada em um descritor que é usado para agrupar vários outros, como <DIV>, que divide a página em seções ou <SPAN>, usado em situações bem específicas. Usar estilos desta forma é pouco diferente de usar atributos locais. Os benefícios de poder mudar a fonte, cores e outras características em todo o documento ficam mais difíceis.
Pode-se usar um, dois ou os três métodos ao mesmo tempo. As características definidas pelos mais específicos sobrepõem as definidas pelos mais genéricos. Por exemplo, suponha que o arquivo
estilos.css contenha apenas as seguintes regras:
H1 { color: green; font-size: 24pt} P { color: blue}
Suponha que ele seja carregado na página a seguir que possui um bloco <STYLE> com uma nova definição de P e H1.
<HEAD>
<link rel=STYLESHEET
<style type="text/css"><!--
P {font: 12pt "Times New Roman" bold;
color: red }
H1 {color: black }
--></style>
</HEAD>
href="estilos.css" type="text/css"> 75 Parte 3 – Folhas de Estilo
Mais adiante, existe um parágrafo e um título da forma:
<h1 style="color: navy">Auto da Compadecida</h1> <p style="color: black">Ariano Suassuna (Recife, 1955)</p>
Qual estilo irá predominar? Pela regra de que o mais específico sobrepõe o mais geral, teremos uma página onde os <h1> têm tamanho 24pt (do estilo importado), cor preta (valor sobreposto pelo estilo da página) e os <p> são vermelhos (sobreposto pelo estilo da página). Nas duas linhas acima (e nelas apenas), o <h1> será azul marinho (sobrepondo o estilo da página) e o <p> será preto.
13.8. Classes e IDs
Às vezes um parágrafo tem uma aparência diferente dos outros parágrafos em uma certa parte do texto. Para mudar o estilo dele, pode-se incluir as declarações em um atributo STYLE. Mas, se tal procedimento torna difícil a localização e a gerência dos estilos, pode-se usar um recurso para marcá-lo de forma que seja considerado diferente. Isto pode ser feito atribuindo-lhe uma identificação única. Em HTML 3.2, pode-se usar o atributo ID:
<P
ID=w779>Texto especial</P>
Para alterar as características deste parágrafo agora, pode-se usar o seu ID como seletor, da forma:
#w779
{color: cyan }
Se isto estiver em um arquivo CSS, todas as páginas que o usam e que tiverem um ele-mento com o ID #w779 serão afetadas. Se houver mais de um com o mesmo ID apenas o primeiro será afetado.
Melhor que usar ID é agrupar características semelhantes em classes. Uma classe é uma variação de um determinado objeto. Por exemplo, um texto teatral pode ter três parágrafos com apresentação diferente, representando as falas de três personagens. Se quiséssemos que cada um tivesse uma cor diferente, poderíamos declarar cada um como sendo de uma classe distinta:
<p
class=padre>Eu retiro o que disse, João</p> <p class=grilo>Retirando ou não retirando, o fato é que o cachorro enterrou-se em latim</p> <p class=bispo>Um cachorro? Enterrado em latim? </p> <p class=padre>Enterrado latindo, Senhor Bispo, Au, au, au, não sa-be? </p>
Para dar a cada parágrafo de um mesmo personagem (mesma classe) os mesmos atribu-tos, usa-se:
P.
grilo { color: maroon } P.padre { color: black } P.bispo { color: navy } 76 Parte 3 – Folhas de Estilo
Desta maneira, todos os textos que deverão ser lidos pelo personagem "Bispo" estarão em azul marinho.
Uma classe também pode conter descritores diferentes. Se todos os textos citados por um certo autor tivessem que estar em outra cor ou fonte, poderíamos criar uma classe sem citar o descritor:
.verde
{ color: green }
Todos os descritores que tiverem o atributo CLASS=verde serão afetados, por exemplo: <P class=verde>, <h3 class=verde>, <table class=verde>, etc.
13.9. Links (pseudo-classes e pseudo-elementos)
Para seletores especiais que mudam de estado, como o texto marcado com <A>, é pos-sível atribuir propriedades diferentes para cada estado:
A
:link {color: red} A:active {color: 660011} A:visited {color: black; text-decoration: none} A:hover {color: blue; text-decoration: underline}
muda as características dos links não-visitados, ativos e visitados. Assim como qualquer seletor, os links podem ser combinados com outros descritores:
P, A:link, H2 {color: red}
13.10. Seletores de contexto
Você também pode definir seletores que só serão aplicados se estiverem no contexto de um outro seletor, por exemplo:
P.verde EM {color: 000040}
indica que o EM só terá sua cor alterada se ocorrer dentro de um bloco P da classe "verde".
Os seletores de contexto podem ser bem longos:
.bispo P UL UL LI A.classX:link {font-style: italic }
fará com que apenas os links não visitados da classe "classX" que estejam dentro de itens de lista de segundo nível situados dentro de um parágrafo dentro de um bloco qualquer da classe "bispo" sejam mostradas em itálico.
13.11. Cascata de folhas de estilo
Existem seis diferentes folhas de estilo que podem ser definidas. Além das três formas que mostramos em seção anterior deste capítulo, há ainda, segundo a especificação, mais três folhas de estilos que podem afetar uma página: 1) uma folha de estilos que é importada por outra folha de estilos (isto é diferente daquela que é vinculada ao HTML, dentro de um
77 Parte 3 – Folhas de Estilo
<link>), 2) uma folha de estilos definida pelo usuário (ou leitor da página) e 3) a folha de esti-los
Todas estas folhas de estilo diferentes podem provocar uma grande confusão se não houver uma regra clara de como devem ser consideradas. Ainda há um sétimo fator que é a formatação introduzida pelo HTML, como nos descritores <font> e atributos align=center. Listando todas as folhas de estilos que podem afetar um texto, temos:
1.
2.
3.
4.
 
Um browser que siga a especificação CSS à risca obedece a seguinte ordem de precedên-cia: 1. Local, 2. Embutida, 3. Vinculada, 4. Importada, 5. HTML, 6. Leitor, 7. Browser
Na prática, as coisas não são tão bonitas. No
default do browser (que é usada quando outra folha não define os estilos). Folha de estilos default do browser: todos os browsers possuem regras comuns para formatar um texto. A especificação HTML não impõe um formatação padrão. Netscape Navigator por exemplo usa um fundo cinza como padrão e links azuis sublinhados. Já o Internet Explorer prefere um fundo branco. Folha de estilos definida pelo leitor: a especificação define a possibilidade do leitor estabelecer uma folha de estilos própria. Isto é parcialmente conseguido quando o browser permite que se escolha diferentes cores para fundo, texto e links. Folha de estilos vinculada ao HTML: é a folha de estilos que é importada pelo arquivo HTML através do descritor de ligação <link> Folha de estilos importada: uma folha de estilos externa (arquivo CSS) pode ser importada de dentro de outra folha de estilos (um outro arquivo CSS ou bloco <style> no HTML) u-sando um comando especial @import:
@import url (outroestilo.css)
5.
6.
7.
 
Folha de estilos embutida no HTML: é a folha de estilos que aparece na página HTML entre os descritores <style> e </style>. Folha de estilos local: é aquela que é aplicada localmente a um descritor usando o atributo style="lista de declarações". Estilo definido pelo HTML: atributos e descritores podem provocar alterações na aparência do texto, por exemplo: <font size>, <big>, <body bgcolor>, <p align=center>, etc. Internet Explorer para Macintosh, a ordem é respeitada. Na versão do Internet Explorer 3.0 para Windows, os estilos vinculados ao HTML têm mais importância que os embutidos (o mesmo ocorre com Explorer 4 e Navigator 4). No Netsca-pe Navigator 4 e Internet Explorer 4, os estilos aplicados via HTML têm precedência máxima (no Internet Explorer 3 a precedência funciona corretamente, mas não no 4). Com as diferenças exis-tentes nos browsers de hoje, não vale a pena ainda se aprofundar neste assunto. A solução ainda é testar, testar, testar antes de colocar no ar. 78 Parte 3 – Folhas de Estilo
 
14. Fontes
Fontes são estilos de apresentação consistentes aplicados a alfabetos. Uma fonte consiste de atributos que alteram a aparência de um símbolo, sem alterar o seu significado. Oferecem as informações necessárias para que uma letra ou símbolo possa ser representado graficamente.
Os atributos essenciais de uma fonte são:
Seu tipo (ou família)
Seu tamanho
Seu estilo (regular, itálico,
Seu peso (normal, negrito,
outline, etc.) light, black) • • • •
Para representar qualquer texto, portanto, é preciso escolher uma fonte, ou seja: um tipo, um estilo, um peso e um tamanho. Letras maiúsculas e minúsculas não são consideradas fontes diferentes, pois têm um significado distinto.
Os quatro atributos acima podem ser definidos em CSS através das propriedades
font-family, font-size, font-style e font-weight. Não é preciso definir todas pois sempre têm valores default. CSS oferece ainda font-variant, que permite considerar outras variações de uma fonte.
14.1. font-family
Uma família de fontes (tipo) é selecionada com a propriedade
A sintaxe é:
font-family. Esta pro-priedade aceita uma lista de valores separados por vírgulas representando nomes de fontes existentes ou não no sistema do usuário. No final da lista, pode ser incluída uma referência a uma família genérica, que será usada caso nenhum dos nomes coincida com o nome de uma fonte do sistema.
font-family
: fonte1, fonte2, fonte3, ..., fonte-genérica
Exemplos:
H1 {
font-family: garamond } H2 { font-family: arial, helvetica, sans-serif } H3 { font-family: courier, "courier new", monospaced } H4 { font-family: monospaced } 79 Parte 3 – Folhas de Estilo
As fontes



 <p style="font-family: 'times new roman', sans-serif">...</p>
 







14.2. font-size
O tamanho de uma fonte é alterado usando
font-size. Pode ser especificado em valo-res absolutos ou relativos. Para especificar um valor absoluto, pode-se usar:
font-size:
número(pt | px | cm | mm | pc | in) font-size: xx-small|x-small|small|medium|large|x-large|xx-large
O tamanho também pode ser especificado relativo ao elemento no qual o atual objeto está contido.
font-size:
tamanho_relativo (smaller, larger) font-size: comprimento (em ou ex) font-size: porcentagem%
Exemplos:
H1 {
font-size: 24pt} H1 { font-size: x-large} H1 { font-size: smaller} H1 { font-size: 1.5em} H1 { font-size: 150%} <H1 style="font-size: 1cm">
Os tamanhos de pontos devem ser especificados como valores inteiros (mesmo se usa-dos cm ou in). Os browsers podem formatar os tamanhos de forma diferente e os mesmos podem ser alterados pelos usuários nos browsers atuais. As unidades válidas são: pt (pontos), px (pixels), pc (paicas), cm (centímetros), mm (milímetros) e in (polegadas).
80 Parte 3 – Folhas de Estilo
Os tamanhos absolutos chamados pelo nome (xx-small, etc.) correspondem aos tama-nhos de 1 a 7 do descritor <font size> e podem variar de acordo com a família de fontes usada (variam bastante entre plataformas também). Veja um exemplo comparativo e o resultado no Internet Explorer para Windows:
<style>
p {font-family: serif}
.t1 {font-size: xx-small}
.t2 {font-size: x-small}
.t3 {font-size: small}
.t4 {font-size: medium}
.t5 {font-size: large}
.t6 {font-size: x-large}
.t7 {font-size: xx-large}
</style>
(...)
<p><span class=t1>xx-small</span> |
<span class=t2>x-small</span> |
<span class=t3>small</span> |
<span class=t4>medium</span> |
<span class=t5>large</span> |
<span class=t6>x-large</span> |
<span class=t7>xx-large</span> <br>
<font size="1">size=1</font> |
<font size="2">size=2</font> |
<font size="3">size=3</font> |
<font size="4">size=4</font> |
<font size="5">size=5</font> |
<font size="6">size=6</font> |
<font size="7">size=7</font> |</p>





Os tamanhos relativos funcionam como o <BIG> e <SMALL>, aumentando a fonte atual por 150%. A diferença é que podem passar além do limite xx-large (ou <font size=7>) ou xx-small (font size=1>).
Os comprimentos referem-se a unidades comuns em tipografia. Um "em" é uma distân-cia horizontal equivalente ao tamanho de uma fonte (se uma fonte tem 20 pontos de tamanho, um em corresponde a uma distância de 20 pixels de largura). Um "ex" é a altura das letras de caixa-baixa (sem incluir as hastes ascendentes e descendentes). Tanto "em" como "ex" usam valores relativos ao elemento que contém o elemento atual. São úteis principalmente em espa-çamento, sendo pouco usados em fontes.