View
15
Download
0
Category
Preview:
Citation preview
Seja Bem-Vindo ao Curso CSS-
Cascading Style Sheets
Conte Conosco Sempre e sinta-se a vontade para
realizar quantos cursos desejar!
Introdução
CSS é a mesma coisa que Style Sheets e que Folhas de Estilo.
Você provavelmente já deve ter visto esses nomes em várioslugares. CSS é mais uma forma de aperfeiçoar seus documentos,
o CSS tem muitos tipos de definição aqui veremos muitas delas.
A forma recomendada para formatar as páginas escritas em
XHTML baseia-se nos padrões "Cascading Style Sheets" (folhasde estilos em cascata), publicados pelo World Wide Web
Consortium (W3C).
A utilização deste padrão da Web permite ganhar tempo, dar
consistência e facilitar muito a escrita de páginas para a Web.Neste curso vamos aprender a usar folhas de estilos em cascata
(estilos CSS) para criar páginas mais flexíveis, mais leves, e
controlar o seu aspecto gráfico com maior precisão e com maiorfacilidade na correção de erros.
Os "Style sheets" ou "Folhas de Estilo" para a Web foram
propostos e desenvolvidos há alguns anos, mas só recentemente
eles ganharam uma divulgação mais ampla. A razão é a de que osstyle sheets são inúteis a não ser que haja navegadores que os
suportem, e nenhum browser largamente utilizado fez isso até que
a Microsoft começou a oferecer suporte parcial para osCascading Style Sheets (CSS) na versão 3.0 do Internet Explorer.
Atualmente é dado suporte para os style sheets, portanto, no IE
3.0 e superior, e no Netscape 4.0 e superior; ou seja,navegadores atuais certamente suportam essa formatação.
No que as Folhas de Estilos podem nos ajudar?
• Economizar o seu tempo
• Diminuir o tamanho do código de sua página.
• Sua página irá carregar mais rapidamente
• Mais facilidade de manter e fazer alterações na página
• Mais controle no layout da página
• e muito outros que você mesmo descobrirá...
Porque é que devemos formatar com estilos?
Vantagens dos estilos CSS
•Os estilos CSS foram adicionados pelo W3C às recomendaçãoHTML 4 e XHTML para resolver problemas muito sérios que
afetavam a qualidade das páginas escritas em HTML e
dificultavam a sua manutenção.
•A utilização de folhas de estilos externa permite poupar tempo,ganhar flexibilidade e aumentar a consistência das páginas que
constituem um website.
•Quando guardamos os estilos num arquivo externo e os
aplicamos a todas as páginas de um website, a modificação dediversas qualidades do aspecto gráfico passa a ser uma tarefa
fácil.
•As páginas que usam estilos CSS, para além de serem mais
fáceis de escrever, são também mais leves e carregam maisdepressa no navegador.
O "mecanismo" de cascata
As folhas de estilos CSS dão muita liberdade na forma de definiros estilos. No mesmo documento podemos utilizar um ou mais
arquivos externos, definir os estilos na seção head do documento
ou utilizar o atributo style nos elementos do HTML.
O navegador lê todas as definições de estilos que encontra equando aparecem estilos repetidos ele combina-os num só estilo
seguindo algumas regras simples.
Uma das regras da cascata diz que ao encontrar várias versões
para o mesmo estilo o navegador guarda a última que encontrou.Outra regra diz que alguns estilos são herdados pelos elementos
que se encontram dentro de outros elementos.
Porque é que a formatação com estilos é superior?
As etiquetas (tags) que definem os elementos do HTML foram
concebidas para definir conteúdos. O autor do HTML nunca teve
qualquer intenção de usar esta linguagem para definir estilos
gráficos para as páginas.
Os elementos do HTML foram idealizados para declarar coisascomo "Isto é um parágrafo", ou "Isto é um cabeçalho". Para isso
colocavam-se etiquetas como <p> ou <h1> ao redor do texto. A
forma como esta informação devia ser apresentada graficamenteera um problema que o navegador tinha de resolver tendo em
consideração o significado de cada elemento.Este conceito
perfeitamente racional era muito adequado enquanto o objetivodas páginas foi apenas a escrita e a partilha de textos na Web, mas
a rápida aceitação da Web fez com que as pessoas que davam
importância ao design também se interessassem por este meio.
Esse interesse levou a que fossem feitos esforços para criarpáginas graficamente elaboradas, mais ao gosto dos designers.
Um dos efeitos mais importantes desses esforços foi a completa
adulteração do propósito de diversos elementos. O elemento<table>, por exemplo, foi concebido unicamente para apresentar
tabelas com dados numéricos, mas os designers passaram a usá-
lo para colocar os elementos em diversos pontos das páginas emarranjos cada vez mais complexos.
Mas isto não era suficiente porque havia coisas que não podiam
ser feitas usando apenas os elementos disponíveis. Para dar aos
designers aquilo que eles pediam, os criadores dos navegadoresacharam que era boa ideia inventarem as suas próprias etiquetas
e acrescentaram atributos estilísticos aos que já existiam. Estas
extensões permitiram usar o HTML para dar cores e estilosdiferentes ao texto e aplicar outras formatações.
Entendendo Style Sheets
CSS, ou Cascading Style Sheets é uma recomendação do W3C,
assim como o XML e o HTML.
Style Sheets permite a separação do conteúdo dos documentos desua apresentação. E associando scripts aos elementos é possível
alterar o formato do documento assim como sua interface com o
usuário.
Anexando Style Sheets em documentos HTML
A linguagem HTML permite que qualquer trecho de código seja
adicionado à página. Para tanto, é utilizado o elemento <META>.Entretanto, você deve especificar a linguagem a ser utilizada,
como no exemplo abaixo:
Através de links
Você pode criar uma Style Sheet em um arquivo separado para
posteriormente aplicar tal estilo em todas as páginas do site.Utilizando este recurso adequadamente, é possível centralizar
quase toda a apresentação de um site em um ou mais arquivos.
Caso haja necessidade de mudança na apresentação do site, estaé feita em um único lugar.
É aconselhável que o arquivo de estilos possua a extensão .css
mas não é obrigatório. Outra extensão também funciona. É um
arquivo somente texto cujo formato é legível e de fácilcompreensão. Isto facilita a criação de Style Sheets utilizando
editores simples como o notepad.
Para associar uma Style Sheet armazenada em um arquivo
separado use o elemento <LINK> como no exemplo abaixo:
Incluindo CSS no documento
Nem sempre é necessário armazenar o estilo em um arquivo
separado. Os códigos de estilo podem ser colocados dentro decada documento HTML. Obviamente, os códigos colocados dentro
um documento HTML afetarão somente aquele documento.
É possível a utilização de estilos internos e estilos externos. Neste
caso, os estilos internos sobrepõem estilos externos se houverconflitos. Se não houver, os estilos internos são aplicados e
posteriormente são aplicados os estilos externos.
O elemento utilizado para adicionar o estilo ao documento é o
elemento <STYLE>. O atributo TYPE especifica o tipo MIME.Existem alguns outros atributos que serão abordados
posteriormente.
Definindo estilos junto com o elemento
CSS permite que sejam definidos estilos como atributo de um
elemento. Esta funcionalidade pode ser útil porque os estilosdefinidos com o elemento sobrepõem os estilos do documento e
mesmo estilos anexados.
Por exemplo: suponhamos que você queira alterar a cor de um
parágrafo destacando-o diante do resto do documento mas estaalteração é uma exceção. Então você pode utilizar o atributo
STYLE e atribuir a este o estilo a ser aplicado:
Estilos definidos junto com os elementos devem ser utilizados com
cuidado para que seja preservada uma das principaiscaracterísticas da CSS: a reutilização de estilos.
Importando Style Sheets
Estilos também podem ser importados de outros arquivos. Para
tanto, é utilizada o comando @import passando como parâmetrocaminho e o nome do arquivo. A maioria dos navegadores ainda
não suportam este comando e o elemento <STYLE> é
indispensável.
Importância do estilo
A utilização de estilo na construção de grandes sites é
fundamental. A utilização adequada pode contribuir nos seguintesaspectos:
- Existência de um padrão de cores e navegação para todo o site
- Reutilização de código
- Velocidade no carregamento das páginas
- Administração centralizada
- Personalização de sites.
Apesar das inúmeras vantagens a construção de estilos sólidos e
reusáveis é uma tarefa difícil e requer administração centralizada.
Mais tarde discutiremos os desafios enfrentados ao desenvolversites utilizando CSS.
Entendendo a ordem
Como dito anteriormente, você pode utilizar vários tipos de estilos
para controlar a aparência do seu site. O navegador estabeleceuma prioridade para cada estilo a ser aplicado como na lista a
seguir:
- Estilos definidos junto com o elemento;
- Estilos definidos no documento;
- Estilos anexados.
Embora não seja aconselhável você pode usar o palavra
importante para alterar esta precedência. No exemplo abaixo oestilo atribuído ao elemento H1 sobrepõe o estilo definido junto com
o elemento graças ao uso da palavra important:
Criando Style Sheets para cada tipo de Mídia
CSS permite também estilos diferentes para cada tipo de mídia
utilizada para apresentação deste estilo. Isto dá um enorme poderpara a CSS permitindo a utilização de um documento por
portadores de deficiência visual ou auditiva. Permite também aaplicação dedocumentos,
estilos especificamente para
o que resolve uma grande
impressão de
deficiência dosnavegadores.
A tabela abaixo descreve cada um dos estilos possíveis com a
CSS:
Como Criar Estilos
Cada estilo que você cria é definido como uma regra CSS. Cada
regra deve utilizar a seguinte sintaxe:
Explicação desta sintaxe:
Elemento - descreve o elemento de design ao qual o estilo seráaplicado. A mesma tag XHTML, mas sem os sinais de maior e
menor. Essa parte da regra é às vezes chamada de seletor.
Atributo - o aspecto específico do elemento que você quer usarcomo estilo. Deve ser um nome de atributo CSS válido, como o
atributo font-size.
Valor - a configuração aplicada ao atributo. Deve ser umaconfiguração válida para o atributo em questão, como 20pt (20
pontos) para font-size.
Atributo: valor - a parte declaração da regra. Você pode atribuirmúltiplas declarações, se você desejar separá-los com ponto-e-
vírgula (;). Não coloque um ponto-e-vírgula depois da última
declaração.
Agora é hora de exemplos. Eis uma regra CSS que especifica que
todos os títulos de nível 1 (tags<H1>) sejam exibidos em uma fonte
de 36 pontos e da cor verde:
Aqui está um exemplo de regra que diz que todos os títulos de nível
2 (tags <H2>) devem ter tamanho de 24 pontos e cor azul;
Você pode inserir quebras de linha e espaços em branco dentro da
regra como quiser. Assim, é possível ver mais facilmente todas asdeclarações e certificar-se de que colocou todos os sinais de
ponto-e-vírgula e colchetes nos lugares corretos.
Por exemplo, aqui está uma regra que diz que os parágrafos
aparecerão em fonte “comic sans ms”, 12 pontos, azul e recuadomeia polegada a partir da margem esquerda da página:
<body>
<p>
O texto deste parágrafo tem tipo de letra “comic sans ms”
</p>
</body>
</html>
Note como é fácil aplicar todas as declarações ao elemento
parágrafo (P) e como cada declaração, exceto a última, é seguida
pelo caracter de ponto e vírgula exigido.
As Folhas de Estilos
Você pode definir regras de CSS em três lugares. E, por definição,
pode utilizar uma combinação dos três métodos nos seus websites.
A maneira como as regras interagem entre si está relacionada à
parte “em cascata”. Os três lugares são:
1)em um documento separado fora de todos os documentos
HTML;
2) no cabeçalho de um documento HTML
3) dentro de uma tag de HTML.
Cada um destes métodos tem um nome e afeta as páginas HTMLem seu site de um modo diferente, como discutido aqui:
Externo: significa que você coloca as regras de CSS em um arquivo
separado, e então sua página HTML pode fazer um link para esse
arquivo. Essa abordagem lhe permite definir regras em um ou maisarquivos que podem ser aplicadas em alguma página do seu web
site.
Incorporado: significa que você especifica as regras de CSS nocabeçalho do documento. As regras incorporadas afetam somente
a página atual.
Inline: significa que você especifica as regras de CSS dentro da tagde HTML. Essas regras afetam somente a tag atual.
Estilos externos
Para definir um conjunto de regras de estilo que você podefacilmente aplicar em alguma página do seu site, é preciso colocar
as regras em um arquivo de texto. Você pode criar este arquivo
com um editor de textos simples, como o notepad do Windows, edar ao nome desse arquivo a extensão “css”.
Sempre que quiser utilizar esses estilos em uma nova página,
basta colocar uma tag <link> no cabeçalho que referencie esse
arquivo .css. Veja o exemplo:
Arquivo meu_estilo.css
H1{font-family:’comic sans ms’;
Font-size: 36pt;
Color: blue}
P {font-family: ‘Courier’;
Margin-left: 0.5in}
Agora, para utilizar os estilos definidos neste arquivo .css vocêprecisa adicionar a tag a seguir ao cabeçalho da página, onde
nome_do_arquivo é uma referência absoluta ou relativa ao arquivo.css.
OBS: Você deve inserir este texto entre as tags <head>...</head>
e colocar a localização correta do seu arquivo e seu nome.
Estilos incorporados
Se quiser criar um conjunto de estilos que se aplicam a uma única
página, você pode configurar os estilos exatamente como fizemos
no exemplo dos estilos externos - mas em vez de colocar as tags<style>...</style> e as regras em um arquivo separado, coloque
estas tags na própria página HTML. A estrutura básica de uma
página da web que utiliza estilos incorporados é semelhante aoseguinte código:
Estilos inline
Os estilos inline são os que têm menos efeitos. Eles afetam
somente a tag atual - não outras tags na página e tampouco outrosdocumentos. A definição de estilos utilizando o atributo style faz-
nos perder muita das vantagens das folhas de estilos porque
acaba por misturar estilos com conteúdos. Esta forma de definirestilos deve ser usada com moderação e apenas quando
precisamos aplicar um estilo uma única vez a um único elemento.
A sintaxe para definir um estilo inline é a seguinte:
Note que em vez das tags <style>...</style>, você apenas utiliza
um atributo style dentro da tag para definir o estilo. E, em vez decolocar as regras de CSS entre colchetes, você as coloca entre
aspas, separando-as com ponto-e-vírgula como de costume.
Adicionar regras para uma Style Sheet
Tanto Style Sheets anexadas quanto no documento permitem a
definição de um ou mais elementos.
Por exemplo, você deseja criar uma Style Sheet que define estilospara os elementos <H1>, <H2> e <P>. Cada definição de estilo é
chamada de regra. Uma regra contém um seletor (que é o próprio
elemento), seguido da declaração (a definição do estilo). Oexemplo abaixo mostra uma regra que define um estilo para cada
ocorrência do elemento <H1>:
A declaração é colocada entre chaves ({}). Cada item na
declaração possui duas partes: O nome da propriedade e o valoratribuído a esta, separado por dois pontos (:). No exemplo abaixo,
color é o nome da propriedade e blue é o valor atribuído a esta.
Existes dezenas de propriedades as quais se aplicam tipospredefinidos e certos intervalos de valores:
Atribuindo múltiplas propriedades em uma regra simples
Múltiplas propriedades podem ser atribuídas em uma única
declaração. Isto é feito separando cada atribuição com o sinal deponto e vírgula (;). No exemplo abaixo, o navegador mostra cada
ocorrência do elemento <H1> usando a cor azul, fonte 12
centralizada. Para todas as outras propriedades o navegadorutilizará os valores padrão:
Agrupando seletores juntos em uma regra simples
Caso seja necessária a definição de um mesmo estilo para vários
elementos, esta pode ser feita listando os estilos individualmente.Entretanto, existe uma maneira mais eficiente de fazer a mesma
ação. Os elementos (ou seletores) podem ser agrupados de modo
a definir uma regra única para todo o grupo. No exemplo abaixo osseletores são agrupados e uma única regra é atribuída:
P, UL, LI {font-size: 12pt}
Definindo relacionamentos Pai-Filho nas regras
Usando CSS é possível especificar quando um estilo é aplicado à
um elemento. Por exemplo, você pode querer definir dois estilospara o elemento <LI>: um que se aplica quando ele for filho do
elemento <UL> e outro quanto ele for filho do elemento <OL>. Para
tanto, você utiliza seletores contextuais. Seletores contextuaisdefinem a sequência exata de elementos para o(s) qual(is) um
estilo será aplicado.
Note que a lista de seletores não é separada por vírgula.
Separando cada seletor por vírgula os estilos atribuídos serãoaplicados aquele grupo de elementos.
Entendendo Herança
Os elementos herdam certas propriedades de seus pais. Por
exemplo, todas os elementos dentro do elemento <BODY> (<P>e<UL>) herdam certas propriedades deste. Assim como o elemento
<LI> herda propriedades do elemento <UL> no qual ele está
contido. Veja o exemplo:
A Style Sheet para este exemplo muda a cor do elemento <P> para
azul. Não há definição para o elemento <EM>. Devido ao fato doelemento <EM> está dentro do elemento <P>, <EM> herda a
propriedade color do elemento <P>.
Trabalhar com Classes em Style Sheets
Uma classe define a variação de um estilo, o qual é referenciado
através de uma ocorrência específica de um elemento utilizando oatributo CLASS. Por exemplo, você pode definir três variações do
estilo H1 e então usar cada variação em um contexto apropriado.
Uma classe é definida normalmente, como é definido um estilo.
Apenas é adicionado o nome da classe no final do elemento,separado por ponto, assim como no exemplo:
Quando o elemento <H1> é adicionado ao documento, o atributo
CLASS é utilizado para atribuir qual estilo será utilizado.
Uma classe não precisa estar ligada à um elemento. As classes
podem ser declaradas sem nenhum elemento. Assim, qualquerelemento que utilize aquela classe utilizará aquele estilo:
Definindo um estilo para um elemento específico
Como já discutido anteriormente, você pode declarar estilos junto
com o elemento. Entretanto, para facilitar a leitura do documento,você pode atribuir um ID aos elementos e então associar estilos à
este ID. Para declarar o estilo para um ID é usado o símbolo (#).
Somente aos atributos com aquele ID são aplicados os estilos.
O exemplo abaixo declara um estilo para o ID test. Ele também usao elemento <P> e atribui a este o ID test:
Pseudo-classes e Pseudo-elementos
Em CSS1, um estilo geralmente é associado a um elemento com
base na posição que este elemento ocupa dentro da estruturahierárquica do documento. Isto é suficiente para uma grande
variedade de estilos, mas não atende a alguns efeitos comuns.
O conceito de pseudo-classes e de pseudo-elementos pretende
suprir esta área, permitindo que informações exteriores possaminfluenciar o processo de formatação do documento.
Pseudo-classes e pseudo-elementos podem ser usados como
seletores na CSS, mas eles não existem dentro da HTML. Mais
exatamente, eles são 'inseridos' pelo navegador, sob certascondições, para serem usados como elos de ligação com as folhas
de estilo. Eles são referidos como 'classes' e 'elementos' porque
esta é uma maneira conveniente de descrever seucomportamento. Mais especificamente, seu comportamento é
definido por uma tag fictícia de sequência.
Pseudo-elementos são usados para especificar sub-partes de
elementos, enquanto pseudo-classes permitem às folhas de estilo
diferenciar entre tipos diferentes de elementos. Abaixo vemos um
exemplo de utilização da pseudo-classe Anchor:
Todos os elementos 'A' com um atributo 'HREF' serão classificados
em um, e apenas um, destes grupos (ou seja, as definições dasposições locais dos links não serão afetadas). Os navegadores
podem decidir mover um elemento de um grupo a outro (de
'visitado' para 'não visitado', por exemplo, após um certo tempo).Um 'link ativo' é aquele que está sendo selecionado no momento
pelo leitor (está sendo 'clicado').
Como adicionar comentários em Style Sheets
Assim como em qualquer linguagem de programação, em CSS é
possível adicionar comentários para melhor documentar o código.Tanto para linhas de comentário quanto para blocos, a sintaxe é a
mesma:
Trabalhar com Tags Personalizadas
Com as classes de estilo, é possível definir diversas variações de
uma única tag. Por exemplo, você poderia fazer um estilo deparágrafo "texto alinhado à direita", um estilo de parágrafo "texto
centralizado" e assim por diante, criando múltiplos temas em
torno da tag de parágrafo (<p>).
Você pode definir classes de estilo tanto em folhas de estiloexternas como nas incorporadas (não há sentido em definir uma
classe em um estilo inline!). A sintaxe é praticamente idêntica à
sintaxe normal para os estilos externo e incorporado, com adiçãode um ponto e o nome da classe depois do elemento no qual será
utilizado o atributo.
Para dar um exemplo mais prático, uma classe de estilo muito
utilizada é a seguinte:
Depois você pode apenas adicionar o atributo class="meuslinks"
aos links em que desejar que fiquem azuis e não-sublinhados, porexemplo. Veja como deve ficar o código:
Agrupar seletores
Se precisarmos aplicar os estilos em mais do que um elemento,
podemos agrupar os seletores que partilham as mesmasdefinições. Para isso, os escrevemos um a um, separados por
vírgulas. No exemplo seguinte, os elementos de <h1> até <h6>
partilham todos a mesma definição:
Seletores de classe
Os seletores de classe permitem definir estilos diferentes que
podem ser aplicados ao mesmo elemento. Imagine que vocêprecisa ter dois tipos diferentes de parágrafo no documento: um
alinhado à direita e outro alinhado ao centro. Vejamos como os
seletores de classe tornam isto muito fácil:
Nota: O atributo class, como qualquer outro atributo, só pode ser
especificado uma única vez num dado elemento. O exemploseguinte está errado:
Os seletores de classe também podem ser definidos sem
colocarmos o nome de um elemento no início da definição. Quando
isso acontece, as definições podem ser aplicadas a qualquer
elemento cujo atributo class tenha o valor correto. O exemploseguinte define uma classe que pode ser utilizada com qualquer
elemento do HTML:
Seletor de id
O seletor de id é diferente do seletor de classe porque se aplica a
um único elemento da página. As regras do HTML ditam que osvalores do atributo id não podem repetir-se numa mesma página.
Daí resulta que o número de elementos no documento com um
determinado id é um ou é zero.
A regra de seleção para o estilo definido no exemplo seguinteindica que ele só pode ser aplicado a um elemento <p> que tenha
o valor "para1" no atributo id:
Se quisermos que a regra se aplique a qualquer elemento que
tenha o id para1 basta escrevê-la na forma seguinte:
A regra acima é aplicável a qualquer elemento que tenha o id
correto, porque o seletor * diz que ela se aplica a todos oselementos. No exemplo seguinte ela seria aplicada aoelemento<h1>:
O Posicionamento dos Elementos
No mundo das publicações, camadas são blocos retangulares de
texto e imagens que podem ser posicionados em qualquer lugarda página. Estas camadas podem ser ocultas e sobrepostas.
Antes da CSS, era impossível construir páginas HTML utilizando
este conceito. O documento era exibido sequencialmente sem a
possibilidade de sobrepor camadas.
Já com CSS é permitida a construção de blocos de texto que sesobrepõem, assim como ocultar ou exibir determinados blocos.
Posicionando um Elemento HTML
CSS fornece dois modos de posicionar elementos no navegador:
RELATIVE e ABSOLUTE.
No modo RELATIVE, o navegador posiciona o elemento emrelação à sua posição normal, ou seja, onde o elemento deveria
realmente aparecer.
No modo ABSOLUTE, o navegador posiciona o elemento em
relação ao elemento pai.
Para posicionar o elemento são utilizadas as propriedades TOP eLEFT:
No exemplo acima, o elemento é posicionado à 100 pixels da borda
superior do elemento pai e à 20 pixels da borda esquerda doelemento pai. Quando o elemento a ser posicionado não possui
pai, este é posicionado em relação às bordas do navegador.
A unidade de medida padrão para LEFT e TOP é pixels. Pode ser usado
também valores percentuais, que equivale ao percentual doelemento pai.
O exemplo abaixo posiciona uma imagem à 40 pixels do topo e
100 pixels da borda esquerda do elemento <BODY>. Como noelemento <BODY> não existe posicionamento definido e ele não
tem nenhum elemento pai, este assume a posição 0, 0.
Sobrepondo elementos
Utilizando as propriedades TOP e LEFT é possível sobrepor
elementos e a ordem de exibição é a mesma ordem em que elesestão no código, ou seja, o último bloco de código será o último
bloco a ser montado na tela, sobrepondo todos os outros. Esta
ordem de sobreposição pode ser alterada utilizando apropriedade Z-INDEX.
A propriedade Z-INDEX aceita valores inteiros positivos. Um
elemento com a propriedade Z-INDEX igual a 10 sobrepõe um
elemento com a propriedade Z-INDEX igual a 1.
O exemplo abaixo mostra 2 elementos usando a propriedade Z-INDEX para manipular a ordem de exibição:
Aninhando o posicionamento de elementos
Nem sempre é necessário que alguns elementos precisem estar
contidos dentro de outros. Entretanto, esta prática pode serinteressante, visto que quando você posiciona o elemento pai,
todos os elementos filhos seguirão aquele posicionamento. Veja o
estilo abaixo:
Veja o comportamento das páginas abaixo. A esquerda possui 2
elementos distintos. O posicionamento do ID test1não influencia noID test2. Já no outro exemplo, o posicionamento do ID test1 está
diretamente ligado ao posicionamento do ID test2.
Posicionando elementos através de script
Como já visto anteriormente, CSS permite o controle de como o
documento é apresentado. Entretanto, todas as propriedades daCSS podem ser manipuladas através da utilização de scripts.
Lembrando que esta manipulação varia de navegador para
navegador.
Dado o ID de um determinado elemento, este pode ser referenciado utilizando o DOM, como no exemplo abaixo:
Document.all.item(id, 0) .style.propery
Onde id é o ID do elemento e 0 é a primeira ocorrência deste ID.
Usando scripts para ocultar ou exibir elementos
Para ocultar ou exibir elementos, usa-se a propriedade visibility. O
valor hidden oculta o elemento e o valor “” exibe o mesmo. Oexemplo abaixo mostra como ocultar e exibir elementos utilizando
JavaScript:
Document.all.item(“teste”, 0), style, visibility = “hudden”
Mudar o Tamanho de um Elemento
Assim como é possível controlar a posição do elemento é possível
também controlar a dimensão do elemento.
Para isto, são usadas as propriedades WIDTH para largura eHEIGHT para altura. Assim como LEFT E TOP, a unidade de
medida padrão é pixels, mas podem ser usados valores
percentuais.
Também pode ser usado o valor AUTO para que o navegadorautomaticamente determine o tamanho do elemento.
#element {position: adsolute; top: 100; left: 20; width: 100; height: 100}
A propriedade WIDTH não é usada para definir exatamente a largura
do elemento. Esta propriedade serve apenas para o caso em que
haja algum elemento dentro, o qual é definido pela propriedadeWIDTH, e este seja maior que o mesmo.
Existe ainda a propriedade OVERFLOW, que determina como o
navegador se comporta no caso em que o conteúdo de umelemento exceda o tamanho do elemento.
Os possíveis valores são NONE, CLIP e SCROLL. O exemplo
abaixo mostra o comportamento de um bloco de texto quando
posicionado e dimensionado utilizando CSS:
Como Estilos Concorrentes são Combinados
Um documento HTML pode definir ou utilizar mais do que uma
folha de estilos. Quando isso acontece, é possível que algumaspropriedades sejam definidas numa folha e definidas de novo
numa outra. Nestes casos, o navegador deve aplicar regras para
decidir qual das definições é mais importante.
A ordem da cascata
Quando um estilo é definido mais do que uma vez, qual dasdefinições o navegador deverá escolher? A primeira? A última?
Nenhuma delas? Para decidir, o browser aplica as seguintes
regras (listadas por ordem crescente de importância):
1.Estilos definidos por omissão (são aplicados sempre que nãoexistirem outros que se sobreponham a eles)
2.Estilos definidos numa folha de estilos interna (dentro do
elemento <style>) ou num arquivo externo
3.Estilos "inline" (definidos através do atributo style nos elementos
do documento HTML).
Assim, temos que os estilos que são definidos no próprio elemento,através do atributo style, têm a prioridade mais elevada. As
definições que o atributo style faz sobrepõem-se a qualquer
definição que tenha sido feita antes.O exemplo de aplicação seguinte ilustra melhor este mecanismo.
Apesar de o exemplo de aplicação anterior ser elucidativo,
analisemos mais um exemplo. Suponhamos que uma folha deestilos externa define as seguintes propriedades para o seletorh3:
H3
{
Color: red;
Text-align: left;
Font-size: 8pt
}
Mas existe uma folha de estilos interna com as seguintes propriedades também para o seletor h3:
{
test-align: right;
font-size: 20pt
Se a página que contém a folha de estilos interna usar o elemento
<link> para se ligar à folha de estilos externa indicada antes, então
as duas definições serão combinadas para produzir a seguinteversão final para o seletor h3:
h3
{
color: red;
text-align: right;
font-size: 20pt
}
A cor foi herdada da folha externa, mas o alinhamento do texto e o
tamanho de letra foram substituídos pelas definições dadas nafolha interna.
A Herança de Estilos
Algumas propriedades CSS definidas para um elemento passam
automaticamente a ser aplicadas aos descendentes desseelemento. Quando isso acontece, diz-se que as propriedades são
herdadas. O exemplo seguinte mostra como funciona este
mecanismo de "herança" de estilos:
No exemplo que acabamos de ver, a folha de estilos diz que o texto
dos elementos <div> deve ter cor azul. O parágrafo que está dentrode um elemento <div> herda a cor azul porque a propriedade
color é herdada pelos descendentes de um elemento. Já o
segundo parágrafo não está dentro de nenhum elemento que lhedeixe uma "herança" (que neste caso é a propriedade color), por
isso o seu texto tem a cor normal.
Há outras propriedades que só afetam o elemento ao qual são
aplicadas e não se propagam aos seus descendentes. Diz-se queestas propriedades não são herdadas. O exemplo seguinte é
semelhante ao anterior, mas agora à propriedade herdada color,
juntamos a propriedade border, que não é herdada:
Como pode observar, a propriedade color propaga-se ao elemento
<p> mas a propriedade border não.
Propriedades em CSS
As folhas de estilo definem a visualização de um documento pela
atribuição de diversos valores às suas propriedades de estilo. Estalição lista estas propriedades e seus valores possíveis.
Notação para os Valores das Propriedades
No texto que se segue, os valores permitidos para cada
propriedade são listados usando a seguinte sintaxe:
Valor: N | NW | NE
Valor: [ <comprimento> | thick | thin ]{1,4}
Valor: [<família> , ]* <família>
Valor: <url>? <cor> [ / <cor> ]?
Valor: <url> || <cor>
As palavras entre "<" e ">" indicam o tipo do valor.
Os tipos mais comuns são <comprimento>,<percentagem>, <url>,
<número> e <cor>; eles estão descritos na lição Unidades de
Medida. Os tipos mais específicos de valores (<família-da-fonte> e<estilo-da-borda>) estão descritos nos tópicos correspondentes.
As outras palavras são palavras-chaves que devem ser usadas tal
como aparecem, sem as aspas. A barra (/) e a vírgula (,) também
devem ser empregadas tal como estão definidas.
Vários parâmetros indicados em sequência significa que todos elesdevem ser definidos, na ordem em que aparecem. Uma barra (|)
separa alternativas: apenas um dos parâmetros deve ser definido.
Uma barra dupla (||) significa que tanto o parâmetro A como o B,
ou mesmo ambos, podem ser definidos, em qualquer ordem.Colchetes ([]) são usados para agrupar parâmetros. Em ordem de
prioridade, uma sequência de parâmetros vale mais que a barra
dupla (||), e a barra dupla vale mais que a barra simples (|).Portanto,
a b | c || d e é equivalente a [ a b ] | [ c || [ d e ]]
Cada tipo de valor, palavra-chave ou grupamento ([]) pode vir
seguido por um dos seguintes modificadores:
•Um asterisco (*) indica que o tipo, palavra ou grupo que o precedepode ser repetido zero ou mais vezes.
•Um sinal positivo (+) indica que o tipo, palavra ou grupo que o
precede é repetido uma ou mais vezes.
•Um ponto de interrogação (?) indica que o tipo, palavra ou grupo
que o precede é opcional.
•Um par de números entre chaves ({A,B}) indica que o tipo, palavraou grupo que o precede é repetido no mínimo A e no máximo B
vezes.
Propriedade Background (Fundo do Elemento)
As propriedades dos fundos dos elementos definem cores de
fundo e imagens de fundo para os elementos do HTML. Estaspropriedades permitem-nos controlar as cores e as imagens de
fundo dos elementos (posição, repetição, etc.).
Vamos às principais:
▪ Propriedade Background:
-Oferece-nos uma forma abreviada para escrever todas aspropriedades do fundo numa única declaração.
-Esta propriedade aceita os valores que podemos dar a todas as
restantes propriedades desta relação (background-color,
background-image, background-repeat, background-attachment ebackground-position).
▪ Propriedade background-attachment:
-A propriedade background-attachment indica se a imagem de
fundo deve permanecer imóvel na janela do navegador ou seacompanha o conteúdo quando o movemos (scroll).
- Valores: scroll, fixed.
▪ Propriedade background-color:
- Define a cor de fundo de um elemento.
- Valores: color-rgb, color-hex, color-name, transparent.
▪ Propriedade background-image:
- Define uma imagem de fundo para ser usada no elemento.
- Valores: url ou none.
▪ Propriedade background-position:
-Define o local onde se começa a desenhar a imagem de fundo.
-Valores: top left, top center, top right, center left, center center,center right, bottom left, bottom center, bottom right, x-% y-%, x-
pos y-pos.
▪ Propriedade background-repeat:
-Estabelece se a imagem de fundo deve repetir-se (formando um
mosaico) ou não, e as direções da repetição.
- Valores: repeat, repeat-x, repeat-y, no-repeat.
Exemplos de utilização de algumas propriedades e valores:
- Propriedade Font (Tipo de Letra)
As propriedades do tipo de letra definem aspectos estilísticos das
letras com que se escreve o texto.
Elas permitem-nos escolher entre vários conjuntos de caracteresque desenham as letras de forma diferente, controlar os tamanhos,
ajustar as suas formas, etc.
As principais propriedades de fontes e respectivos valores, são:
o Propriedade font:
-Aceita os valores que podem ser dados às restantespropriedades desta relação, mais aqueles que se encontram nos
valores. Oferece-nos uma forma abreviada para definir numa única
declaração todas as propriedades relativas ao tipo de letra.
- Valores: icon, menu, message-box, small-caption, status-bar.
o Propriedade font-family:
-A propriedade font-family consiste numa lista com os tipos de
letra que o navegador pode escolher para escrever os textos. Alista está ordenada de forma prioritária: a primeira escolha aparece
primeiro, a seguir vem a segunda escolha e assim
sucessivamente. O navegador escolhe o primeiro tipo que sejacapaz de usar. Os nomes dos tipos de letra podem ser nomes de
família ou nomes genéricos.
- Valores: family-name, generic-family.
o Propriedade font-size:
-Define o tamanho de um tipo de letra.
-Valores: xx-small, x-small, small, medium, large, x-large, xx-
large, smaller, larger, comprimento %.
o Propriedade font-size-adjust:
-Se o tipo de letra (font) escolhido não estiver disponível, o
navegador vê-se obrigado a usar um outro tipo diferente. Apropriedade font-size-adjust especifica o "aspect value" do tipo de
letra escolhido para que o navegador possa substituí-lo por um
outro tipo que esteja acessível preservando a altura da letra "x" emantendo a legibilidade do texto.
- Valores: none, número.
o Propriedade font-stretch:
-A propriedade font-stretch provoca uma expansão ou uma contração horizontal no tamanho da letra.
-Valores: normal, wider, ultra-condensed, extra-condensed,
condensed, semi-condensed, semi-expanded, expanded, extra-
expanded, ultra-expanded.
o Propriedade font-style:
- Define o estilo de letra a usar.
- Valores: normal, italic, oblique.
o Propriedade font-variant:
-Escreve o texto usando um tipo de letra "small-caps" ou o tipo
normal.
- Valores: normal, small-caps.
o Propriedade font-weight:
- Define a espessura do traço com que são desenhadas a letras.
- Valores: normal, bold, bolder, lighter, 100, 200, 300, 400, 500,
600, 700, 800, 900.
Exemplos da aplicação de algumas propriedades e valores de
font:
- Definir o tipo de letra para um texto
- Definir o tamanho das letras
- Propriedade de Texto
As propriedades de texto definem o aspecto gráfico a dar ao texto.
Estas propriedades permitem-nos controlar cores, aumentar oureduzir o espaço entre os caracteres, alinhar o texto, escolher o
tipo de letra, decorá-lo, etc.
Exemplos de algumas propriedades e valores para texto:
- Definir a cor do texto
- Inícios de parágrafo
- Propriedade das Margens
As margens de um elemento são constituídas por espaço em
branco que fica ao seu redor e o separados elementos adjacentes.Se o valor de uma margem for positivo o elemento afasta-se dos
outros que lhe são adjacentes, mas se for negativo ele aproxima-
se dos outros elementos. Isto significa que podemos usar asmargens para afastar e aproximar os conteúdos de dois ou mais
elementos e até sobrepô-los. As quatro margens podem ser
controladas todas ao mesmo tempo ou separadamente.
Exemplo:
- Definir a margem esquerda para um texto
Como vimos antes, o limite de um elemento designa-se por
"border". Ao redor do limite podemos desenhar linhas de contorno.O padrão CSS permite-nos especificar o estilo, a cor e a espessura
das linhas que delimitam um elemento do HTML. Antes de termos
os estilos CSS, para desenharmos linhas ao redor de um elemento,tínhamos de colocá-lo dentro de uma tabela e desenhar as linhas
usando os elementos da tabela juntamente com o atributo "border".
- Propriedades de Padding
As propriedades padding controlam o espaço em branco que
separa os conteúdos de um elemento dos seus limites ("border").É proibido usar valores negativos para estas propriedades porque
isso colocaria os conteúdos fora do elemento, o que não faria
sentido. Os quatro lados podem ser controlados todos de umavez ou separadamente.
Exemplo:
- Definir o espaço em branco entre o limite esquerdo e o conteúdo de uma célula
de tabela
- Propriedades de Dimensão
As propriedades relativas a dimensões são usadas para controlar
a altura e a largura dos elementos e o espaço entre linhas de texto.
Exemplo:
- Definir a altura e a largura de uma imagem
- Propriedades de Posicionamento
- Propriedade de Listas e Marcadores
Unidades de Medida
Medição de distâncias numa página HTML
O valor de um comprimento escreve-se como um número seguidode uma abreviação que indica asunidades de medida. Não
podemos colocar espaços entre o número e as unidades (não
escreva 2 cm mas sim 2cm). Quando o comprimento é 0 (zero) não
é preciso indicar as unidades.
A tabela seguinte descreve as unidades de medida que podemos usar em CSS.
Definição de cores
Esta tabela limita-se a resumir o que vimos no curso.
Bibliografia
-https://www.w3schools.com/css/
-http://tableless.github.io/iniciantes/manual/css/
Recommended