Escolar Documentos
Profissional Documentos
Cultura Documentos
Batista
Por: Isaac E. Batista Instrutor do curso de Web Designer (CETAI-BH) http://web-isaac.blogspot.com/ e-mail: webisaac@ymail.com
A atual apostila consistiu de estudos pessoais sobre o CSS e da sntese de algumas pginas do site do autor Maurcio Samy Silva: Maujor (http://www.maujor.com). Tem o objetivo exclusivamente didtico, vedado seu uso comercial.
Isaac E. Batista
ndices
FOLHA DE ESTILO CSS...................................................................................................1 (Cascading Style Sheets)......................................................................................................1 CSS (Cascading Style Shet)..................................................................................................5 Sintaxe do CSS...............................................................................................................5 Modos de aplicao.......................................................................................................5
Enbedding (Interno).................................................................................................................6 Linking.....................................................................................................................................6 Inline.........................................................................................................................................7
A propriedade background................................................................................................19 O fundo dos elementos HTML.....................................................................................19 Valores vlidos para as propriedades do fundo.........................................................19
Como estudar e entender os exemplos....................................................................................20
Mudando o estilo das listas HTML...................................................................................22 Valores vlidos para as propriedades do lista............................................................23
Como estudar e entender os exemplos....................................................................................24
Isaac E. Batista
Ajustar uma imagem de fundo fixa, que no "rola" com a tela..................................29 Todas as propriedades do fundo em uma declarao nica.......................................30 Seletores CSS 2.1 - Parte 1..................................................................................................30 Seletor - Conceitos bsicos.........................................................................................31 Seletor - Viso geral ...................................................................................................32
descendente ...........................................................................................................................35 ancestral ................................................................................................................................35 filho .......................................................................................................................................35 pai ..........................................................................................................................................35 sibling (irmos) .....................................................................................................................35
Seletores - Simples e combinados...............................................................................35 O seletor universal .....................................................................................................36 Seletores - tipo.............................................................................................................36 Seletor - classe.............................................................................................................36 Seletor - ID .................................................................................................................37 Seletores CSS 2.1 - Parte 2..................................................................................................39 Elementos de combinao...........................................................................................39 Seletores descendentes................................................................................................39 Seletores filho .............................................................................................................40 Seletores irmos adjacentes (sibling selectors)...........................................................41 Grupando.....................................................................................................................41 Seletores de atributo....................................................................................................42
[att] ........................................................................................................................................42 [att=val] .................................................................................................................................42 [att~=val] ..............................................................................................................................43 [att|=val] ................................................................................................................................43
Seletores CSS 2.1 - Parte 3 ::..............................................................................................43 Pseudo classes e pseudo-elementos.............................................................................44 Pseudo classes.............................................................................................................44
:first-child...............................................................................................................................44 :link e :visited.........................................................................................................................45 :hover, :active, e :focus...........................................................................................................45 :hover......................................................................................................................................45 :active ....................................................................................................................................45 :focus......................................................................................................................................45 :lang........................................................................................................................................46
Pseudo-elementos........................................................................................................46
Isaac E. Batista
Problemas com o Internet Explorer............................................................................47 Voc tem o poder use-o corretamente ............................................................................48 Extras:..................................................................................................................................48 Efeitos CSS em cabealhos :.......................................................................................48
Introduo..............................................................................................................................48
Referncias Bibliogrficas..................................................................................................53
Isaac E. Batista
Sintaxe do CSS
Seletor {propriedade: valor;}
Declarao
Ex:
Separador dois pontos
Chave de fechamento
Modos de aplicao
1. Embedding (Interno)
3. In Line ( Em linha)
Isaac E. Batista
Enbedding (Interno)
usado quando se quer aplicar um estilo a uma pgina especificamente, ou seja, quando trabalhamos com poucas pginas ou uma somente.
Exemplo de uso
<html> <head> <title>Seletor Tag</title> <style type=text/css> <!-body { background-color:#000; } h1 { font-family:tahoma,verdana, arial; } --> </style> </head> <body> <h1>titulo 1</h1> <p>texto 1</p> <h1>titulo 2</h1> <p>texto 2</p> </body> </html>
O estilo interno criado dentro da pgina HTML, entre a tag <head> e logo aps a tag <title>.
Linking
O estilo externo usado quando se quer formatar um nmero maior de pginas. Assim, no preciso colocar o cdigo CSS em todas elas. Para cri-lo, abri-se um novo
Isaac E. Batista
documento no Dreamweaver, Bloco de Notas ou outro editor de sua preferncia, e o salva com a exteno .css . A estrutura interna do documento a seguinte:
estilo.css
/*Este um comentrio no CSS*/ body { background-color:#fff; } h1 { font-family:tahoma,verdana, arial; }
Aps cri-lo, preciso vincul-lo ao HTML, para que as formataes sejam aplicveis. Para isso, dentro da pgina HTML, entre as tags head, digita-se a seguinte tag:
Inline
O estilo in line usado quando se quer aplicar um estilo a uma linha do trecho do cdigo HTML. Sua vinculao simples, bastando acrescentar tag, que se quer alterar, a propriedade style.
Isaac E. Batista
Exemplo de uso
<html> <head> <title>Seletor Tag</title> </head> <body style=background-color:#fff;> <h1 style=font-family: tahoma, verdana, arial;>titulo 1</h1> <p>texto 1</p> </body> </html>
Como vimos, o estilo In Line colocado diretamente na tag que se quer estilizar, atravs do atributo style, para, depois, ento, adicionar as propriedades e valores CSS.
Prevalecncia
a ordem que prevalecem em relao ao outro, ou seja, qual se aplica primeiro.
Seletor Tag
Isaac E. Batista
Quando formatamos uma tag, como por exemplo <h1>, pelo CSS, definindo suas propriedades e valores; a formatao se aplicar a essa tag todas as vezes que ele aparecer no documento.
Ex: <html> <head> <title>Seletor Tag</title> <style type=text/css> <!-h1 {color:red; text-decoration:underline;} --> </style> </head> <body> <h1>titulo 1</h1> <p>texto 1</p> <h1>titulo 2</h1> <p>texto 2</p> <h1>titulo 3</h1> <p>texto 3</p> </body> </html>
Isaac E. Batista
10
As propriedades bsicas para fontes e que abordaremos neste tutorial so as listadas abaixo:
color:...................cor da fonte
font-family:..........tipo de fonte
font-size:.............tamanho de fonte
font-style:............estilo de fonte
1.1.
1.2.
2. font-family:
Isaac E. Batista
11
2.1.
2.2.
3. font-size:
3.1.
xx-small
3.2.
x-small
3.3.
small
3.4.
medium
3.5.
large
3.6.
x-large
3.7.
xx-large
3.8.
smaller
3.9.
larger
3.10. length: uma medida reconhecida pelas CSS (px, pt, em, cm, ...)
Isaac E. Batista
12
3.11. %
4. font-style:
4.1.
4.2.
4.3.
oblique:fonte obliqua
5. font-variant:
5.1.
5.2.
6. font-weight:
6.1.
normal
6.2.
bold
6.3.
bolder
6.4.
lighter
6.5.
100
Isaac E. Batista
13
6.6.
200
6.7.
300
6.8.
400
6.9.
500
6.10. 600
6.11. 700
6.12. 800
6.13. 900
Vamos a seguir analisar cada uma delas detalhadamente atravs de exemplos prticos.
Isaac E. Batista
14
A seguir mostro o efeito que a regra produz. Observe a regra e o efeito e para melhor fixar seu aprendizado reproduza o cdigo no seu editor, mude os valores e veja o resultado no browser. Esta a melhor e mais rpida maneira de voc aprender CSS. Bons estudos! E faa timo proveito dos tutoriais.
Isaac E. Batista
15
<h2>Famlia por nome: arial, helvetica, serif;</h2> <p>Famlia genrica: sans-serif;<p> </body> </html>
Notas:
Famlia por nome: arial, helvetica, serif;
Famlia genrica: sans-serif;
A propriedade font-family usada para definir uma lista de tipos de fontes. O browser assume o primeiro nome que ele reconhece na lista. Separar cada nome por uma vrgula e sempre prever um nome genrico. Se o nome da fonte for composto (mais de uma palavra, p. ex: Comic Sans MS), usar aspas duplas no nome. Se estiver definindo um atributo de "style" em HTML, onde as aspas duplas j esto presentes usar no nome de fonte composto, aspas simples.
Isaac E. Batista
16
Isaac E. Batista
17
"SMALL-CAPS"
Voc pode declarar todas ou algumas das propriedades. Os valores size e family so obrigatrios. Os demais so facultativos (se voc os omitir ser adotado o valor default ou herdado do elemento pai). Os valores style, variant, weight e size, podem ser declarados em qualquer ordem.
<html> <head> <style type="text/css"> <!-p{
Isaac E. Batista
18
font: italic small-caps bold 14px "Comic Sans MS", sans-serif; } --> </style> </head> <body> <p>Pargrafo em declarao nica</p> </body> </html>
Notas
O valores caption, icon, menu, message-box, small-caption e status-bar referem-se s fontes usadas pelo sistema operacional do visitante do site e devem ser declarados isolados na propriedade font.
caption............fontes usadas em botes; icon.................fontes usadas em cones; menu...............fontes usadas em menus; message-box...fontes ussadas em caixas de mensagens; small-caption...fontes usadas em pequenos controles; status-bar........fontes usadas na barra de status;
O valor inherit usado para herdar a fonte usada pelo elemento pai e tambm deve ser declarados isolados na propriedade font.
<html> <head> <style type="text/css"> <!-.p1 { font: status-bar; } .p2 { font: inherit; .p3 { font: small-caption ; } } --> </style>
Isaac E. Batista
19
</head> <body> <p class="p1">Pargrafo com fonte status-bar</p> <p class="p2">Pargrafo com fonte inherit</p> <p class="p3">Pargrafo com fonte small-caption</p> </body> </html>
A propriedade background
O fundo dos elementos HTML
A propriedade background define as caractersticas (os valores na regra CSS) do fundo dos elementos HTML. As propriedades background so as listadas abaixo:
background-color............... cor do fundo; background-image............. imagem de fundo; background-repeat............. maneira como a imagem de fundo posicionada; background-attachment.......se a imagem de fundo "rola" ou no com a tela; background-position............como e onde a imagem de fundo posicionada; background........................maneira abreviada para todas as propriedades;
background-color: 1. cdigo hexadecimal: #FFFFFF 2. cdigo rgb: rgb(255,235,0) 3. nome da cor: red, blue, green...etc 4. transparente: transparent background-image: 1. URL: url(caminho/imagem.gif)
Isaac E. Batista
20
background-repeat: 1. no repete: no-repeat 2. repete vertical e horizontal: repeat 3. repete vertical: repeat-y 4. repete horizontal: repeat-x background-attachment: 1. imagem fixa na tela: fixed 2. imagem "rola" com a tela: scroll background-position: 1. x-pos y-pos 2. x-% y-% 3. top left 4. top center 5. top right 6. center left 7. center center 8. center right 9. bottom left 10. bottom center 11. bottom right
Vamos a seguir analisar cada uma delas detalhadamente atravs de exemplos prticos.
A cor do fundo
<html> <head> <style type="text/css"> <!-body {background-color: #CCFFFF;} /*azul claro*/ h2 {background-color: #FF0000;} /* vermelho */ p {background-color: #00FF00;} /* verde */
Isaac E. Batista
21
--> </style> </head> <body> <h2>Estude CSS</h2> <p>Com CSS voc controla melhor seu layout</p> </body> </html>
Estude CSS
Com CSS voc controla melhor seu layout
A imagem de fundo
<html> <head> <style type="text/css"> <!-body { background-image: url("/images/css.gif");} --> </style> </head> <body> </body> </html>
Isaac E. Batista
22
Este o efeito da folha de estilo acima: a imagem esta posicionada a 200 pixel da margem esquerda e 70 pixel da margem superior
list-style-image............. imagem como marcador da lista; list-style-position..........onde o marcador da lista posicionado; list-style-type...............tipo do marcador da lista;
Isaac E. Batista
23
none URL: url(caminho/marcador.gif) list-style-position: 1. outside: marcador fora do alinhamento do texto 2. inside: marcador alinhado com texto list-style-type: 1. none: sem marcador 2. disc: crculo (bolinha cheia) 3. circle: circunferncia (bolinha vazia) 4. square: quadrado cheio 5. decimal: nmeros 1, 2, 3, 4, ... 6. decimal-leading-zero 7. lower-roman: romano minsculo i, ii, iii, iv, ... 8. upper-roman: romano maisculo I, II, III, IV, ... 9. lower-alpha: letra minscula a, b, c, d, ... 10. upper-alpha: letra maiscula A, B, C, D, ... 11. lower-greek 12. lower-latin 13. upper-latin 14. hebrew 15. armenian 16. georgian 17. cjk-ideographic 18. hiragana 19. katakana 20. hiragana-iroha 21. katakana-iroha
1. 2.
Os tipos de 11 a 20 so de uso especfico e sem suporte total pelos navegadores atuais e no sero tratados neste tutorial. Vamos a seguir analisar cada uma delas detalhadamente atravs de exemplos prticos.
Isaac E. Batista
24
list-style-image ...imagem
Isaac E. Batista
25
Isaac E. Batista
26
} ul.circle { list-style-type: circle; } ul.square { list-style-type: square; } --> </style> </head> <body> <ul class="none"> <li>Item um</li> <li>Item dois</li> <li>Item tres</li> </ul> <ul class="disc"> <li>Item um</li> <li>Item dois</li> <li>Item tres</li> </ul> <ul class="circle"> <li>Item um</li> <li>Item dois</li> <li>Item tres</li> </ul> <ul class="square"> <li>Item um</li> <li>Item dois</li> <li>Item tres</li> </ul> </body> </html>
Item um Item dois Item tres Item um Item dois Item tres Item um Item dois Item tres
Isaac E. Batista
27
Isaac E. Batista
28
<li>Item dois</li> <li>Item tres</li> </ol> <ol class="lalpha"> <li>Item um</li> <li>Item dois</li> <li>Item tres</li> </ol> <ol class="ualpha"> <li>Item um</li> <li>Item dois</li> <li>Item tres</li> </ol> </body> </html>
Isaac E. Batista
29
Voc pode declarar duas das propriedades estudadas em uma regra nica: A sintaxe geral esta: list-style: position; imagem ou list-style: position; type podendo inverter a ordem. Veja o exemplo abaixo:
<html> <head> <style type="text/css"> <!-ul { list-style: inside url("seta.gif"); } --> </style> </head> <body> <ul> <li>Texto para demonstrar a propriedade de declarao nica para listas usando CSS - Folhas de Estilo em Cascata;</li> <li>Item dois;</li> <li>Item tres.</li> </ul> </body> </html>
Isaac E. Batista
30
<!-body { background-image: url("/images/css.gif"); background-repeat: no-repeat; background-attachment: fixed; } --> </style> </head> <body> </body> </html>
Este o efeito da aplicao das regras CSS acima em uma pgina web.
em qualquer ordem, podendo ser omitido um ou mais valores. Veja o exemplo abaixo:
<html> <head>> <style type="text/css">/> <!-body { background: #00FF00 url("css.gif") no-repeat fixed 200px 70px; } --> </style> </head>
Isaac E. Batista
31
URL do original: http://www.456bereastreet....selectors_part_1/ Ttulo original: CSS2.1 selectors, Part 1 Traduzido por Maurcio Samy Silva com autorizao expressa do autor
Seletores esto entre as primeiras coisas que voc aprende quando comea a estudar CSS. Sem dvida os seletores fazem parte dos assuntos fundamentais das CSS, contudo poucos desenvolvedores sabem tirar proveito de todo o seu potencial. Ainda que voc possa fazer muitas estilizaes com os seletores do tipo ID e os seletores de classes, h muito mais a fazer com seletores. O conhecimento de como usar adequadamente todas as variantes de seletores disponveis em CSS 2.1 ir ajud-lo na tarefa de manter seu HTML bem mais claro. Voc ir minimizar o uso do atributo class bem como a necessidade de adicionar elementos div e span extras na sua marcao. Parece legal, no ? Ento, por que toda esta variedade de seletores disponveis ainda no est em pleno uso? A razo mais importante para isto a falta de suporte para estes seletores pelo Internet Explorer, inclusive pela verso mais recente em uso, a verso 6. Todos os demais navegadores recentes suportam a maioria dos seletores CSS 2.1. Esteja ciente desta limitao antes de sair usando tudo que ser explicado nestes tutoriais. A boa notcia que o Internet Explorer 7 ir oferecer melhor suporte para seletores. Sabendo que voc poder us-los em um futuro prximo, esta uma boa ocasio para aprender tudo sobre os seletores disponveis. Como existem muitos seletores a estudar, um artigo nico, para explicar todos eles ficaria muito extenso. Assim, para tornar as coisas mais fceis de digerir eu dividi o assunto em trs partes:
1. Parte 1, este artigo que explica os conceitos bsicos sobre seletores e mais o seletor universal, o seletor tipo ID e o seletor de classe; 2. Parte 2, trata de combinao de seletores, grupamento de seletores e seletor de atributo; 3. Parte 3, ser sobre pseudo classes e pseudo-elementos.
Eu publicarei os artigos em algumas semanas e atualizarei cada um deles com os links para as outras partes to logo as publique. Tudo certo ento. Vamos comear.
Isaac E. Batista
32
Vamos aos fundamentos bsicos. Um seletor CSS uma declarao em um formato que "casa" com todos os elementos que sigam aquele formato na rvore do documento. Quando todas as condies estabelecidas no formato da declarao so satisfeitas o seletor "casa" com o elemento (ou elementos) no documento e as regras escritas no seletor so aplicadas. Considere a regra CSS bem simples escrita a seguir:
1. p { color:#f00; }
O seletor a parte da regra CSS que est antes do sinal { (chave de abertura). O seletor aqui p, que "casa" com todos os elementos p do documento e faz com que qualquer texto dentro de um pargrafo seja na cor vermelha. Bem bsico.
Viso geral da sintaxe dos seletores CSS 2.1 Seletor Universal Tipo Classe Formato * E .info Descrio Casa com qualquer elemento. Casa com qualquer elemento E. Casa com qualquer elemento cujo atributo class tem o valor info. Casa com qualquer elemento cuja id seja footer. Casa com qualquer elemento F que seja descendente do elemento E.
ID
#footer
Descendente
EF
Isaac E. Batista
33
Viso geral da sintaxe dos seletores CSS 2.1 Seletor Filho Formato E>F Descrio Casa com qualquer elemento F que seja filho do elemento E. Casa com qualquer elemento F que se segue imediatamente a E. Casa com qualquer elemento E que tenha um atributo att independentemente do valor deste atributo. Casa com qualquer elemento E que tenha um atributo att de valor igual a val. Casa com qualquer elemento E que tenha um atributo att de valor igual a um valor qualquer separado por um espao de um valor igual a val. Casa com qualquer elemento E que tenha um atributo att de valor igual a um valor qualquer separado por um hfen de um valor comeando com val. Casa com o elemento E que for o primeiro filho do seu elemento
Adjacente
E+F
Atributo
E[att]
Atributo
E[att=val]
Attribute
E[att~=val]
Atributo
E[att|=val]
E:first-child
Isaac E. Batista
34
Viso geral da sintaxe dos seletores CSS 2.1 Seletor Formato Descrio pai. Pseudo classe link E:link E:visited E:active E:hover E:focus E:lang(c) Casa com link ainda no vistado (:link) ou com link j visitado (:visited) links. Casa com E quando de uma ao do usurio. Casa com elementos E escritos no idioma c. Casa com o contedo da primeira linha do elemento E. Casa com a primeira letra do elemento E. Usado para gerar contedo antes ou depois do contedo do elemento E.
Pseudo-elemento E:first-line :first-line O pseudoelemento E:first-letter :first-letter Pseudoelementos :before e :after E:before E:after
Explicarei detalhadamente cada um destes seletores nas duas primeiras partes deste artigo, assim, continue lendo. Alguns termos usados na tabela acima e ao longo do artigo necessitam de uma explicao adicional:
Isaac E. Batista
35
descendente
Um elemento que filho, neto ou descendente mais distante de um elemento, na rvore do documento.
ancestral
Um elemento que pai, av ou ancestral mais distante de um elemento na rvore do documento.
filho
O descendente direto de um elemento. Nenhum elemento existe entre os dois na rvore do documento.
pai
O ancestral direto de um elemento. Nenhum elemento existe entre os dois na rvore do documento.
sibling (irmos)
Elementos irmos, filhos do mesmo pai.
1. p.info { background:#ff0; }
Um seletor combinado (algumas vezes chamado de seletor contextual) consiste de dois ou mais seletores simples separados por um elemento de combinao. A seguir um exemplo de seletor combinado.
1. div p { font-weight:bold; }
Isaac E. Batista
36
A regra acima aplica-se a todo elemento p que seja descendente do elemento div. Um pseudo-elemento pode ser colocado como apndice a um seletor. Em seletores combinados, o pseudo-elemento somente poder ser adicionado como apndice ao ltimo seletor simples. Nas Partes 2 e 3 deste artigo sero detalhados com mais profundidade os seletores combinados, os elementos de combinao e os pseudo-elementos.
O seletor universal
O seletor universal representado por um asterisco, *, e casa com todos os elementos do documento. raro ver-se empregado em uma folha de estilos, mas o seletor universal muito usado com seletores tipo ID e seletores de classe. Se o seletor universal no for o nico componente de um seletor simples, o * no deve ser usado :
.myclass equivalente a *.myclass #myid equivalente a *#myid
Um uso bastante popular para o seletor universal o uso para zerar margens e paddings de todos os elementos do documento:
1. * { margin:0; padding:0; }
Este procedimento tambm conhecido como Global White Space Reset. (NT: link para matria em ingles)
Seletores - tipo
Um seletor tipo, casa com qualquer instncia de um determinado tipo de elemento. A regra a seguir casa com qualquer elemento (do tipo) pargrafo no documento e configura seu tamanho de fonte para 2em:
1. p { font-size:2em; }
Seletor - classe
Isaac E. Batista
37
O seletor de classe representado por um ponto, ., e tem como alvo elementos com um determinado valor para seu atributo class. A regra a seguir aplica-se a todo elemento pargrafo cuja classe tenha o nome info:
1. p.info { background:#ff0; }
Voc pode atribuir vrios nomes para a classe de um elemento o atributo class pode conter uma lista de vrios nomes separados por espao em branco. Assim, os seletores de classe podem ser usados para casar com elementos cuja classe contenha vrios nomes. A regra a seguir casa com elementos p que tenham os nomes info e error declarados em seu atributo class:
1. .info { background:#ff0; }
Seletor - ID
A ID (#) uma identidade que damos a algumas das tags do corpo do documento HTML, a fim de diferenci-los dos demais. Uma ID represenada e usada da seguite forma:
no HTML como atributo de uma tag. Sendo a palavra ID a propriedade e o nome da ID o valor. Exemplo: <p id =vermelho >...</p> ;
no CSS, como seletor. Primeiro, coloca-se o sinal # (tralha ou jogo da velha), escreve-se o nome da ID, que ser a palavra vermelho , e aps, defini-se as propriedades e os valores para ela. Veja o exemplo:
#vermelho {
Isaac E. Batista
38
Contudo, a regra acima se aplica-se a todos os elementos cujo nome de ID seja vermelho, independentemente do tipo de elemento. Para que o estilo se aplique somente a tag <p> de ID vermelho, a regra no CSS dever ser:
Documento HTML
<html> <head> <title>Seletor Tag</title> <link rel=styleshet type=text/css href=estilo.css> </head> <body> <h1>titulo 1</h1>
Isaac E. Batista
39
Elementos de combinao
Elementos de combinao de seletores so usados para separar dois ou mais seletores simples que compem um seletor combinado. Os elementos de combinao disponveis so: espao em branco (qualquer quantidade de espao, tabulao ou caracteres de espaamento), o sinal de maior > e o sinal de adio + . A funo de cada um destes elementos de combinao dos seletores ser descrita adiante.
Seletores descendentes
Um seletor descendente uma combinao de dois ou mais seletores simples separados por um espao em branco. Casa com elementos que sejam descendentes do primeiro elemento simples declarado no seletor. Por exemplo, na regra a seguir o seletor casa com todos os elementos p que sejam descendentes do elemento div:
1. div p { color:#f00; }
Isaac E. Batista
40
Cada um dos seletores que compem um seletor descendente pode ser um seletor simples de qualquer natureza. Na regra a seguir o seletor casa com todo o elemento p da classe info contido em um elemento li que esteja contido em um elemento div cuja id seja myid.
1. 2. 3. 4. 5.
<ul id="nav"> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> </ul>
Para atingir os itens de lista e links contidos na lista de navegao voc poderia usar as seguintes regras CSS:
Seletores filho
Um seletor filho tem como alvo um filho imediato de um elemento. O seletor filho consiste de um ou mais seletores simples separados por um sinal de maior >. O elemento pai fica esquerda do sinal >, e permitido deixar espao em branco entre o elemento de combinao e os seletores. A regra a seguir aplica-se a todos os elementos strong que sejam filhos de um elemento div:
Isaac E. Batista
41
1. 2. 3. 4.
1. p + p { color:#f00; }
A regra acima ser aplicada somente ao Pargrafo dois :
1. 2. 3. 4.
Grupando
Eu decidi abordar o grupamento a esta altura do artigo, porque um erro comum que eu vejo as pessoas cometer quando esto aprendendo CSS diz respeito ao grupamento de seletores. Para aplicar uma mesma regra a diferentes elementos alvo casados por diferentes seletores voc pode agrupar os seletores em uma lista e separando-os por uma vrgula no lugar de escrever repetidamente a mesma regra para cada um dos seletores. O erro que muitos cometem o de no listar de modo completo todos os seletores. Considere a seguinte marcao:
1. 2. 3. 4.
Isaac E. Batista
42
1. 2. 3. 4.
Assim, quando grupar seletores lembre-se de escrever por completo cada um deles.
Seletores de atributo
Seletores de atributo atingem elementos baseados no valor de atributo declarado no seletor. Quatro so as maneiras de declarar um seletor de atributo:
[att]
Casa com qualquer elemento com o atributo att independente do seu valor.
[att=val]
Casa com qualquer elemento com o atributo att cujo valor seja val.
Isaac E. Batista
43
[att~=val]
Casa com qualquer elemento que tenha um atributo att de valor igual a um valor qualquer separado por um espao de um valor igual val. Neste caso val no pode conter espaos.
[att|=val]
Casa com qualquer elemento que tenha um atributo att de valor igual a um valor qualquer separado por um hfen de um valor comeando com val. O principal uso deste seletor o de casar elementos com um valor de idioma especificado no atributo lang (xml:lang em XHTML), por exemplo;en, enus, en-gb, etc.
Alguns exemplos. O seletor na regra a seguir casa com todos os elementos p que tenham o atributo title, independentemente do valor do atributo:
1. p[title] { color:#f00; }
No prximo exemplo o seletor casa com todos os elementos div que tem um valor para o atributo class igual a error:
1. div[class=error] { color:#f00; }
Para atingir todos os elementos td cujo atributo headers contenha o valor col1, podemos usar o seguinte seletor:
1. td[headers~=col1] { color:#f00; }
E finalmente, o seletor seguinte atinge todo elemento p cujo atributo lang comece com en:
1. p[lang|=en] { color:#f00; }
Mltiplos seletores de atributos podem ser usados em um mesmo seletor. Isto possibilita atingir vrios diferentes atributos para o mesmo elemento. a regra a seguir aplica-se a todos os elementos blockquote que tenham o atributo class de valor igual a quote, e mais o atributo cite (independentemente do seu valor):
1. blockquote[class=quote][cite] { color:#f00; }
Isaac E. Batista
44
Esta a terceira e ltima parte da srie de trs artigos sobre os seletores disponveis em CSS 2.1. A Parte 1 trata dos conceitos bsicos tais como; seletor tipo, seletores ID, seletores de classes, seletor universal e seletores simples. Na Parte 2 eu expliquei os elementos de combinao, seletores combinados, grupamento e seletores de atributo
Agora detalharei as pseudo classes e os pseudo-elementos. Assim como os seletores mais avanados que eu apresentei na Parte 2, as pseudo classes e os pseudo-elementos ainda no so plenamente suportados pela maioria dos navegadores, assim, no se esquea de verificar o que ir acontecer se no houver suporte para um determinado seletor que voc tenha usado. Voc no quer que sua pgina seja inacessvel por falta de suporte a uma CSS aqui descrita.
Pseudo classes
Pseudo classes casam elementos baseadas em caractersticas outras que no; seu nome, seus atributos ou seu contedo.
:first-child
Esta pseudo classe casa com o elemento que o primeiro filho de um outro elemento. Suponha que voc quer estilizar diferenciadamente o primeiro pargrafo de um artigo. Se tal artigo estiver contido dentro de um elemento div ao qual foi atribuido a classe article, a regra a seguir casa com o primeiro elemento pargrafo p no artigo:
1. p:first-child { 2. font-style:italic; 3. }
Isaac E. Batista
45
:link e :visited
As pseudo classes link afetam o estado dos links visitados e no visitados. Estes dois estados so mutuamente exclusivos um link no pode ser visitado e no visitado ao mesmo tempo. Estas pseudo classes aplicam-se somente a hyperlinks e ncoras definidas na linguagem de marcao do documento. Em HTML, isto vlido para elementos com o atributo href. Uma vez que outros elementos no so afetados os seletores mostrados abaixo so equivalentes:
1. a:link 2. :link
:hover
Aplica-se para quando o usurio coloca um dispositivo apontador em um elemento mas no o ativa. O uso mais comum quando da ao de usurio de apontar o cursor do mouse sobre o elemento.
:active
Aplica-se para quando o usurio ativa um elemento. Para ao de mouse, equivale a pressionar o boto e mant-lo pressionado at soltar.
:focus
Aplica-se para quando um elemento recebe foco, ou seja, enquanto aceita eventos de teclado. Um elemento pode ser casado a vrias pseudo classes ao mesmo tempo. Um elemento pode receber foco e ter o cursor do mouse sobre ele ao mesmo tempo, por exemplo:
1. 2. 3. 4. 5.
input[type=text]:focus {
color:#000;
background:#ffe;
}
input[type=text]:focus:hover {
Isaac E. Batista
46
6. background:#fff; 7. }
A primeira regra casa com o elemento input e tem o foco, a segunda regra casa com o mesmo elemento quando tem o ponteiro do mouse sobre ele.
:lang
A pseudo-class para linguagem (idioma) pode ser usada para estilizar elementos cujo contedo est escrito em uma determinada linguagem (idioma - uma lngua para humanos e no uma linguagem de marcao). A regra a seguir define que tipo de aspas usar para textos inline que esto escritos no idioma da Sucia:
Pseudo-elementos
Os pseudo-elementos permitem acessar e formatar partes do documento que no esto disponveis como ns da rvore do documento.
:first-line
O pseudo-elemento :first-line afeta a primeira linha de texto de um pargrafo. Aplica-se somente a elementos nvel de bloco, blocos inline, table-caption ou table-cell. O comprimeiro da primeira linha depende obviamente de uma srie de fatores, ai incluido o tamanho da fonte e a largura do elemento container do texto. A regra a seguir aplica-se primeira linha do texto de um pargrafo:
1. 2. 3. 4.
Notar que existem algumas restries quanto as propriedades aplicveis no pseudoelemento :first-line. Ver The :first-line pseudo-element para uma listagem das propriedades aplicveis.
:first-letter
Isaac E. Batista
47
Este pseudo-elemento permite casar a primeira letra ou primeiro caractere de um elemento e aplica-se a elementos nvel de bloco, list-item, table-cell, table-caption e bloco inline. A regra a seguir aplica-se ao primeiro caractere de um elemento cuja classe denomina-se preamble:
1. 2. 3. 4.
Assim como para o pseudo-elemento :first-line o pseudo-elemento :first-letter tem suas restries com relao as propriedades aplicveis. Ver The :first-letter pseudo-element para uma listagem das propriedades aplicveis.
:before e :after
Entre uma das mais discutidas funcionalidades das CSS os pseudo-elementos :before e :after podem ser usados para gerar contedos antes e depois do contedo de um elemento A seguir uma exemplo de como :before pode ser usado (retirado do meu artigo Custom borders with advanced CSS):
1. 2. 3. 4. 5. 6. 7. 8.
Um exemplo do uso de :after para inserir a URL logo aps o texto de um link:
Isaac E. Batista
48
Child selectors (Seletores filho) Adjacent sibling selectors (Seletores irmos adjacentes) Selectores de atributo Selectores com mltiplas classes Pseudo classe :first-child Pseudo classe language Pseudo-elementos :before e :after Pseudo classe :hover funciona somente para elementos a
Felizmente parece que o Internet Explorer 7 d suporte completo para seletores CSS 2.1.
Extras:
Efeitos CSS em cabealhos :
Introduo
Mostrar o uso das propriedades CSS border e background para incrementar o visual de cabealhos em documentos web. Ao final da leitura deste tutorial voc estar capacitado estilizar os cabealhos (tags <h1> <h2>.....), aplicando efeitos bastante criativos com uso das CSS.
Isaac E. Batista
49
Consideraes iniciais
Os quatro cabealhos mostrados na figura acima foram todos eles estilizados simplesmente alterando-se o valor das MESMAS propriedades CSS para cada um deles. Isto , as regras CSS de estilizao usam as mesmas propriedades. Alteram-se somente os valores das propriedades. Teste seus conhecimentos de CSS: Voc capaz de identificar quais as propriedades estilizadas? Dica: Foram 06 (seis) propriedades! Veja a resposta Agora que voc j sabe qual a apresentao final de cada um dos quatro cabealhos e quais as propriedades que sero estilizadas fica fcil entender as regras CSS mostradas a seguir
O Cabealho nmero 1
<style type="text/css"> .um { /* Classe para o cabealho */ width:300px; /* Largura total - Se voc omitir ocupar toda a linha */ font: 25px Arial, Helvetica, sans-serif; /* Tamanho e famlia de fontes */ color: #7D2116; /* Cor da fonte */ border-top: 14px solid #7FD991; /* Borda em cima */
Isaac E. Batista
50
border-left: 2px solid #7FD991; /* Borda a esquerda*/ padding-left:5px; /* Espaamento do texto a esquerda */ } /* Note que no h uma cor de fundo */ </style>
O Cabealho nmero 2
.dois { /* Classe para o cabealho */ width:300px; /* Largura total - Se voc omitir ocupar toda a linha */ font: 25px Arial, Helvetica, sans-serif; /* Tamanho e famlia de fontes */ color: #FF0000; /* Cor da fonte */ background: #8EE481; /* Cor do fundo*/ border-bottom: 2px solid #FF0000; /* Borda em baixo */ border-left: 15px solid #FF0000; /* Borda a esquerda*/ border-top: 2px solid #FF0000; /* Borda em cima */ border-right: 15px solid #FF0000; /* Borda a direita */ padding-left:5px; /* Espaamento do texto a esquerda */ } --> </style>
O Cabealho nmero 3
<style type="text/css"> <!-.tres { /* Classe para o cabealho */ width:300px; /* Largura total - Se voc omitir ocupar toda a linha */ font: 25px Arial, Helvetica, sans-serif; /* Tamanho e famlia de fontes */ color: #003366; /* Cor da fonte */ border-top: 5px dotted #FFCC00; /* Borda em cima */ border-bottom: 15px solid #FFCC00; /* Borda em baixo */ padding-left:5px; /* Espaamento do texto a esquerda */ } /* Note que no h uma cor de fundo */ --> </style>
O Cabealho nmero 4
<style type="text/css"> <!-.quatro { /* Classe para o cabealho */ width:300px; /* Largura total - Se voc omitir ocupar
Isaac E. Batista
51
toda a linha */ font: 25px Arial, Helvetica, sans-serif; /* Tamanho e famlia de fontes */ color: #F58221; /* Cor da fonte */ background: #ACE0E5 url(logo_im.gif) 5px 0 no-repeat; /*Ver Nota*/ border-top: 2px dotted #F58221; /* Borda em cima */ border-right: 2px dotted #F58221; /* Borda a direita */ border-bottom: 2px dotted #F58221; /* Borda em baixo */ border-left: 2px dotted #F58221; /* Borda a esquerda*/ padding-left:35px; /* Espaamento do texto a esquerda */ } --> </style> Nota: Neste cabealho inserimos uma figura de fundo (o logo do iMasters),obtendo um efeito bem interessante!
body { text-align:left;}
Experimente este cdigo:
Isaac E. Batista
52
<html> <head> <style type="text/css"> body { scrollbar-arrow-color:#000000; scrollbar-3dlight-color:#000000; scrollbar-highlight-color:#FF0000; scrollbar-face-color:#FFFFFF; scrollbar-shadow-color:#0000FF; scrollbar-darkshadow-color:#FFFF00; scrollbar-track-color:#00FF00; direction: rtl; text-align:left; } </style> </head> <body> <p>Aqui um texto qualquer</p> </body> </html>
Agradeo a Deus e a todos que contribuem para que o conhecimento seja difundido.
Isaac E. Batista
53
Referncias Bibliogrficas
SILVA, Maurcio S. Folhas de Estilo (CSS) . Disponvem em: <http://www.maujor.com>, Acesso em 01 nov. 2009.