Bruno C. de Paula Laboratório de Informática Seletores Seletores do CSS 2.1 1º Semestre 2009 > PUCPR > BSI Resumo da aula Continuaremos nosso trabalho com a linguagem de seletores; Hoje trabalharemos com os seletores introduzidos no CSS 2.1; Devemos ter especial cuidado com estes seletores: seu suporte é restrito no Internet Explorer 6 e 7; Conheceremos, porém, maneiras de contornar esta limitação através da linguagem JavaScript. Material referente ao assunto da aula Tutorial sobre regras CSS: – http://maujor.com/tutorial/sintaxetut. php Tutorial seletores CSS 2.1: – http://maujor.com/tutorial/selet ores_css21_parte1.php Recomendação W3C do CSS 2.1 (em Inglês): – http://www.w3.org/TR/CSS21/selecto r.html#pattern-matching 05/11/2015 3 Material referente ao assunto da aula Capítulo do Livro CSS – Guia de Bolso: – http://altabooks.tempsite.ws/capitulo s_amostra/00_cssbolso.pdf Tabela com resumo de todos os seletores do CSS e sua compatibilidade: – http://kimblim.dk/css-tests/selectors/ Documentação sobre seletores do site da Microsoft: – http://msdn.microsoft.com/enus/library/aa358816(VS.85).aspx 05/11/2015 4 Material referente ao assunto da aula CSS – Guia de Bolso; – Editora AltaBooks; – 2008; – Download de um capítulo. 05/11/2015 5 Tags HTML referenciadas na aula (em Português –site Referenciando) Tag de estilo: <style>; Tag de link: <link>; Tag de script: <script>. 05/11/2015 6 Tags HTML referenciadas na aula (em Inglês – site SitePoint) Tag de estilo: <style>; Tag de link: <link>; Tag de script: <script>; 05/11/2015 7 Seletores CSS referenciados na aula (em Inglês –site SitePoint) Seletor universal (*); Seletor filho (E > F); Seletor irmão adjacente (E + F); Pseudo-classe dinâmica “sobre o elemento” (E:hover); Pseudo-classe dinâmica foco (E:focus); 05/11/2015 8 Seletores CSS referenciados na aula (em Inglês –site SitePoint) Pseudo-classe primeiro filho – (E:first-child); Pseudo-classe idioma (E:lang(c)); Pseudo-elemento de conteúdo inserido antes de outro (E:before); Pseudo-elemento de conteúdo inserido depois de outro (:after). 05/11/2015 9 Seletores CSS referenciados na aula – Seletores de Atributo Seletor de elemento com atributo existente (existência): –E[atr]; Seletor de elemento com valor de atributo igual ao valor especificado (igualdade): –E[atr=val]. 05/11/2015 10 Seletores CSS referenciados na aula – Seletores de Atributo Seletor de elemento com valor de atributo contido em uma lista separada por espaços (espaço em branco); – E[atr~=val] Seletor de elemento com valor de atributo iniciando com o prefixo seguido de “-” (hífen): – E[atr|=val]. 05/11/2015 11 Exemplos da aula Seletor universal (*); Seletor universal aplicado em CSS Reset; Seletor universal aplicado no debug do posicionamento dos elementos; Seletor filho (E > F); Seletor irmão adjacente (E + F); Pseudo-classe dinâmica hover (E:hover); 05/11/2015 12 Exemplos da aula Pseudo-classe dinâmica hover aplicada em links; Pseudo-classe dinâmica focus (E:focus); Pseudo-classe dinâmica focus aplicada em links; Pseudo-classe primeiro filho (E:firstchild); Pseudo-classe lang (E:lang(C)); Pseudo-elemento before (E:before); Pseudo-elemento after (E:after); 05/11/2015 13 Exemplos da aula Seletor atributo existente (E[atr]); Seletor atributo igualdade (E[atr=val]); Seletor atributo igualdade aplicado em itens de formulário; Seletor atributo espaço em branco (E[atr~=val]); Seletor atributo espaço em branco aplicado à classe; Seletor atributo prefixo (E[atr|=val]). 05/11/2015 14 Relembrando a aula passada... 05/11/2015 15 05/11/2015 16 Versões do CSS 1.0: Todos os navegadores do mercado implementam. 05/11/2015 17 Versões do CSS (retrocompatíveis) 2.0/2.1: Implementado em grande parte dos navegadores (implementação parcial: ie7, quase nula: ie6); Aula de hoje. 3.0: Em discussão, implementação parcial em alguns navegadores (Opera, Firefox, Safari, Chrome); 05/11/2015 18 Fonte da imagem: CSS Guia de Bolso de Eric A. Meyer 05/11/2015 19 Assunto de hoje: só seletores! E do CSS 2.1 05/11/2015 20 Os seletores do CSS 2.1 são implementados por todas as plataformas principais (menos IE6)! 05/11/2015 21 ie6 05/11/2015 Use com cuidado! 22 CSS 2.1 funciona no IE8! 05/11/2015 23 Tabela de compatibilidade CSS 2.1 x Navegadores Fonte: fonte: http://kimblim.dk/css-tests/selectors/ 05/11/2015 24 Ie6 pode ser um navegador importante no mercado por algum tempo! Soluções: – Ignorar ie6; – Criar interface específica para ie6; – “Emular” alguns recursos do CSS 2.1 via JavaScript para “transformar” o navegador; 05/11/2015 25 “Transformação” de ie6 em ie7 <!--[if lt IE 7]> <script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"></script> <![endif]--> “Transformação” de ie6-7 em ie8 <!--[if lt IE 8]> <script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" type="text/javascript"></script> <![endif]--> Exemplo 05/11/2015 26 Lista dos Seletores do CSS 2.1 05/11/2015 27 Seletor Tipo Observações * Universal * Uso em CSS Reset * Funciona no ie6 E>F Filho E+F Irmão adjacente E:hover Hover (mouse sobre) E:focus Foco no teclado Forms e links 05/11/2015 No ie6 só a:hover funciona! 28 Seletor Tipo E:first-child Primeiro filho E:lang(C) Idioma E:before Inserção de conteúdo antes E:after 05/11/2015 Inserção de conteúdo depois Observações ie7 ie7 ie7 29 Seletor Tipo E[atr] Atributo existente E[atr=val] Atributo igualdade E[atr~=val] Atributo espaço em branco Com atributo class não precisa E[atr|=val] Atributo prefixo Usar com tag a e atributo hreflang 05/11/2015 Observações 30 Seletor universal (*) Casamento com elemento de qualquer tipo; 05/11/2015 31 Significado: coloque a cor amarela e o fundo azul em todos os elementos dentro de um div, independente do tipo 05/11/2015 32 05/11/2015 33 CSS Reset *{ margin: 0; padding: 0; } Elimina margens e espaçamentos padrão de todos os elementos 05/11/2015 34 Localização / Depuração de elementos CSS 05/11/2015 35 Seletor filho (E > F) Casamento com todos os elementos filhos imediatos de um elemento; Diferente do seletor descendente! 05/11/2015 36 Significado: deixar em verde e com fonte grande todos os <em> filhos imediatos de um div 05/11/2015 37 05/11/2015 38 Seletor irmão adjacente (E + F) Casamento com um elemento irmão e adjacente (F) ao primeiro elemento (E); Elementos com mesmo pai; Primeiro elemento no mesmo nível do segundo; 05/11/2015 39 Significado: trocar o fundo de todos os parágrafos imediatamente colocados após um elemento <h2> 05/11/2015 40 Significado: sublinhar todos os parágrafos depois de um parágrafo, ou seja, em uma lista de parágrafos, formatar todos menos o 1º 05/11/2015 41 05/11/2015 42 Pseudo-classe dinâmica “sobre o elemento” (E:hover) Casamento com um elemento cujo mouse está sobre ele; No IE6 funciona o a:hover! ie6 05/11/2015 43 Significado: quando o mouse passar sobre um link (tag <a>), troque o fundo para vermelho e elimine qualquer tipo de sublinhado 05/11/2015 44 05/11/2015 45 05/11/2015 46 Ordem correta de aplicação das pseudo-classes de link Link, Visited, Hover, Active; Mnemônico: LoVeHAte; 05/11/2015 47 Pseudo-classe dinâmica foco (E:focus) Casamento com elemento que está com o foco para digitação; Não funciona no IE7. ie7 05/11/2015 48 Significado: quando o usuário estiver com o foco de teclado em uma área de texto qualquer, troque o fundo da área para vermelho 05/11/2015 49 05/11/2015 50 Ordem correta de aplicação das pseudo-classes de link (com focus) Link, Visited, Hover, Focus, Active; Ver mais detalhes em: http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-thelink-states/ 05/11/2015 51 Pseudo-classe primeiro filho (E:first-child) Casamento com um elemento quando ele é o primeiro filho de seu pai; 05/11/2015 52 Significado: muda para vermelho a cor de fundo de todos os <li> que são o primeiro filho de seu elemento pai 05/11/2015 53 05/11/2015 54 Pseudo-classe idioma (E:lang(C)) Seleciona o elemento com o idioma indicado; Para especificar o idioma, usar atributo lang. Não funciona ie7. ie7 05/11/2015 55 Significado: mudar para vermelho a cor de fundo de todos os elementos da língua Português e suas variantes 05/11/2015 56 05/11/2015 57 Pseudo-elemento de conteúdo inserido antes de outro (:before) Gera conteúdo antes do elemento especificado através da propriedade content; Comportamento complexo, mas poderoso; Não funciona no IE7. 05/11/2015 ie7 58 Significado: Coloca o texto “Pais: “ antes de todos os parágrafos. 05/11/2015 59 05/11/2015 60 Pseudo-elemento de conteúdo inserido depois de outro (:after) Gera conteúdo depois do elemento especificado; Não funciona no IE7; ie7 05/11/2015 61 Significado: Coloca o texto indicado após todos os parágrafos. 05/11/2015 62 05/11/2015 63 Seletor de elemento com atributo existente (existência) (E[atr]) Seleciona um elemento quando o atributo especificado entre colchetes [] existir; Significado: coloca sublinhado em todos os parágrafos que tiverem o atributo id Significado: deixa verde qualquer elemento que possua o atributo title Significado: coloca mensagem após todo elemento que possui título Seletor de elemento com valor de atributo igual (igualdade) (E[atr=val]) Seleciona um elemento quando o valor do atributo especificado na regra for igual ao valor encontrado no elemento; Significado: coloca uma borda em todos os links cujo atributo rel seja igual ao valor tag Para mais detalhes sobre o significado de rel=tag, acesse o link: http://microformats.org/wiki/rel-tag-pt-br Significado: coloque um tachado (linha cortando) todos os links com valor de atributo rel igual a nofollow Para mais detalhes sobre o significado de rel=nofollow, acesse o link: http://googlediscovery.com/2007/08/18/aprenda-a-usar-o-relnofollow-e-evite-ser-punido-p Alteração de todos os inputs de um certo tipo Seletor de elemento com valor de atributo contido em lista (espaço) (E[atr~=val]) Seleciona um elemento quando o valor do atributo especificado na regra estiver contido dentro de uma lista separada por espaços no valor do atributo do elemento selecionado; Significado: seleciona todos os parágrafos nos quais, dentro do atributo title contiver uma lista separada por espaços e a palavra microsoft O seletor E[atr~=val] não é necessário quando se precisa aplicar 2 (ou mais) classes a um elemento. Separe as classes por espaço no atributo class. 05/11/2015 78 05/11/2015 79 Seletor de elemento com prefixo (hífen) (E[atr|=val]) Faz o casamento com elementos cujo valor de atributo seja igual, ou opcionalmente, seguido por um hífen; Usado, geralmente com atributo hreflang (indica o idioma do conteúdo linkado). Não use com o atributo lang! Significado: seleciona o link cujo idioma de destino seja o Português Material referente ao assunto da aula Tutorial sobre regras CSS: – http://maujor.com/tutorial/sintaxetut. php Tutorial seletores CSS 2.1: – http://maujor.com/tutorial/selet ores_css21_parte1.php Recomendação W3C do CSS 2.1 (em Inglês): – http://www.w3.org/TR/CSS21/selecto r.html#pattern-matching 05/11/2015 83 Material referente ao assunto da aula Capítulo do Livro CSS – Guia de Bolso: – http://altabooks.tempsite.ws/capitulo s_amostra/00_cssbolso.pdf Tabela com resumo de todos os seletores do CSS e sua compatibilidade: – http://kimblim.dk/css-tests/selectors/ Documentação sobre seletores do site da Microsoft: – http://msdn.microsoft.com/enus/library/aa358816(VS.85).aspx 05/11/2015 84 Material referente ao assunto da aula CSS – Guia de Bolso; – Editora AltaBooks; – 2008; – Download de um capítulo. 05/11/2015 85 Próximas aulas de CSS Seletores CSS 3.0; Textos e Fontes; 05/11/2015 86