Buscar

aula_03_CSS

Prévia do material em texto

PROGRAMAÇÃO PARA INTERNET Prof. Cayo Fontana
CSS
FOLHAS DE ESTILOS EM CASCATA
SUMÁRIO
 Introdução
 Sintaxe
 Comentário
 Formas de Declaração
 Seletores
 Precedência e Especificidade
 Cascata e Herança
INTRODUÇÃO
No passado, exclusivamente nas questões de definição de leiaute na web, a 
estilização do HTML era feito no próprio HTML, com a utilização de algumas tags
para estilos, como a tag <font>
<h1>
<font color="#00FF00">Título</font>
</h1>
À princípio, não parece estranho definir estilos com elementos HTML específicos para 
tal aplicabilidade...
INTRODUÇÃO
Imagine que você possua um site com:
 40 diferentes conteúdos (arquivos HTML’s distintos)
 4 títulos em média para cada arquivo
 160 tags de definição de fonte no total (código inflado)
Seu cliente deseja que você altere o tipo da fonte e a cor dos títulos...
 Isso dará um pouco de trabalho!
Solução proposta: CSS (Cascading Style Sheet) – Folha de Estilos em Cascata
INTRODUÇÃO
Definição
 Linguagem de Folha de estilos utilizada para padronizar as definições e 
configurações de leiaute no (X)HTML (pode-se utilizar em documentos XML)
 CSS define como e qual é a forma de apresentação em que os elementos HTML, 
em um dado documento, serão exibidos
Vantagens
 Segregação de código HTML (estruturação) de código de estilização
 Documentos e códigos HTML mais coesos e “limpos”
 Facilidade para alterar um conjunto de elementos (independente do tipo)
SINTAXE
Estrutura simples: declaração de propriedades e valores separados por um sinal de 
dois pontos “:”, e cada propriedade é separada por um sinal de ponto e vírgula “;”
background-color: yellow;
color: blue;
Estas definições de propriedades exibirão o conteúdo de elemento(s) HTML com o 
texto na cor azul e com o fundo amarelo
Existem 3 diferentes maneiras de estilizar conteúdo(s) e documento(s) HTML utilizando 
CSS
SINTAXE
Estrutura simples: declaração de propriedades e valores separados por um sinal de 
dois pontos “:”, e cada propriedade é separada por um sinal de ponto e vírgula “;”
background-color: yellow;
color: blue;
Estas definições de propriedades exibirão o conteúdo de elemento(s) HTML com o 
texto na cor azul e com o fundo amarelo
Existem 3 diferentes maneiras de estilizar conteúdo(s) e documento(s) HTML utilizando 
CSS
SINTAXE
Atributo Style
O atributo style é um atributo HTML global utilizado para definições de estilos 
diretamente no elemento HTML
<p style="color: blue; background-color: yellow;">
O conteúdo será exibido com fonte em azul e fundo amarelo.
</p>
SINTAXE
Atributo Style
O atributo style é um atributo HTML global utilizado para definições de estilos 
diretamente no elemento HTML
<p style="color: blue; background-color: yellow;">
O conteúdo será exibido com fonte em azul e fundo amarelo.
</p>
Não recomendado!
 Não apresenta as vantagens da utilização do CSS no HTML
SINTAXE
Elemento (Tag) Style
Outra maneira de se utilizar o 
CSS é declarando suas 
propriedades dentro de uma 
tag <style>
Utilizando um Seletor CSS, foi 
estabelecido que todo elemento 
p será apresentado com fonte 
azul e fundo amarelo
<style>
p {
background-color: yellow;
color: blue;
}
</style>
<p>
O conteúdo será exibido com 
fonte em azul e fundo amarelo.
</p>
SINTAXE
Arquivo Externo
Definições de CSS em um arquivo fisicamente separado do arquivo HTML
Necessário informar, no HTML atual, uma ligação com o documento de estilos
Um documento de folha de estilos em cascata, possui a extensão .css
Vantagens
 Projeto com maior organização (HTML coeso e limpo)
 Reusabilidade de definições de estilos para elementos HTML
 Desempenho na manutenibilidade do código
SINTAXE
Arquivo Externo
Ligação entre os arquivos HTML e CSS 
deve ser feita dentro da tag <head> 
do HTML
<link rel="stylesheet" 
href="estilos.css">
O conteúdo de um arquivo CSS recebe 
apenas a definição dos estilos:
Exemplo de arquivo CSS:
p {
background-color: yellow;
color: blue;
}
Elemento
HTML
Propriedade
CSS
Valor da
Propriedade
COMENTÁRIO
Comentários em código CSS são definidos pela declaração composta de dois 
caracteres: a barra “/” e o asterisco “*”
Para iniciar um comentário, a composição da declaração é feita pelo caracter barra
Inserção de comentários de código CSS é através de 
SELETORES
São elementos de ligação entre o documento HTML e o estilo CSS
O seletor especifica qual(is) elemento(s) receberão o tratamento definido no bloco 
de declaração
A declaração configura o efeito que o seletor terá, e é composta por um par, ou 
conjunto de pares, propriedade: “valor”, dentro de um bloco de declaração
O bloco de declaração é aberto com uma chave esquerda “{” e fechado com uma 
chave direita “}”
Um bloco de declaração é sempre precedido de um – ou um conjunto – de seletor
SELETORES
Seletor Universal
O seletor universal corresponde a qualquer tipo de elemento
Em sua declaração, utiliza-se o asterisco para representa-lo
Caso ele seja composto, poderá ter sua simbologia padrão omitida
• * { color: yellow; }
• *.classe { color: yellow; } é equivalente a .classe { color: yellow; }
SELETORES
Seletor de Tipo
O seletor de tipo atua para o nome corresponde à tag HTML que foi definido no 
tipo
A configuração no bloco de declaração de um seletor de tipo, incidirá em todos os 
elementos nos arquivos HTML’s referenciados
• div { color: yellow; }
• h1 { color: yellow; }
SELETORES
Seletor Descendente
Em algumas situações possivelmente deseja-se que um elemento, ou um conjunto de 
elementos, se comporte de acordo com seu contexto hierárquico
A ordem hierárquica dá-se de acordo com a ordem de composição do seletor, da 
esquerda para a direita
• div p a { color: blue; }
SELETORES
Seletor Filho
O seletor filho corresponde a um conjunto de elementos que compõem o seletor 
separados por um colchete angular direito “>”
As definições de leiaute somente serão aplicados aos filhos diretos dos elementos, na 
ordem da esquerda para a direita da sua declaração
• div > p > a { color: blue; }
SELETORES
Seletor Irmão/Relacional Adjacente
Corresponde a um conjunto de elementos que sejam adjacentes na árvore HTML, ou 
seja, que estejam no mesmo nível hierárquico
Caso haja algum elemento entre os irmãos adjacentes, a definição será ignorada
• div + a + p { color: yellow; }
SELETORES
Seletor Irmão Geral
Corresponde a um conjunto de elementos que estejam no mesmo nível hierárquico do 
documento HTML e que esteja precedido do irmão (ou irmãos) à esquerda
Caso haja algum elemento entre os irmãos adjacentes, o mesmo será ignorado
• div ~ p { color: yellow; }
SELETORES
Seletor de ID
Permite a aplicação de definições de estilos em um elemento pelo sei identificador 
único ID
Sua declaração é dada pela presença do símbolo tralha “#” precedido pelo ID do 
elemento
• #teste { color: blue; }
• div#teste { color: blue; }
SELETORES
Seletor de Atributos
Permite a aplicação de definições de estilos em elementos que possuem 
determinados atributos, ou correspondência total ou parcial de um valor de atributo
Delimitados por colchetes e, quando há presença de valor, separados pelo sinal de 
igualdade “=“
• h1[title] { color: blue; }
• h1[class=classe] { color: blue; }
SELETORES
Seletor de Classe
Estabelece um definições de estilos através do nome de uma classe, definido no CSS
Sua declaração é dada pela presença do símbolo ponto “.” precedido pelo nome 
dado ao seletor do tipo classe
• .classe { color: blue; }
• h1.classe{ color: blue; }
SELETORES
Seletor de Pseudo-Classe e Pseudo-Elements
São palavras-chaves que podem ser adicionadas à determinados seletores para especificar 
o estado de um elemento HTML
Pseudo-classes e pseudo-elementos, permitem que sejam definidas estilos não apenas aos 
conteúdos apresentados estaticamente na apresentação de um documento HTML, mas também 
em relação a comportamentos dinâmicos
Exemplos de pseudo-classes: 
 hover: posicionamento do mouse
 visited: histórico de navegação
 checked: status de um conteúdo
SELETORES
Seletor de Pseudo-Classe e Pseudo-Elements
Sua declaração é dada pelo uso de dois ponto “:” precedidos pelo nome do seletor 
ou pelo uso duplicado de dois pontos “::”, também precedidos pelo nome do seletor, 
para pseudo-classe e pseudo-elemento, respectivamente
Exemplo
Pseudo-classe: a:visited, li:hover, option:checked
Pseudo-elements: p::first-line { margin-left: 20px }
PRECEDÊNCIA DE ESTILOS
Um único documento HTML pode:
• Importar links para várias folhas de estilo externas (estilos com arquivos externos)
• Conter uma ou mais folhas de estilo incorporadas (estilos com Tag Style)
• Fazer uso de estilos inline
Problema: Definições podem entrar em conflito
Solução: CSS usa um mecanismo chamado de cascata para resolver tais conflitos e 
através de especificidade e herança
PRECEDÊNCIA DE ESTILOS
Especificidade
Determina a regra a ser aplicada pelos clientes (navegadores)
Problema:
a { div a {
} }
A especificidade do seletor determina quais as regras de precedência aplicadas 
sobre o código CSS para um mesmo elemento quando várias regras são aplicadas
 Cada seletor tem sua especificidade
PRECEDÊNCIA DE ESTILOS
No exemplo anterior conseguimos ver a atuação da cascata no código CSS
O seletor [a] possui especificidade 1, já o seletor [div a] possui especificidade 2
Porque?
Isso ocorre pela soma de elementos presentes no seletor. No primeiro caso, temos um 
elemento para um seletor. No segundo, dois elemento para um único seletor, então
 Peso = 1 (elemento div) + 1 (elemento a)
Cálculo de Especificidade
Especificidade descreve o peso de um seletor e suas declarações, e possui uma regra 
baseada em valores para que essa seja alcançada
PRECEDÊNCIA DE ESTILOS
CASCATA E HERANÇA
O estilo final para um elemento pode ser especificado em muitos lugares diferentes, 
que pode interagir num meio complexo
Esta interação complexa faz do CSS uma ferramenta poderosa, porém pode tornar 
o código confuso
O comportamento cascata efetivamente estabelece uma sequência para avaliar o 
estilo de um determinado elemento
 O estilo padrão do navegador para a linguagem de marcação
 O estilo especificado por um usuário que está lendo o documento
 O estilo ligado ao documento pelo seu autor
CASCATA E HERANÇA
Estilo Padrão do Navegador
 Ao visualizar um documento no navegador, parte do estilo é definido por um conjunto de 
definições padrão do navegador para um código HTML
Estilo Definido pelo Usuário
 Estilo oriundo das configurações do navegador no qual algum arquivo de configuração 
de estilos de usuário está definido (userConten.css por exemplo, em um perfil)
Estilo Ligado ao HTML
 Estilo definido nos arquivos de folhas de estilo relacionados ao documento HTML (ou 
definidos inline, ou no documento ou ligados a algum arquivo de estilos externo)
CASCATA E HERANÇA
Na estilização de elementos em cascata, a ordem de prioridade segue da seguinte 
maneira:
1. O autor das folhas de estilo tem prioridade
2. O leitor das folhas de estilo, 
3. O padrão do navegador
Onde;
Autor  código CSS (de atributo, de tag, ou externo), e
Leitor  configurações e definições do usuário em seu perfil no navegador
CASCATA E HERANÇA
Herança é a característica que elementos HTML herdam propriedade de outros 
elementos
Se <p> possui uma configuração e no código HTML a tag <a> é parte do conteúdo 
de <p>, então a herda definições de <p>
Na herança propriedades CSS aplicadas a uma tag são repassadas para as tags
aninhadas
<p style=“color: #FF0000;”>
<a>Link</a>
</p>
CASCATA E HERANÇA
Herança não se aplica apenas a estilização de elementos seletores, podem ser 
aplicáveis a quaisquer outros seletores existentes no CSS
A utilização de herança é uma boa prática na construção de estilos HTML usando 
CSS:
Exemplos:
 Definir todo o estilo global de HTML no seletor de elemento body, fornece o 
reuso daquele estilo para todos os demais elementos internos
 No estilo, é só especificar a fonte que você deseja usar, e todas as tags na 
página herdam a fonte: body { font-family: Arial, Helvetica, sans-serif;}
BOX MODEL – MODELO DE CAIXA
No HTML, todos os elementos são considerados caixas, independentemente do seu 
propósito
Ao serem carregados pelo navegador os elementos se ajustam
Content: conteúdo do elemento 
(imagens, textos, etc)
Padding: limpa uma área em torno 
do conteúdo (transparente)
Border: região que limita a área do 
conteúdo
Margin: limpa uma região fora da 
borda
BOX MODEL – MODELO DE CAIXAS
Definição:
h1 {
border: 1px solid #FF0000 !important;
margin: 15px;
padding: 5px 10px 5px 10px;
}
Embora o CSS nos permita alterar propriedade e valores de caixas, elementos sem 
definição serão exibidos de acordo com as propriedades padrão de cada 
navegador
DISPLAY - LEIAUTE
A propriedade display estabelece a forma de exibição dos elementos HTML
Cada elemento tem um valor padrão para a propriedade display, entretanto, como 
em todos os outros valores de propriedade, pode ser alterado
Existem diversos valores para a propriedade display, mas os mais comuns são o 
block, inline, inline-block e none
DISPLAY - LEIAUTE
Block
Uma tag que cria um espaço antes e depois dela. A tag em bloco <p>, por 
exemplo, cria um bloco que é separado de outras tags acima e abaixo.
Hs, <div>, tabelas e listas são outros exemplos de tags que funcionam por padrão 
em bloco
P { display: block; }
DISPLAY - LEIAUTE
O fundo (background) da caixa do elemento se estende até a parte exterior da 
borda, preenchendo o conteúdo, padding e áreas de borda
Se a borda possuir partes transparentes (por exemplo, é pontilhada ou tracejada), 
o fundo será visível naquela área também. Quaisquer contornos são desenhados na 
área de margem e não afetam o layout.
 Apenas margens, altura e largura de uma caixa podem ser definidos como auto
 Somente às margens podem ser dados a valores negativos
 As larguras padrão de padding e borda do elemento caixa são 0 (zero) e 
nenhum, respectivamente
DISPLAY - LEIAUTE
Inline
Tags inline não criam quebras antes ou depois deles. Eles aparecem na mesma linha 
que o conteúdo e outras tags ao lado deles. A tag <strong>é um exemplo de 
etiqueta com valor padrão inline.
Uma palavra formatada com esta tag se coloca ao lado de outro texto — até 
mesmo texto envolvido em outras tags inline como <em>.
DISPLAY - LEIAUTE
Inline-block
Usar esse valor permitirá um elemento comportar-se como um elemento de bloco, 
aceitando todas as propriedades do Box Model
No entanto, o elemento será exibido em consonância com outros elementos, e não 
vai começar em uma nova linha por padrão, como em Block
Uma distinção importante com elementos inline-block é que eles nunca se tocam, ou 
são exibidos diretamente ao lado do outro
Geralmente, um pequeno espaço existirá entre dois elementos inline-block.

Continue navegando