css, uma abordagem geral

Upload: rubens-godoi

Post on 10-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 CSS, Uma Abordagem Geral

    1/60

    SOBRE ESTA APOSTILA

    Antes de mais nada, gostaria de comunicar que esta apostila ligeiramente

    diferente. O que se v nas apostilas sobre CSS um tecnicismo que eu considero

    muito chato! s mostrar propriedade, mostrar valor, mostrar exemplo, mostrarpropriedade, mostrar valor, mostrar exemplo... , realmente uma maneira

    rpida de algum escrever uma apostila e mais rpido ainda de um outro algum

    conhecer os principais conceitos abordados nela, mas no uma maneira que eu

    gosto de escrever!

    Por favor, no pensem que sou pretensioso, egocentrista, ou algo do tipo! Quero

    distncia disso! Podem ter certeza de que no sou igual a muito blogueiroestrelinha, que diz que um blog no pode ficar num sei quantos dias sem novo post

    e tudo o mais, mas se a gente for contabilizar todas as matrias publicadas,

    metade sobre as estatsticas de acesso do blog dele, quantas pessoas chegam

    pelo Google, quantos visitantes bl bl bl, etc. o que eu chamo de Sndrome da

    Rede Globo.

    Bem, voltando ao assunto principal, contrariando as tendncias minimalistas da

    internet(e do mundo), meus textos so regados com muitas palavras que podem

    ser consideradas desnecessrias, para a maioria, mas que, pessoalmente,

    acredito ser mais fcil para aqueles que ainda no tiveram contato com o assunto.

    Na verdade, creio ser dessa forma para qualquer tipo de apostila. Se eu no

    conheo sobre um assunto e pego um livro (ou, no caso, apostila) para aprender,

    fico um pouco intimidado com tantas novas informaes de uma s vez, e uma

    informalidadezinha sempre bem vinda!

    exatamente isso que tem por aqui: um monte de informalidadezinha!

    Uma outra peculiaridade que no apresentarei enormes listas com as principais

    propriedades e valores CSS atualmente disponveis. Para isso, j existem inmeros

    excelentes websites com exemplos dos mais elucidativos! Vou me limitar a somente

    prescrever alguns links, com o intuito, tambm, de no tornar a apostila muito

    extensa e cansar o leitor.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 20071

  • 8/8/2019 CSS, Uma Abordagem Geral

    2/60

    Mas o seguinte: ficar muito mais fcil (muito, mesmo!) continuar lendo se voc

    j tiver um prvio conhecimento sobre (X)HTML1, e voc ter 0% de chances de

    entender alguma coisa, caso no tenha a VONTADE de aprender!

    S para esclarecer, o pblico-alvo da apostila so os iniciantes na rea de CSS.

    Isso, aqueles caboclinhos que ainda no sabem ao certo o que seriam folhas deestilo em cascata, e mesmo aqueles que jamais ouviram falar em tal coisa (e

    tambm os que acreditam que o certo CCS...).

    Para finalizar, pedirei uma coisa para aqueles corajosos que, porventura, leiam a

    apostila na ntegra: poderiam, por favor, caso encontrem algum texto errado,

    algum exemplo que no funcione, enfim, alguma coisa que no deveria estar onde

    est, me enviar um e-mailpara que eu possa corrigir? De quebra, se no for pedirdemais, se vocs tiverem alguma sugesto, idia, estmulo, doao (brincadeira),

    podem, tambm, me enviar uma mensagem?

    Vai que esse negcio todo de ter um blog e disponibilizar apostila d certo... A

    outras verses tero que surgir! (-:

    1 Tambm um um pouquinho de micro formatos (microformats) e, claro, j ter contato com o desenvolvimento para web,preferencialmente com alguns websites j feitos.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 20072

  • 8/8/2019 CSS, Uma Abordagem Geral

    3/60

    ALGUNS DIREITOS RESERVADOS

    Esta apostila registrada pela CREATIVE COMONS Atribuio 2.5 Brasil, que diz o

    seguinte:

    Ou seja, voc pode fazer quantas cpias da apostila quiser e repassar para quantas

    pessoas quiser, mostrar para quem quiser em qualquer lugar que desejar. Pode,

    inclusive, fazer uma apostila derivada, livro, manual, ou qualquer outra coisa

    baseada nos escritos que aqui constam, DESDE QUE voc cite que os textos

    originais so da autoria de Trcio Zemel (no caso, eu).

    Ah, s para constar nos autos, eu fiz esta apostila em ambiente Linux:

    Kurumin 7 kernel 2.6.18 (SO)

    Quanta+ 3.3.2 (cdigos)

    Konqueror 3.5.5 (testes)

    BrOffice.org 2.0 (textos)

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 20073

    Voc pode:

    copiar, distribuir, exibir, executar a obra

    criar obras derivadas

    Sob as seguintes condies:

    Atribuio: voc deve dar crdito ao autor original, daforma especificada pelo autor ou licenciante

    Para cada novo uso ou distribuio, voc deve deixar claro para outros ostermos da licena desta obra

    Qualquer uma destas condies podem ser renunciadas, desde que vocobtenha permisso do autor

  • 8/8/2019 CSS, Uma Abordagem Geral

    4/60

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 20074

  • 8/8/2019 CSS, Uma Abordagem Geral

    5/60

    SUMRIO

    W3C.............................................................................................................................................................10DESENVOLVIMENTO EM CAMADAS...............................................................................................11

    MARCAO x ESTILO........................................................................................................................12O QUE CSS?...........................................................................................................................................13VANTAGENS EM SE USAR CSS...........................................................................................................15

    SEPARAO DAS CAMADAS DE DESENVOLVIMENTO............................................................15WEBSITES MAIS LEVES.....................................................................................................................15CONTROLE TOTAL SOBRE O LAYOUT..........................................................................................16DIFERENTES ESTILOS PARA DIFERENTES MDIAS....................................................................16

    FUNDAMENTOS DE CSS.......................................................................................................................20COMO ESCREVER CSS (SINTAXE)...................................................................................................20

    Regras.................................................................................................................................................20Agrupamento......................................................................................................................................23Efeito Cascata.....................................................................................................................................23Herana...............................................................................................................................................24

    Seletores ID e Classe..........................................................................................................................26id....................................................................................................................................................26classe..............................................................................................................................................27

    Div e Span..........................................................................................................................................28div..................................................................................................................................................28span................................................................................................................................................29

    Comentrios........................................................................................................................................30MANEIRAS DE SE INSERIR CSS.......................................................................................................31

    Css Inline............................................................................................................................................31Css Incorporado..................................................................................................................................31Css Externo.........................................................................................................................................32

    SELETORES AVANADOS...................................................................................................................33SELETOR UNIVERSAL........................................................................................................................35SELETOR ID E SELETOR CLASSE....................................................................................................36SELETOR DESCENDENTE..................................................................................................................36SELETOR FILHO...................................................................................................................................37SELETOR IRMO ADJACENTE.........................................................................................................38SELETORES DE ATRIBUTO...............................................................................................................39

    E[att]...................................................................................................................................................39E[att=val]............................................................................................................................................39E[att~=val]..........................................................................................................................................39E[att|=val]...........................................................................................................................................40

    Combinao de Seletores de Atributo................................................................................................40PSEUDO-CLASSES...............................................................................................................................41:first-child...........................................................................................................................................41Pseudo-classes Para Links..................................................................................................................41

    :link................................................................................................................................................42:visited............................................................................................................................................42:hover.............................................................................................................................................42:active.............................................................................................................................................43ateno com as pseudo-classes para links......................................................................................43:focus..............................................................................................................................................44

    :lang....................................................................................................................................................44

    PSEUDO-ELEMENTOS........................................................................................................................44:first-line.............................................................................................................................................45

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 20075

  • 8/8/2019 CSS, Uma Abordagem Geral

    6/60

    :first-letter...........................................................................................................................................45:before e :after.....................................................................................................................................46

    COMPATIBILIDADE............................................................................................................................46DICAS GERAIS.........................................................................................................................................51

    TESTAR EM VRIOS NAVEGADORES............................................................................................51COMENTRIOS CONDICIONAIS......................................................................................................52!important................................................................................................................................................55

    SEMNTICA..........................................................................................................................................55LINKS.........................................................................................................................................................57GERAL....................................................................................................................................................57BLOGS....................................................................................................................................................58

    CONCLUSO............................................................................................................................................59

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 20076

  • 8/8/2019 CSS, Uma Abordagem Geral

    7/60

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 20077

  • 8/8/2019 CSS, Uma Abordagem Geral

    8/60

    CAPTULO 1

    INTRODUO

    Neste captulo apresento algumas questes

    essencialmente tericas, sem apresentar a

    codificao CSS. Abordo temas como W3C,desenvolvimento em camadas e algumas

    vantagens em se usar as folhas de estilo.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 20078

  • 8/8/2019 CSS, Uma Abordagem Geral

    9/60

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 20079

  • 8/8/2019 CSS, Uma Abordagem Geral

    10/60

    W3C

    Para explicar o que o W3C, mesmo que rapidamente, tomarei emprestadas as

    palavras de Maurcio Samy Silva, o Maujor2, em traduo feita em 08 de janeiro

    de 2005, do FAQ sobre web standards do Web Standards Project:

    O World Wide Web Consortium (W3C) um consrcio de mbito internacional

    dedicado a "conduzir a Web ao seu pleno potencial". dirigida por Tim

    Berners-Lee, o inventor da Web. Fundado em 1994, o W3C tem mais de 400

    organizaes membro incluindo a a Microsoft, America Online (proprietria da

    Netscape Communications), Apple Computer, [...] Sun Microsystems, e uma

    vasta gama de fabricantes de hardware e software, fornecedores de

    contedos, instituies acadmicas e companhias de telecomunicaes. O

    Consrcio est hospedado em trs instituies de pesquisas - - MIT nos EUA,

    INRIA na Europa e Keio University no Japo.

    Ainda no mesmo documento, apresentada uma explicao sobre o que

    exatamente o W3C faz:

    O W3C desenvolve especificaes abertas (de facto standards) para aumentar

    a interoperabilidade dos produtos para Web. As Recomendaes do W3C so

    desenvolvidas por grupos de trabalho formados por membros do Consrcio eexperts convidados. Os grupos de trabalho criam esboos e propostas de

    recomendaes , baseados em um consenso comum de companhias e

    organizaes interessadas na criao de aplicaes Web. Estas so ento

    submetidas apreciao dos membros do W3C e seu diretor para aprovao

    formal como uma Recomendao. [...] (sic)

    Ou seja, o W3C faz recomendaes a respeito de tecnologias, mtodos e tcnicas

    de produo para o ambiente online, indica o que deve e o que no deve ser feitoe/ou utilizado, em se tratando de desenvolvimento para web (dentre outras coisas).

    Mesmo sem ainda ter explicado o que CSS (Cascading Style Sheet), ou, como

    prefiro, folha de estilo em cascata (ou, simplesmente, folha de estilo), adianto que

    uma tecnologia aprovada e recomendada pelo W3C.

    2 http://www.maujor.com/

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200710

    http://www.maujor.com/http://www.maujor.com/
  • 8/8/2019 CSS, Uma Abordagem Geral

    11/60

    DESENVOLVIMENTO EM CAMADAS

    O desenvolvimento em camadas um conceito originalmente convencionado para o

    desenvolvimento de softwares, mas, em se tratando de desenvolvimento para web,

    quer dizer que h a separao do contedo, apresentao e comportamentono momento da feitura de um website3.

    Por camada de contedo, entende-se que seja as informaes que o website

    contm: so os textos, informaes, notas, cabealhos, desenvolvimentos,

    anlises, avaliaes, enfim, toda a parte escrita, seu contedo (incluindo-se a

    listagens, links, tabelas e grficos).

    A camada de apresentao refere-se ao modo como o que consta na camada de

    contedo vai ser mostrado, apresentado. Aqui so definidas as cores e tamanhos

    de links e textos e especificados os locais em que estes vo constar; onde se

    coloca uma listagem esquerda ou direita, onde se especifica um plano de fundo,

    onde se escolhe em qual posio uma imagem ir aparecer.

    Na camada de comportamento alguns efeitos so postos s pginas para

    conferir interatividade/dinamismo s mesmas, ou seja, como determinados

    elementos e estruturas vo se comportar. aqui a etapa onde se define que uma

    janela popup aparecer ao se clicar em um link; aqui onde se define que ao se

    passar o ponteiro do mouse em um elemento, este ir se expandir e apresentar

    informaes adicionais4.

    Perceba como isso prtico, poupa tempo e oferece autonomia aos diferentes

    estgios de produo de um website. Por exemplo: o responsvel pela camada decontedo precisa elaborar um formulrio para o cadastro de clientes;

    simultaneamente, a aparncia deste formulrio (e da pgina como um todo) pode

    ser feita por outro desenvolvedor. Um no precisa esperar o trmino do trabalho do

    outro (muito menos ficam mutuamente dependentes), pelo contrrio, ambos

    executam suas respectivas tarefas concomitantemente, poupando tempo e

    3 E no somente a websites; o mesmo deve ser aplicado para minisites, hotsites, portais, sistemas de contedo interativo-dinmico e quaisquer outros que sejam feitos aos moldes de pgina da internet.

    4 Ou seja, esta a camada que recebe um javascript, um vbscript, uma aplicao em AJAX (embora algunsdesenvolvedores entendam que o AJAX posto em uma quarta camada).

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200711

  • 8/8/2019 CSS, Uma Abordagem Geral

    12/60

    maximizando a produo, como um todo e, caso alguma alterao/atualizao

    precise ser realizada, pode-se alterar o que foi feito em cada camada

    separadamente, sem interferir em nada o contedo de outra.

    MARCAO x ESTILOCom base na explicao do conceito de desenvolvimento em camadas, vou

    apresentar algumas consideraes mais prticas.

    A camada de contedo, tecnicamente falando, onde se insere o (X)HTML. E esta

    tecnologia foi justamente idealizada para esse fim. O significado destas letras seria

    algo como linguagem de marcao de hipertexto. E gostaria que voc desse

    especial importncia palavra marcao.

    Atravs das tags (X)HTML podemos especificar o que um ttulo primrio ou

    cabealho, o que um pargrafo, onde haver uma quebra de linha num texto, o

    que uma lista, uma citao de algum autor, quando um elemento deve aparecer

    em negrito ou itlico, enfim, dentro das limitaes desta tecnologia, tem-se tudo o

    que necessrio para a construo de pginas para a web.

    Uma explicao que pode aclarar o que estou querendo dizer a seguinte: quando

    um desenvolvedor est especificando todos estes itens, ele marca naquela pgina

    o qu o qu5. Quando ele coloca uma palavra entre as tagse, est

    marcando o local onde aparecer uma palavra em itlico em dispositivos de

    renderizao em tela e, ao mesmo tempo, uma palavra que receber nfase ao ser

    lida por um sintetizador de voz, por exemplo.

    E para isso que serve o (X)HTML: nada mais, nada menos, que

    marcar/estruturaros elementos que voc deseja em pginas web (na camada de

    contedo)6. O estilo (ou estilizao) diz respeito camada de aparncia, ou seja,

    deve ser feito com a utilizao de CSS.

    5 Ser que usei a acentuao corretamente?6 Na verdade existem tags que servem para estilizar elementos, como alterar a cor de uma fonte, por exemplo, mas a

    abordagem que fao nesta apostila no diz respeito a tcnicas antigas de desenvolvimento para web, utilizadas em pocasem que a tecnologia das folhas de estilo ainda no havia surgido.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200712

  • 8/8/2019 CSS, Uma Abordagem Geral

    13/60

    O QUE CSS?

    Depois das informaes anteriormente apresentadas, vou explicar o que so as

    folhas de estilo em cascata, propriamente ditas. Mas, antes, abordarei alguns

    aspectos histricos.

    Anteriormente chegada de CSS no mbito das tecnologias voltadas ao

    desenvolvimento para web (antes de 1996), a aparncia dos elementos das pginas

    era especificada/controlada atravs de, basicamente, tags (X)HTML. Se fosse

    preciso especificar, por exemplo, que os ttulos principais dos documentos fossem

    vermelhos e tivessem um tamanho especial, poderia se usar:

    Ttulo

    Muito bem. Imagine um website com 10 ou 20 pginas, e todas elas com um ttulo

    principal. Se por algum motivo voc tivesse que alterar a aparncia destes ttulos

    (por solicitao do cliente, por exemplo), mudando a cor de vermelho para laranja,

    o que precisaria ser feito? Exatamente: ir em cada marcao de ttulo principal e

    alterar a propriedade color, da tag font, para a cor necessria. demorado e

    chato, mas tudo bem... Afinal de contas, o cliente precisa disso (e,conseqentemente, voc tambm).

    E se, ao invs de 10 ou 20 pginas, o website tivesse 40 ou 80 pginas e a

    modificao solicitada abrangesse no somente os ttulos principais, mas os

    secundrios e tercirios, alm da mudana da cor de todos os links? Um pouco mais

    complicado? E se houvesse um prazo para fazer isso em uma hora, pois o cliente

    precisa das modificaes para apresentar seu site a um scio ou potencialcomprador?

    Essa mistura de ambientes (contedo e apresentao) certamente prejudicial

    para todas as partes envolvidas na produo de pginas www. Alm das variveis

    tempo e pacincia, pense em credibilidade, disponibilidade e prejuzo (pois

    tempo dinheiro, e perda de tempo para atualizar um site e/ou poder tratar a

    feitura de um novo, perda de dinheiro).

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200713

  • 8/8/2019 CSS, Uma Abordagem Geral

    14/60

    No exemplo acima citado, utilizando CSS o trabalho de alterao de todos os ttulos

    primrios, secundrios e tercirios e links das pginas poderia ter sido realizado em

    poucos minutos7 (com o estudo dos tpicos subseqentes, ser possvel entender

    como). Seria possvel, para o desenvolvedor, realizar o trabalho muito antes do

    prazo estabelecido terminar, sem que, com isso, ele tivesse uma crise de nervos e

    pacincia. Com isso, ele poderia concentrar seus esforos na feitura ou manuteno

    do site de outro cliente (ou conseguir outro trabalho, caso no tivesse mais pginas

    para mexer8).

    Mas a experincia deste catico exemplo que apresentei no precisa ser vivenciada

    por nenhum desenvolvedor, caso este escolha adotar o desenvolvimento em

    camadas e separar totalmente o contedo da apresentao nas pginas que faz.

    Foi para melhorar a vida/trabalho dos desenvolvedores (e clientes) que as folhas de

    estilo foram idealizadas e sua tecnologia desenvolvida! atravs delas que,

    atualmente, pode-se realizar um trabalho mais consistente, profissional, moderno e

    mais facilmente manutenvel.

    Respondendo pergunta do presente tpico, CSS, ou folha de estilo em

    cascata, um arquivo que contm especificaes de como devem serexibidos (estilizados) os elementos das pginas de um website, ou seja,

    tags (X)HTML9.

    7 De 3 a 5, mais ou menos.8 Melhor ainda: assistir a um anime! (-;9 E, de novo, seu ancestral o desenvolvimento de softwares. Por exemplo: em um editor de texto estilo M$ Word,

    BrOffice, etc, como voc acha que, quando voc especifica que um bloco de texto um pargrafo, ele altera suaaparncia segundo um estilo pr-especificado?

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200714

  • 8/8/2019 CSS, Uma Abordagem Geral

    15/60

    VANTAGENS EM SE USAR CSS

    Este tpico serve para aqueles cujo significado, importncia e utilidade das folhas

    de estilo ainda no tenha ficado suficientemente claros. Talvez eu at ajude os mais

    experientes a recordar de algumas coisas. (-;

    SEPARAO DAS CAMADAS DE DESENVOLVIMENTO10

    Como j mencionado, ao se utilizar as folhas de estilo, a proposta da separao de

    todo o material em camadas pode ser cumprida.

    Enquanto a camada de contedo vai sendo codificada em (X)HTML, a camada de

    apresentao, por sua vez, vai sendo feita de forma separada e totalmente

    independente, via CSS11.

    E isso pode (e, preferencialmente, deve) ser feito por pessoas ou equipes

    diferenciadas, com qualificao especial para as diferentes tarefas, poupando

    tempo e aumentando a produtividade do grupo ou empresa (aumentando, dessa

    forma, a lucratividade e poupando tempo).

    WEBSITES MAIS LEVES

    Pelo fato de se utilizar a separao em camadas (e, conseqentemente, a

    apresentao das pginas ficar especificada em um arquivo parte), a largura de

    banda fica reduzida, e isso acarreta em diminuio de custos12.

    Via CSS, possvel criar efeitos sofisticados/arrojados, anteriormente s alcanadoscom a utilizao de tecnologias comoJava eJavascript, que so mais pesadas.

    10 , estou dando nfase a essa questo! Quando conheci este mtodo de produo fiquei to perplexo com suas vantagens(e atrocidades que cometia na utilizao do antigo mtodo), que isso no poderia ser de outra forma. Tomara que todoaquele que est iniciando na carreira de desenvolvedor web tenha a sorte de j comear trabalhando com separao decamadas!

    11 Caso essa independncia toda a qual me refiro constantemente ainda no tenha sido aclarada, imagine que voc podealterar TODA a aparncia do website sem alterar sequer 1 caracter na camada de contedo. Uma empresa, por exemplo,pode alterar a aparncia de sua loja virtual conforme datas comemorativas: no natal, as pginas contero flocos de nevee sacos de presente, na pscoa, a televiso ser ofertada em um ambiente achocolatado. Recomendo que visitehttp://www.csszengarden.com/.

    12 Algum sempre paga pelo consumo de banda...

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200715

    http://www.csszengarden.com/http://www.csszengarden.com/http://www.csszengarden.com/
  • 8/8/2019 CSS, Uma Abordagem Geral

    16/60

    CONTROLE TOTAL SOBRE O LAYOUT

    H um antiquado mtodo de estruturao do layoutde websites: ele apregoa que

    grficos e a disposio dos elementos que compem as pginas devem ser

    montados utilizando-se tabelas e remendando possveis falhas de estruturao

    com o advento de pequenas imagens ocultas (os famosos gifs transparentes).

    Caso seja necessrio alterar, por exemplo, a posio de um menu que est na

    esquerda, para a direita, l se vo horas, dias, semanas de trabalho braal,

    dependendo do tamanho do website; essa tarefa pode at ser feita mais

    rapidamente utilizando-se templates de editores WYSIWYG13, no entanto, alguns

    poluem tanto o cdigo-fonte que fica quase que literalmente impossvel prestar

    algum tipo de manuteno futura.

    Quando se utiliza as folhas de estilo para a estruturao de layouts, esse problema

    desaparece! Um menu pode ser deslocado de um lado para outro da pgina com a

    mesma rapidez que se altera a cor de todos seus textos: poucos minutos!

    DIFERENTES ESTILOS PARA DIFERENTES MDIAS

    Com as folhas de estilo possvel especificar estilos (aparncias) diferenciados para

    diversos tipos de mdia, tais como o monitor, webTV, handheld, dispositivos braile,

    dentre outros.

    Alm disso, utilizando determinadas tcnicas CSS, pode-se fazer um site cujo

    layout seja adaptvel a qualquer resoluo de tela, terminando com o clssico

    problema de reproduo de pginas para diferentes resolues e controle destas via

    scripts incorporados.

    E mais: mesmo que algum esteja navegando com a exibio de estilos e/ou

    imagens desativada, ou mesmo atravs de browsers com suporte a somente textos

    (tais como o Lynx), o contedo do site, na ntegra, pode ser visualizado.

    13 Exemplos de editores WYSIWYG: Quanta+, Bluefish, Dreamweaver, HTML-Kit, NVU, HTMLGate Free...

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200716

  • 8/8/2019 CSS, Uma Abordagem Geral

    17/60

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200717

  • 8/8/2019 CSS, Uma Abordagem Geral

    18/60

    CAPTULO 2

    CODIFICAO CSS

    Neste captulo abordarei a codificao CSS,

    propriamente dita. Apresentarei desde a

    sintaxe bsica e formas de insero (tipos deCSS) at chegar aos seletores avanados.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200718

  • 8/8/2019 CSS, Uma Abordagem Geral

    19/60

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200719

  • 8/8/2019 CSS, Uma Abordagem Geral

    20/60

    FUNDAMENTOS DE CSS

    Antes de passar ao estudo de como efetivamente estilizar os elementos de um

    website, extremamente necessria mais uma parte terica.

    Os conceitos que apresentarei a seguir so a base para o entendimento de todas as

    maneiras e tcnicas de utilizao de CSS, portanto, devem ser estudadas

    minuciosamente a fim de se entender o tema de forma satisfatria.

    Frisando: grande parte do que apresento aqui , na verdade, uma compilao de

    outros materiais que encontrei em apostilas virtuais e websites. Conforme o texto

    prossiga, prestarei os merecidos crditos.

    COMO ESCREVER CSS (SINTAXE)14

    Todas as linguagens de marcao e programao devem ser norteadas por

    convenes, regras de escrita, sem as quais sua efetiva aplicao no seria

    possvel. De igual maneira, para as folhas de estilo em cascata foram estipuladas

    convenes, tratados, formas para que a padronizao de sua codificao fosse

    possvel.

    Essas regras, esses padres de escrita, essas convenes, podem ser chamadas

    sintaxe, e atravs dela que se pode escrever cdigos em CSS (e nas linguagens

    de programao/marcao, tambm)15.

    Regras

    Segundo o que consta na documentao oficial do W3C Folhas de Estilo CSS, nvel

    1, de 17 de dezembro de 1996, revisada em 11 de janeiro de 199916, uma regra

    composta de duas partes principais: um selector (sic) [...] e uma declarao [...].

    Por sua vez, esta declarao tambm possui duas partes: uma propriedade [...] e

    seu valor [...].

    14 Para os estudos a seguir, o foco ser para CSS externo. Se no souber o que isso, calma, mais frente ser explicado.15 Ateno: esta palavra apresenta diferentes significaes, dependendo do contexto e rea em que usada.16 http://www.w3.org/TR/1999/REC-CSS1-19990111

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200720

    http://www.w3.org/TR/1999/REC-CSS1-19990111http://www.w3.org/TR/1999/REC-CSS1-19990111
  • 8/8/2019 CSS, Uma Abordagem Geral

    21/60

    Ou seja, ao se codificar as folhas de estilo em cascata se est falando,

    tecnicamente, em manipulao de regras. E estas regras, por sua vez, so

    compostas por 3 partes:seletor,propriedade e valor.

    Portanto, a sintaxe genrica de uma declarao CSS simples a seguinte:

    Na qual:

    seletor representa, em um primeiro momento, as tags (X)HTML, tais como

    pargrafos (p) e ttulos primrios (h1), e, em um segundo momento, divs, spans,ids, classes epseudo-elementos (que sero explicados posteriormente).

    propriedade assumindo parmetros que podem ser controlados atravs das

    folhas de estilo, ou, praticamente falando, o atributo do seletor que ser

    modificado.

    valor como, nas palavras de Maurcio Samy Silva, o Maujor17, a caracterstica

    especfica a ser assumida pela propriedade.

    E, atravs da frmula acima, tambm pode-se observar mais algumas questes a

    respeito da sintaxe: logo aps a declarao do seletor, as propriedades escolhidas

    devem ser postas entre chaves ({ e }) e, seu(s) respectivo(s) valor(es),

    declarado(s) logo aps dois-pontos (:) e finalizado(s)/separado(s) com um ponto-

    e-vrgula(;).

    Ficou um pouco confuso depois da explicao? Basta olhar novamente (e quantas

    vezes forem necessrias) a frmula e ficar atento aos exemplos a seguir.

    Se eu quiser que a cor da letra de todos os pargrafos do website sejam de uma

    cor azul, uso o seguinte:

    17 http://www.maujor.com/

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200721

    seletor { propriedade: valor; }

    http://www.maujor.com/http://www.maujor.com/
  • 8/8/2019 CSS, Uma Abordagem Geral

    22/60

    p { color: #369; }

    Repetindo: eu quero que todos os pargrafos (p) tenha uma cor (color) azul (#369).

    Perceba que especifiquei a cor atravs da codificao hexadecimal18.

    Depois disso, se revolver definir um tamanho para as letras, acrescentaria:

    p { color: #369; font-size: 14px; }

    Est ficando mais claro, agora? Assim como toda rea de conhecimento a ser

    aprendida, inicialmente pode ser que parea muito difcil e complexo, entretanto,

    com o passar do tempo e continuidade no estudo, tudo vai ficando melhor19.

    Aconselho que, em regras em que o seletor possua vrias propriedades, voc

    organize a codificao da seguinte maneira:

    p {

    color: #369;

    font-size: 14px;

    }

    Tanto a primeira regra, quanto esta, funcionaro de igual maneira e perfeitamente,

    no entanto, quando se opta pela segunda maneira, seu cdigo fica mais legvel e

    voc conseguir ter mais facilidade em prestar manutenes necessrias20.

    Mesmo se isso no fizer sentido pra voc, agora, saiba do seguinte: uma folha de

    estilos para um website relativamente pequeno e simples, de 8 ou 10 pginas, pode

    facilmente ultrapassar 80 regras. E, claro, nem a metade delas ter apenas uma

    propriedade. Inclusive, em algumas, so necessrias mais de 10! Pense nisso.

    Outra coisa: na verdade, para a declarao da ltima propriedade de uma regra,

    no necessrio que se coloque o ponto-e-vrgula (;); entretanto, aconselho que

    voc faa isso. A experincia mostra que muito fcil, depois de se inserir uma

    nova propriedade ao final de uma regra, esquecer-se de incluir o ponto e vrgula na

    (agora) penltima propriedade, o que acarreta em erros em sua estilizao.

    18 Faa uma pesquisa a respeito, caso no saiba o que isso.19 Esse foi o momento consolo. (-:20 Algumas pessoas (dentre as quais eu me incluo) costumam estabelecer critrios para a insero das propriedades, como

    ordem alfabtica, por exemplo.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200722

  • 8/8/2019 CSS, Uma Abordagem Geral

    23/60

    Agrupamento21

    Pode ser que voc queira especificar as mesmas propriedades para seletores

    diferentes. Neste caso, possvel que voc o faa declarando to-somente uma

    regra, separando os seletores por vrgula (,). Se, por exemplo, quiser que os

    textos dos pargrafos e os ttulos secundrio e tercirio sejam de uma corvermelha, poderia usar o seguinte:

    p, h2, h3 { color: #F00; }

    Efeito Cascata

    Se ainda no se perguntou o motivo desse nome doido que folha de estilo em

    cascata, a hora agora. Afinal, eles no batizariam uma tecnologia toimportante de forma a no representar nada, no verdade? Esse cascata no

    nome, remete a algo muitssimo importante: o mtodo pelo qual conflitos entre

    regras so tratados. Palma, palma, no priemos cnico!

    Quando temos um documento com vrias regras CSS, acontece de determinadas

    regras terem um peso a mais, em detrimento de outras; serem mais especficas

    ou, como dizem alguns, mais importantes. E, no momento de interpretar um cdigoCSS, o renderizador deve saber qual o peso de cada declarao, e como as regras

    se interrelacionam-se entre si22.

    H uma ordem pr-estabelecida para o efeito cascata, que a seguinte23:

    1. Localizadas todas as regras aplicveis ao seletor/propriedade, determina-se a

    especificidade de cada uma delas. A regra mais especifica entre as

    conflitantes ser aplicada. Se no for encontrada uma (ou mais) regra

    aplicvel ao elemento (X)HTML, este herdar as propriedades de estilo de seu

    elemento pai. No havendo elemento pai ser aplicado o valor inicial default

    de estilo para aquele elemento

    2.Regras com declarao importante (!important) tem prioridade sobre aquelas

    21 Alguns chamam de grupamento. E agora, qual correto? Ahhh, vou deixar assim, mesmo...22 Uma orao bem filosfica, h?23 Extrado do FAQ sobre CSS da pgina do Maujor (http://www.maujor.com/), com ligeiras modificaes.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200723

    http://www.maujor.com/http://www.maujor.com/
  • 8/8/2019 CSS, Uma Abordagem Geral

    24/60

    sem a declarao. Se o autor e o usurio declaram regras conflitantes com

    !important, as do usurio tm prioridade sobre as do autor24

    3.Regras com mesmo peso (sem !important) e conflitantes, declaradas pelo

    autor, tm prioridade sobre aquelas declaradas pelo usurio. Regras do

    usurio com maior especificidade que aquelas do autor, tm a prioridade.Regras com igual especificidade declaradas pelo autor tm prioridade sobre as

    do usurio. Regras do autor e do usurio tm prioridade sobre as regras

    defaultdas aplicaes do usurio (ex.: o browser)

    4. Regras mais especficas tm a prioridade sobre as menos especficas

    5. Entre regras de mesmo peso, tm prioridade aquelas declaradas por ltimo

    na sequncia das regras na folha de estilos

    6. Folhas de estilo inline, incorporadas, lincadas e importadas (@import), nesta

    ordem, tm do maior para o menor peso (estilos inline tm o maior peso).

    Entre vrias folhas de estilo lincadas tm maior prioridade aquela importada

    por ltimo (mais prxima da tag head). O mesmo ocorre entre as folhas

    importadas (@import)25

    Herana

    Um outro significado para cascata, na significao de CSS (folha de estilo em

    cascata), seria herana.

    Em CSS, os seletores so tratados como membros de uma famlia hierarquicamente

    organizada. H pais, filhos, netos, irmos, etc. Mais ou menos como na vida real,os descendentes herdam os atributos de seus ascendentes.

    Observe o seguinte trecho de cdigo XHTML:

    24 O !importantser explicado em outra parte da apostila25 O @import no ser explicado nesta apostila... Faa uma pesquisa para saber mais a respeito.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200724

  • 8/8/2019 CSS, Uma Abordagem Geral

    25/60

    Este o nosso mundo, o que demais nunca o bastante,


    A primeira vez: sempre a ltima chance,

    Ningum v onde chegamos:

    Os assassinos esto livres, ns no

    estamos

    De acordo com a metodologia CSS, pelo fato de a tagstrong estar dentro da

    tagp, ela sua descendente direta, sua filha (ou filho, se preferir); por sua vez, a

    tagp filha de body (conseqentemente, strong neta de body). Logo, temos aseguinte hierarquia nas geraes desta famlia:body -> p -> strong.

    Pelo que foi exposto a pouco, se voc especificar que body ter suas letras de uma

    cor azul e pertencer a uma famlia de fontes serifadas, automaticamente estar

    especificando que sua filha, p, e sua neta, strong, tero a mesma cor e serifa.

    Lembre-se de que os descendentes herdam os atributos de seus respectivosascendentes.

    Assim como na vida real, os descendentes no necessariamente precisam carregar

    consigo todas as caractersticas de seus ascendentes. Basta querer mudar! Se for

    preciso que strong tenha uma cor diferenciada da de sua me e av, no h

    problemas quanto a isso. Observe:

    body {

    color: #00F;

    font-family: serif;

    }

    strong { color: #0F0; }

    Com isso, body e p tero suas letras com uma cor azul e sua fonte pertencente

    uma famlia de fontes serifadas e, strong, uma cor verde (e continuar com o

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200725

  • 8/8/2019 CSS, Uma Abordagem Geral

    26/60

    mesmo tipo de fonte de seus ascendentes, j que nenhuma propriedade que diga o

    contrrio foi declarada).

    Seletores ID e Classe

    H duas propriedades que elevam bastante as potencialidades das folhas de estilo:classe (class) e identificador (id). Elas permitem que voc aproveite mais o que as

    folhas de estilo tm a oferecer.

    id

    Os seletores ID so representados por uma tralha (#). Sua funo estilizar um

    elemento que tenha um nome em especial, e atente-se expresso um

    elemento, pois no pode haver IDs com nomes iguais numa mesma pgina, ou

    seja, um ID deve ser exclusivo, individual, singular, ou quaisquer outras

    expresses redundantes que indiquem seu carter nico em um documento.

    Veja um exemplo de seletor ID:

    #paragrafoDestaque {

    color: #F00;font-size: 120%;

    }

    Portanto, em uma pgina (ou conjunto de pginas) que receber(o) esta

    estilizao, poder haver somente um pargrafo destaque, e seria algo como:

    Este um texto com destaque!

    Perceba que, na hora de especificar a qual ID um elemento pertence, no

    necessrio incluir a tralha (#), basta colocar seu nome.

    Tambm pode haver a presena de IDs nas hierarquias mais profundas dos

    elementos das pginas. Algo como:

    p a em#maior { font-size: 150%; }

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200726

  • 8/8/2019 CSS, Uma Abordagem Geral

    27/60

    Perceba que a regra que acaba de ser apresentada surtir efeito somente em uma

    tagem de ID maior, que esteja presente em um link (a) dentro de um pargrafo

    (p)26:

    Para maiores informaes, acesse o site

    da World Wide Web Consortium!

    classe

    Diferentemente dos IDs, as classes podem ser atribudas a elementos diferentes

    na(s) pgina(s) de um website.

    Pode-se, por exemplo, especificar que haver dois tipos de pargrafo em seuwebsite: um com a fonte de uma cor vermelha e famlia de fontes com serifa e

    outro com a fonte de uma cor verde e famlia de fontes sem serifa. Para facilitar o

    entendimento, vou apresentar um exemplo:

    p.vermelho {

    color: #F00;

    font-family: serif;

    }

    p.verde {color: #0F0;font-family: sans-serif;

    }

    Fique atendo sintaxe: aps a declarao do seletor, h um ponto (.) e, logo

    depois, o nome escolhido.

    Com isso, estabeleci duas regras, ou, poderia se dizer, duas classes de pargrafo.

    Agora, minha folha de estilo possui uma classe de pargrafo de nome vermelho e

    outra de nome verde, cada uma delas com diferentes propriedades e, por

    conseqncia, realizar diferentes estilizaes.

    26 Este tipo de regra ser mais bem explicada um pouco frente.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200727

  • 8/8/2019 CSS, Uma Abordagem Geral

    28/60

    Em algum momento do texto, caso eu queira me valer das respectivas classes,

    basta inserir seus nomes com a propriedade class na tagp. Veja:

    primeiro pargrafo

    segundo pargrafo

    terceiro pargrafo

    quarto pargrafo

    quinto pargrafo

    Perceba at que ponto as classes podem ser teis: se eu declaro uma classe

    genrica, ou seja, que no pertena a nenhum seletor (X)HTML especfico, posso

    us-la em qualquer tag. Exemplo:

    .azul { color: #00F; }

    Agora posso utilizar isso da seguinte maneira:

    Teste

    primeiro pargrafo do teste.

    segundo pargrafo do teste.

    Viu? Quando crio uma classe genrica posso utiliz-la em qualquertag que queira,

    conseguindo os resultados pretendidos.

    Div e Span

    DIV e SPAN so duas tags (X)HTML comuns. Com elas, possvel que se estenda

    as possibilidades de estilizao numa folha de estilos.

    div

    Essa tag, quando usada em um documento puro (X)HTML, na verdade, faz nada!

    Por outro lado, quando nos valemos de uma estilizao CSS, podemos aproveitar, e

    muito, essa diviso feita no cdigo, criando regras a partir de IDs e classes em

    DIVs. Observe esse cdigo XHTML:

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200728

  • 8/8/2019 CSS, Uma Abordagem Geral

    29/60

    Este um pargrafo normal, dentro de uma DIV.

    No momento da renderizao, aparecer somente um texto puro, mesmo.

    Observe, ento, como podemos fazer para aplicar um estilo personalizado, apenas

    atribuindo um ID para a DIV em questo. O XHTML ficaria assim:

    Este um pargrafo normal, dentro de uma DIV.

    E o CSS:

    #personalizado {

    background-color: #396;

    border: 3px double #369;

    color: #FFF;

    padding: 5px;

    width: 40%;

    }

    Perceba: com a estilizao do trecho XHTML por essa regra CSS, a DIV que, at

    ento, no tinha muito utilidade, transforma-se em um poderoso meio para

    estilizar pginas e compor layouts.

    span

    O SPAN como se fosse uma DIV em miniatura. A DIV, que a diviso que sepode fazer em pginas (X)HTML, como se fosse de abrangncia maior, ou seja,

    usa-se o SPAN para estilizar pequeninos trechos em seu cdigo de marcao. O

    princpio de aplicao o mesmo, podendo, os SPANs, serem estilizados quando,

    para eles, se atribui um ID ou classe. Olha o XHTML:

    Com SPANS, pode-se

    estilizar pequenos trechos de cdigo!

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200729

  • 8/8/2019 CSS, Uma Abordagem Geral

    30/60

    Com o seguinte CSS:

    .spanDoido {

    background-color: #F00;

    color: #FFF;

    margin-bottom: 5px;

    padding: 2px;

    }

    com o uso de SPANs que se pode, por exemplo, especificar que determinada

    palavra ou frase, num documento (X)HTML, de outro idioma, o que facilita

    bastante a vida de quem precisa de um sintetizador de voz para navegar pela web:

    Campanha de sade pblica: "Microsoft

    , nem morto"!

    Comentrios

    Para facilitar o entendimento futuro de um cdigo que est sendo escrito, possvel

    que se comente suas folhas de estilo, ou seja, voc pode, nos pontos que achar

    conveniente, digitar textos, para si mesmo ou outras pessoas, com explicaes,

    conceitos, idia, planos de implementao futura, trechos de cdigo que precisemser isolados para testes, ou qualquer outra coisa que quiser.

    E, ao fazer isso, suas estilizaes no sero prejudicadas, j que quando algum tipo

    de mdia interpreta um arquivo .css, desconsidera o que est comentado, quer

    dizer, no toma aquele trecho como se fosse alguma inteno de declarar uma

    regra, ou algo do tipo.

    Os comentrios, em CSS, vm envoltos entre o par de caracteres barra-asterisco

    (/*), asterisco-barra (*/).

    Isto quer dizer que tudo aquilo que estiver entre este par de caracteres no ser

    interpretado na hora da montagem das estilizaes. :

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200730

  • 8/8/2019 CSS, Uma Abordagem Geral

    31/60

    h2 { font-size: 120%; }

    /*estou fazendo um comentrio em meu arquivo CSS,e ele pode, inclusive, ter quantas linhas eu quiser*/

    p { color: #FF0; }

    MANEIRAS DE SE INSERIR CSS

    Basicamente, h 3 maneiras de se inserir CSS em um documento: insero inline,

    insero no prprio documento e chamar uma folha externa (respectivamente

    chamados de CSS inline, CSS incorporado e CSS externo).

    Css Inline

    Para se inserir um CSS inline, o esquema colocar as declaraes como se fossem

    valores da propriedade (X)HTML style. Exemplo:

    CSS!

    Pde-se perceber o motivo pelo qual esse tipo de CSS no o mais usado: no h

    tanta flexibilidade para a realizao de alteraes, haja vista que a regra aplica-sesomente ao elemento que recebeu a estilizao.

    Css Incorporado

    Para esse tipo de CSS, as regras so colocadas no prprio documento, na tag

    head. Sua abrangncia to-somente a prpria pgina em que esto inseridas,

    ou seja, possui um grau mediano de flexibilidade, j que potenciais alteraes

    aplicar-se-o ao documento atual, e a nenhum outro. A sintaxe a seguinte:

    [regras CSS]

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200731

  • 8/8/2019 CSS, Uma Abordagem Geral

    32/60

    Css Externo

    Esse o tipo de insero de CSS mais usado. Nessa modalidade, as regras CSS so

    escritas em um arquivo parte do (X)HTML e chamados para as estilizaes.

    Voc pode preparar as regras at em editores de texto simples, como KEdit ou

    Bloco de Notas. A nica observao no se esquecer de salvar o arquivo com aextenso .css.

    no CSS externo que o verdadeiro poder est! H!

    J que todos os documentos (X)HTML de seu website estaro chamando a mesma

    folha de estilos, se precisar fazer alguma alterao em CSS, basta editar seu

    arquivinho que, na mesma hora, as mudanas se aplicaro ao site por completo27!

    Basta colocar o seguinte, na tag head dos documentos:

    27 Agora acredita no que est escrito na pgina 14?

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200732

  • 8/8/2019 CSS, Uma Abordagem Geral

    33/60

    SELETORES AVANADOS

    Lembra-se do exemplo da famlia CSS28? Em CSS existem seletores especiais

    para que haja um maior controle do desenvolvedor quando este precisa trabalhar

    com estilizaes mais especficas, facilitando o desenvolvimento em geral.

    Antes de entrar um pouco mais a fundo no assunto, cabe mostrar um pequeno

    conceito sobre os principais graus de parentesco entre elementos que recebem

    estilizao. Observe a tabela:

    ELEMENTO EXPLICAOdescendente elemento que seja filho, neto, bisneto (e assim por

    diante) de outro elemento, dentro da hierarquiapresente na pgina

    ascendente (ou ancestral) elemento que seja pai, av, bisav (e assim pordiante) de outro elemento, dentro da hierarquiapresente na pgina

    pai elemento imediatamente anterior a outro, dentro dahierarquia presente na pgina

    filho elemento imediatamente posterior a outro, dentro dahierarquia presente na pgina

    irmo elemento adjacente a outro, dentro da hierarquiapresente na pgina; ambos filhos do mesmo pai

    S para exemplificar, novamente:

    Vocs esperam uma interveno divina

    Mas no sabem que o tempo agora est contra vocs,

    Vocs se perdem no meio de tanto medo,

    De no conseguir dinheiro pra comprar sem se vender

    No caso, o pargrafo (

    ) filho de (e, conseqentemente, seu

    pai) e as tags , suas netas. Por falar nelas, reparem que so irms (filhas do

    mesmo pai:

    ).

    28 Pgina 24.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200733

  • 8/8/2019 CSS, Uma Abordagem Geral

    34/60

    Perceba quantas relaes de hierarquia (ou parentesco, se preferir) existem em um

    simples pequeno pargrafo. Pense em quantos tatatataranetos podem existir em

    um documento mais complexo. Por esse motivo de essencial importncia que se

    preste bastante ateno ao conceitos deste tpico e, importantssimo, que se

    pratique imediatamente e que se faa testeS29 de tudo o que se vai lendo por aqui.

    Muito bem, agora observe esta tabela30 que mostra a sintaxe genrica das relaes

    hierrquicas que podem ser usadas com as folhas de estilo:

    SELETOR FORMATO DESCRIOuniversal * relacionado a qualquer elemento

    tipo E relacionado ao elemento E

    classe .info relacionado a qualquer elemento cuja classeseja info

    id #teste relacionado ao elemento de id teste

    descendente E Frelacionado a qualquer elemento F que sejadescendente do elemento E

    filho E > Frelacionado a qualquer elemento F que sejafilho do elemento E

    irmo adjacente E + Frelacionado a qualquer elemento F que sigaimediatamente ao elemento E

    atributo E[att]relacionado a qualquer elemento E que tenhaum atributo att, independente do valor desteatributo

    atributo E[att=val]relacionado a qualquer elemento E que tenhaum atributo att de valor igual a val

    atributo E[att~=val]

    relacionado a qualquer elemento E que tenhaum atributo att de valor igual a um valorqualquer separado por um espao de um valorigual a val

    atributo E[att|=val]

    relacionado a qualquer elemento E que tenhaum atributo att de valor igual a um valorqualquer separado por um hfen de um valorcomeando com val

    pseudo-classe:first-child

    E:first-childrelacionado ao elemento E que for o primeirofilho do seu elemento pai

    pseudo-classe E:link relacionado a link ainda no visitado (:link) ou

    29 Com S, mesmo, para enfatizar que devem ser muitosss!30 Adaptada da traduo feita pelo Maujor (http://www.maujor.com/) do artigo CSS2.1 selectors, de Roger Johansson

    (http://www.456bereastreet.com/).

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200734

    http://www.maujor.com/http://www.456bereastreet.com/http://www.maujor.com/http://www.456bereastreet.com/
  • 8/8/2019 CSS, Uma Abordagem Geral

    35/60

    link E:visited com link j visitado (:visited).

    pseudo-classesdinmicas

    E:hoverE:focusE:active

    relacionado a E quando de uma ao dousurio

    pseudo-classe:language

    E:lang(c) relacionado a elementos E escritos no idioma c

    pseudo-elemento:first-line

    E:first-line relacionado primeira linha do elemento E

    pseudo-elemento:first-letter

    E:first-letter relacionado primeira letra do elemento E

    pseudo-elementos:before e :after

    E:beforeE:after

    usado para gerar contedo antes ou depois docontedo do elemento E

    SELETOR UNIVERSAL

    O seletor universal representado por um asterisco (*), e relaciona-se com

    qualquer elemento presente no(s) documento(s). Para facilitar a fixao, basta

    associ-lo ao caracter curinga *, usado para se fazer buscas em arquivos do

    computador.

    Quando, em uma folha de estilos, representamos, por exemplo,

    .info { color: #F00; }

    pode-se considerar que o que est posto

    *.info { color: #F00; }

    Pois este o elemento universal, ou seja, querendo ou no, antecede todos os

    outros.

    Perceba que, em virtude da herana31, caso se especifique alguma estilizao para

    o seletor universal, isto ser herdado por todos os outros elementos do

    documento.

    Tenha bom senso e seja cuidadoso(a) ao utiliz-lo!

    31 Pgina 24.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200735

  • 8/8/2019 CSS, Uma Abordagem Geral

    36/60

    SELETOR ID E SELETOR CLASSE

    Estes j foram explicados. Volte s pginas 26 e 27, respectivamente.

    SELETOR DESCENDENTE

    Como descrito na tabela das sintaxes genricas de seletores CSS, este seletor

    relacionado a qualquer elemento que seja descendente de outro. A estilizao

    feita atravs de seletores separados por um espao. Veja:

    ul li { font-size: 16px; }

    Neste caso, todo item de lista no-ordenada ter tamanho de 16px.

    Veja como possvel elaborar regras mais avanadas:

    ul#teste li.info {

    color: #369;

    font-size: 22px;

    }

    Esta ser aplicada a qualquer item de lista que seja da classe info, que esteja

    dentro de uma lista no ordenada de ID teste.

    Se as duas regras mostradas estivessem presentes na mesma folha de estilos,

    qualquer item de lista no ordenada teria um tamanho de 16px, com exceo dos

    que tivessem a classe infoe estivessem dentro de uma lista no-ordenada com id

    teste.

    um avano nas especificaes de estilo! Utilizando os seletores, as regras tornam-

    se mais refinadas e especficas, mais elegantes e profissionais.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200736

  • 8/8/2019 CSS, Uma Abordagem Geral

    37/60

    SELETOR FILHO

    Como mostrado na tabela das sintaxes genricas de seletores CSS, o seletor filho

    relaciona-se a qualquer elemento que seja filho de outro. Sua estilizao feita

    atravs de seletores separados por um sinal de maior que (>); o seletor pai, fica

    esquerda do sinal de maior, e, o filho, direita. Observe o trecho XHTML:

    item a

    item b

    subitem alpha

    subitem beta

    item c

    Caso se tenha uma regra de estilizao como esta:

    ul > li { color:#00F; }

    Ela mudar a cor da fonte somente de item a, item b e item c, e subitem

    alpha e subitem beta no tero sua cor alterada.

    Perceba que isso acontece pelo fato de as tags que esto dentro da lista

    ordenada no serem filhas de . Como a estilizao foi feita utilizando-se o

    seletor filho, normal que isso tenha acontecido.

    Caso a regra fosse feita sem o caracter >, ou seja, atravs de simplesmente

    seletor descendente, os subitem alpha e subitem beta tambm seriam afetados,

    dado que so descentes (no-diretos) de .

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200737

  • 8/8/2019 CSS, Uma Abordagem Geral

    38/60

    SELETOR IRMO ADJACENTE

    Segundo explicitado na tabela das sintaxes genricas de seletores CSS, este seletor

    relacionado a qualquer elemento que siga imediatamente ao elemento anterior,

    que deve ser o mesmo. Sua estilizao feita atravs de seletores separados por

    um sinal de adio (+) Observe o seguinte:

    Posso estilizar de uma forma mais eficiente!

    Basta aprender a usar os seletores CSS!

    Imagine uma regra para isso:

    p + p { color: #F00; }

    Com isso, somente o segundo pargrafo ter sua cor alterada, dado que irmo

    adjacente do primeiro (ambos filhos de , no caso). Com isso, todos os

    pargrafos, com exceo do primeiro, sero afetados pela estilizao.

    Se o trecho XHTML fosse:

    Posso estilizar de uma forma mais eficiente!

    Basta aprender a usar os seletores CSS!

    isso, a!

    O segundo e terceiro pargrafos seriam afetados pela estilizao (e todos os que

    vierem depois). Se se quisesse, por exemplo, que o primeiro e segundo pargrafos

    no recebessem a estilizao, a regra seria:

    p + p + p { color: #F00; }

    E todos os demais pargrafos do documento seriam de uma cor vermelha.

    No pense que h um limite fixo para a especificao de estilizaes de irmos,

    filhos, descendentes ou quaisquer outros tipos de regras CSS. O limite para as

    especificaes de estilizao so os elementos presentes no documento (e sua

    imaginao).

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200738

  • 8/8/2019 CSS, Uma Abordagem Geral

    39/60

    SELETORES DE ATRIBUTO

    Segundo explicitado na tabela das sintaxes genricas de seletores CSS, este tipo de

    seletores podem ser usados de algumas maneiras diferentes, resultando em

    diferentes tipos de estilizaes.

    E[att]

    Esta sintaxe diz respeito ao elemento E, de atributo att, independentemente do

    valor deste. Exemplos:

    a[rel] { font-variant: small-caps; }

    No cdigo acima, todos os links que possurem o atributo rel, tero sua fonteexibida em small-caps, que mais ou menos como se o texto tivesse sido digitado

    com o caps lockligado.

    E[att=val]

    Neste caso, a sintaxe refere ao elemento E, que tenha o atributo att de valor

    val, como, por exemplo:

    p[class=citacao] {

    font-size: 80%;

    margin-left: 20%;

    }

    No caso acima, todo pargrafo que for da classe citacao, ser exibido com a letra

    com 80% de tamanho e com uma margem esquerda de 20%.

    E[att~=val]

    Este tipo de seletor de atributo bem parecido com o anterior, com a diferena de

    que o valor val do atributo att no precisa necessariamente ser idntico ao

    especificado, mas precisa cont-lo. Uma aplicao til que vejo para este tipo de

    seletor quando se especifica mais de uma classe para um elemento. Por exemplo,

    se se tivesse o seguinte trecho de cdigo CSS:

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200739

  • 8/8/2019 CSS, Uma Abordagem Geral

    40/60

    a[rel~=friend] {

    font-size: 200%;

    }

    E, na pgina que recebe estilizao, o seguinte:

    saul

    Neste caso, todo linkem que o atributo rel tiver um friend, a estilizao ser

    aplicada, independentemente de no haversomente ele.

    E[att|=val]

    Este, na verdade, no muito encontrado nas estilizaes CSS, em geral. A nica

    aplicao que j vi para este seletor quando se especifica uma linguagem para

    determinado trecho de cdigo, dado que algumas contm um hfen. Se, em um

    blog, por exemplo, este CSS:

    span [lang|=pt] { font-style: italic; }

    estilizando este trecho:

  • 8/8/2019 CSS, Uma Abordagem Geral

    41/60

    PSEUDO-CLASSES

    A palavra pseudo tem origem grega, e quer dizer falso. aquela histria do

    pseudo-intelectual de miolo mole, do Caetano, lembra-se? Enfim, em CSS, as

    pseudo-classes so falsas classes nativas, que podem ser utilizadas de formas

    bastante interessantes.

    :first-child

    Essa pseudo-classe refere-se ao primeiro filho de um elemento presente no

    documento; o primognito. Algo como o irmo mais velho preferido, que pode

    fazer um monte de sacanagem com os irmos mais novos e nada acontece (isso

    no acorre no CSS, s na vida real). Exemplo:

    Eu deso desta solido,

    disparo coisas sobre um cho de giz

    H meros devaneios tolos a me torturar

    Fotografias recortadas em jornais de folhas, amide

    Se houvesse uma estilizao CSS em um documento destes, como algo do tipo:

    p a:first-child {

    color: #F00;

    font-variant: small-caps;

    }

    O linkda palavra solido seria estilizado, e, os subseqentes, no. E mais: vale

    para cada pargrafo, ou seja, no restante do documento, sempre que houver um

    pargrafo e, nele, links, o primeiro deles ser sempre estilizado, segundo aquela

    regra.

    Pseudo-classes Para Links

    Apesar de no estarem juntas na tabela das sintaxes genricas de seletores CSS,

    vou tratar as pseudo-classes :link, :visited, :hover, :active e :focus de uma s vez.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200741

  • 8/8/2019 CSS, Uma Abordagem Geral

    42/60

    :link

    Esta pseudo-classe refere-se a links no documento que ainda no tenha sido

    visitados. Um exemplo de estilizao:

    a:link {

    color: #369;

    text-decoration: underline overline;

    }

    Ou seja, para os links em um documento que contenha uma folha de estilos com

    essa regra, eles sero de uma cor azul e sublinhados e sobrelinhados.

    :visitedEsta pseudo-classe refere-se a links que j tenham sido visitados. Por exemplo:

    a:visited {

    color: #39C;

    text-decoration: none;

    }

    Neste caso, os links j visitados teriam uma cor azul (mais clara que a dos links doexemplo acima) e no seriam sublinhados nem sobrelinhados.

    :hover

    Quando se usa uma regra com a pseudo-classe :hover, tem-se o objetivo de

    estilizar links quando o ponteiro do mouse est em cima deles. Exemplo:

    a:hover {

    background-color: #369;

    color: #FFF;

    text-decoration: none;

    }

    No caso, quando o usurio passa o mouse por cima do link, ele ficar com uma

    cor de fundo azul, o texto com a cor branca e sem sublinhado nem sobrelinhado.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200742

  • 8/8/2019 CSS, Uma Abordagem Geral

    43/60

    :active

    Essa para quando o usurio clica no link, no exato momento em que ele faz isso.

    Uma prtica corriqueira, para esta pseudo-classe, repetir o que j est em

    :hover, dado que os usurios comuns no clicam em um linke seguram o boto;

    clicam e soltam, rapidamente. Dessa forma, o estilo aparece por umas poucasfraes de segundo e praticamente imperceptvel32. Observe:

    a:active {

    color: #F00;

    text-decoration: none;

    }

    Quando o usurio clicar no link, seu texto ficar de uma cor vermelha e sem

    sublinhado nem sobrelinhado.

    ateno com as pseudo-classes para links

    Em virtude do efeito cascata, deve-se, ao estilizar links com as pseudo-classes,

    seguir uma ordem especfica para evitar efeitos inesperados. Como bem escreveu o

    Maujor33,

    se voc define a:hover ANTES de a:visited, esta prevalecer sobre a:hover e

    em consequncia, o link visitado pela primeira vez assumir a regra definida

    em a:visited e a partir de ento a:hover no mais funcionar naquele link pois

    a:visited prevalecer sobre a:hover.

    Ou seja, a ordem em que as pseudo-classes para links devem estar :

    :link

    :visited

    :hover

    :active34

    32 A no ser que se especifique que o tamanho da letra vai aumentar, ou algo do tipo, que d bastante destaque.

    33 http://www.maujor.com/34 Quando utilizar, tambm, a pseudo-classe :focus (prxima a ser explicada), esta deve vir antes de :active.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200743

    http://www.maujor.com/http://www.maujor.com/
  • 8/8/2019 CSS, Uma Abordagem Geral

    44/60

    :focus

    Esta pseudo-classe para quando algum elemento recebe foco, ou seja, como

    escreveu o Maujor35, quando aceita eventos do teclado. muito usado para estilizar

    elementos de formulrios, como os inputs.

    input[type=text]:focus {

    background-color: #399;

    color: #FFF;

    }

    No caso, quando a pessoa acessar esse tipo de campo para insero de textos, sua

    cor de fundo mudar para um tipo de verde e a cor do texto ser branca; assim

    que ele passar para outro campo, tudo voltar ao que era antes de ele dar foco

    quele elemento.

    :lang36

    A pseudo-classe 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:

    q:lang(sv) { quotes: "\201D" "\201D" "\2019" "\2019"; }

    A linguagem para humanos (idioma) de um documento, normalmente

    especificada pelo atributo lang em e pelo atributo xml:lang em XHTML.

    PSEUDO-ELEMENTOS

    Assim como as pseudo-classes, os pseudo-elementos ajudam o desenvolvedor a

    economizar com a insero de DIVs e SPANs extra, e, ao mesmo tempo, possibilita

    que alguns efeitos de estilizao bem interessantes possam ser realizados.

    35 http://www.maujor.com/36 Tomarei emprestadas as palavras de Maujor (http://www.maujor.com/) que esto na traduo que fez do artigo CSS2.1

    selectors, Part 3 (http://www.456bereastreet.com/archive/200510/css_21_selectors_part_3/), de Roger Johansson(http://www.456bereastreet.com/).

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200744

    http://www.maujor.com/http://www.maujor.com/http://www.456bereastreet.com/archive/200510/css_21_selectors_part_3/http://www.456bereastreet.com/http://www.maujor.com/http://www.maujor.com/http://www.456bereastreet.com/archive/200510/css_21_selectors_part_3/http://www.456bereastreet.com/
  • 8/8/2019 CSS, Uma Abordagem Geral

    45/60

    :first-line

    Como indica o prprio nome, este pseudo-elemento diz respeito primeira linha

    (de pargrafos, geralmente37). Mas, at onde vai a primeira linha de um

    pargrafo? Bem, na verdade, a primeira linha literalmente a primeira linha

    (d). Quer dizer, a primeira linha que exibida. Se um desenvolvedor estiliza ospargrafos com :first-line, com, por exemplo38:

    p:first-line {

    background-color: red;

    color: white;

    }

    Muito bem. Mas sabe o que acontece caso a janela seja redimensionada (de modo areacomodar o texto) ou o tamanho da fonte seja alterada (pelo prprio visitante)?

    Isso, parabns: a estilizao vai acompanhar a primeira linha que exibida!

    :first-letter39

    De maneira semelhante a :first-line, esta pseudo-propriedade estiliza a primeira

    letra de elementos a nvel de bloco, list-item, table-cell, table-caption e bloco inline.

    Geralmente utilizada em algumas webpages para dar aquele efeitinho de primeira

    letra diferente que se encontramos em jornais e revistas. Seria algo como:

    #primeiroParagrafo:first-letter {

    background-color: #369;

    color: #FFF;

    font-family: fantasy;

    font-size: 200%;

    padding: 2px;

    }

    37 Mas pode estilizar, tambm, elementos a nvel de bloco, blocos inline, table-caption ou table-cell. Na verdade, conformeconsta no documento oficial do W3C Selectors (http://www.w3.org/TR/CSS21/selector.html), a compatibilidade dessepseudo-elemento diz respeito s propriedades de font, cor e background, "word-spacing, letter-spacing, text-decoration, vertical-align, text-transform e line-height.

    38 Tudo bem, tudo bem, ningum vai querer todas as primeiras linhas de seus pargrafos com fundo vermelho e letrabranca, mas s para ilustrar o conceito, p...

    39 Segundo o documento Selectors (http://www.w3.org/TR/CSS21/selector.html), o :first-letterpode ser estilizado compropriedades de font, margin,padding, border, colore background, "text-decoration", "text-transform", "letter-spacing","word-spacing" (quando apropriado), "line-height", "float" e "vertical-align" (apenas se "float" for igual a "none").

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200745

    http://www.w3.org/TR/CSS21/selector.htmlhttp://www.w3.org/TR/CSS21/selector.htmlhttp://www.w3.org/TR/CSS21/selector.htmlhttp://www.w3.org/TR/CSS21/selector.html
  • 8/8/2019 CSS, Uma Abordagem Geral

    46/60

    :before e :after

    A significao destas palavras , respectivamente, antes e depois. Na minha

    opinio, estes pseudo-elementos so os mais poderosos em CSS, pois permitem

    que voc gere contedo antes e depois do elemento que receber estilizao.

    Por exemplo, para exibir a URL de um linkentre parnteses, sem precisar escrev-

    lo40:

    .comentarios a:after {

    content: " (" attr(href) ") ";

    }

    Ou seja, o contedo (content) que ser apresentado depois (:after) de links (a) da

    classe comentarios (.comentarios) ser o atributo (attr) caminho do link (href),

    que ser colocado entre parnteses ( ( [...] ) ). realmente um pouco

    complicado, no incio, mas, depois de alguns testes e implementaes, facilita

    bastante.

    Muitas outras coisas podem ser feitas com :before e :after, como, em um

    documento, organizar os ttulos primrios (h1) assim: Captulo 1: [texto do h1],

    no prximo h1, ser colocado Captulo 2: [texto do h1], com o contador

    automtico, ou seja, voc pode inserir os h1 normalmente, que o CSS se encarrega

    de incrementar a numerao41!

    COMPATIBILIDADE

    Infelizmente, nem tudo so flores quando se fala em aplicar os seletores

    avanados. Os navegadores mais antigos no do suporte a esse parte da

    tecnologia CSS e, o que chega a ser at triste, o navegador mais usado no mundo,

    o Internet Explorer(tambm conhecido como IEca), at sua penltima verso, a

    6, tambm no oferece suporte a praticamente todos os seletores avanados.

    Devido ao fato de a verso 7 deste navegador ser bem recente, ainda vai demorar

    40 O nome da classe do exemplo foi proposital. Quis demonstrar que uma boa aplicao para o uso do pseudo-elemento:after para exibir a URL do site de algum que faz comentrios em umpost.

    41 Confira o documento do W3C Generated content, automatic numbering, and lists, que pode ser acessado atravs doendereo http://www.w3.org/TR/CSS21/generate.html .

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200746

    http://www.w3.org/TR/CSS21/generate.htmlhttp://www.w3.org/TR/CSS21/generate.html
  • 8/8/2019 CSS, Uma Abordagem Geral

    47/60

    alguns bons meses (ou anos) para que a maioria de seus usurios atualizem sua

    verso.

    De qualquer forma, ficam expostos os seletores avanados. Como pde ser visto,

    eles so muito poderosos, mas devido ao que foi dito no ltimo pargrafo, ainda

    devem ser usados com cautela.

    Uma coisa legal de se fazer colocar alguns recursos que s funcionam em bons

    navegadores (leia-se, navegadores que no sejam o IEca, tais como

    Firefox/Iceweasel e Opera), sem prejudicar o funcionamento do site, como um

    todo. Apenas colocar elementos para que ele fique mais interessante, quando

    acessado por navegadores decentes.

    A, para fazer uma contra manipulao, voc coloca no rodap: otimizado para

    Firefox (por exemplo), com um linkpara pegar o browser.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200747

  • 8/8/2019 CSS, Uma Abordagem Geral

    48/60

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200748

  • 8/8/2019 CSS, Uma Abordagem Geral

    49/60

    CAPTULO 3

    COMPLEMENTOSPara fechar a apostila, discorro, neste captulo,

    sobre alguns temas que so pertinentes ao

    desenvolvimento para web. Tambm indico

    alguns links interessantes e/ou indispensveis.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200749

  • 8/8/2019 CSS, Uma Abordagem Geral

    50/60

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200750

  • 8/8/2019 CSS, Uma Abordagem Geral

    51/60

    DICAS GERAIS

    Depois dessa abordagem geral sobre CSS, cabe, agora, algumas questes

    referentes ao modus operandida coisa, ou seja, algumas dicas de como otimizar

    seu trabalho e rendimento e como evitar frustraes futuras.

    TESTAR EM VRIOS NAVEGADORES

    de conhecimento geral entre os membros da comunidade de desenvolvedores o

    no seguimento s normas do W3C, todas as falhas e pontos negativos intrnsecos

    ao navegador Internet Explorer(frisando: o IEca).

    Devido atitudes negligentes e descaso com o usurio final, a Micro$oft, mesmo

    aps insistentes e emocionados apelos de variados setores e presses advindas de

    empresas de grande porte, insiste em no dar suporte a inmeros elementos da

    tecnologia CSS (dentre muitas outras coisas, mas estou focando no assunto da

    apostila). Todos sabemos que existem motivos escusos por trs desta gracinha que

    eles fazem, pois, de conhecimento mundial que a citada empresa (ou corporao,

    ou sei l o qu) uma das que mais tm recursos disponveis (se no a mais) para

    investir em qualquer coisa que queira42.

    Se realmente seus dirigentes tivessem o mnimo de responsabilidade social e

    considerao com os usurios do no menos infame Rwindows (aglutinao de

    Ruim o Windows, afff!), tomariam medidas para que a qualidade final de seus

    produtos se elevasse pelo menos ao ponto de no obrigar desenvolvedores

    inocentes de pginas para a interneta desperdiar horas para identificar e corrigir

    bugs provenientes da falta de qualidade de seu navegador meia boca43.

    Desabafos parte, o que quero mostrar com esse tpico a importncia de realizar

    muitos (mas muitos, mesmo) testes em navegadores diferentes durante a fase de

    desenvolvimento das pginas dos websites. de suma importncia que se faa

    testes em, no mnimo, 2 navegadores: Firefox/Iceweasele IEca. Preferencialmente,

    42 Nem sei como eles ainda so aceitos no W3C...43 Ou exigir 1GB de RAM para rodar um efeitinho chul de flip entre janelas ou, o que o maior absurdo da histria dos

    sistemas operacionais: exigir, nada mais, nada menos, que 3BG de RAM para rodar a nova verso do Rwindows emdesempenho total...

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200751

  • 8/8/2019 CSS, Uma Abordagem Geral

    52/60

    contudo, seria indicado que os testes abrangessem tambm browsers como Opera,

    Konqueror, Safari44e Lynx (sim, claro!), a fim de garantir, mesmo, que o resultado

    pretendido ser semelhante em diversas situaes e plataformas45.

    E perceba a ordem que est l: Firefox/Iceweasel e, depois, IEca! O melhor

    caminho a seguir esse, acredite46. Devido ao fato de o Firefox/Iceweasel tersuporte mais abrangente aos padres do W3C, o mais sensato desenvolver com

    foco nele para, s depois, rodar as pginas no IEca e conferir as falhas existentes.

    Acontece que, devido a fatores vrios, tais como estilos de desenvolvimento,

    marketing e propaganda, viso e misso, e muitos outros, as empresas tomam

    rumos diferentes em se tratando da elaborao de novas tecnologias e suporte s

    j existentes, o que, invariavelmente, causa distrbios, inconsistncias entre osdiversos navegadores disponveis na praa.

    At verses diferentes do mesmo navegador podem trazer mudanas drsticas e

    resultados surpreendentes na visualizao; alm, claro, de praticamente obrigar

    os desenvolvedores a engatilhar suas pginas para que sejam exibidas

    corretamente nas diferentes verses.

    De qualquer maneira, a vida... Isso acontece, mesmo, no tem jeito, e quem est

    interessado em ser profissional da rea tem de aceitar ou, pelo menos, se

    conformar ( o meu caso) com esse tipo de acontecimento.

    Meu conselho : pacincia e perseverana!

    COMENTRIOS CONDICIONAISTudo, bem, tudo bem. Depois de ler o tpico anterior fiquei sensibilizado e seguirei

    seu conselho de ser paciente e dedicado, mas, afinal de contas, o que realmente

    posso fazer para eliminar os problemas que esto acontecendo quando meus

    websites so visualizado no IEca? Boa pergunta!

    44 Uma boa notcia: saiu, para PC, o Safari 3 (beta)!45 Evidente que, caso no se tenha acesso a MACs e/ou outros sistemas operacionais do que atualmente se usa (e tomara

    que no esteja falando do navegador azul de logomarca feia), o teste, infelizmente, limitar-se- aos dois necessriospara testes mnimos.

    46 Se no quiser acreditar, tudo bem. De repente voc daqueles religiosos que tm que ver para crer, ou daquelesmetrossexuais que gostam de sentir na pele essa emoo. (-:

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200752

  • 8/8/2019 CSS, Uma Abordagem Geral

    53/60

    Na verdade, existem diversas respostas para ela, mas me reservo a mostrar a que

    penso ser a melhor alternativa para tal: comentrios condicionais.

    A prpria empresa que desenvolve o IEca (que me recuso a escrever o nome mais

    uma vez), ciente de sua falta de vergonha na cara, apareceu com uma soluo at

    certo ponto agradvel para tentar resolver as inmeras diferenas advindas da faltade suporte a padres internacionais de um de seus produtos, desenvolvendo,

    ento, os comentrios condicionais, tambm conhecidos como CC.

    Atravs dos CC podemos alterar regras CSS especificamente para IEca, atravs de

    uma folha de estilo parte, que s entra em ao caso o browser que visita a

    pgina seja esse a.

    Vou exemplificar. Lembra-se de como se faz para se vincular um arquivo CSS a um

    determinado documento? Isso, mesmo! No head do documento, coloca-se:

    Pois bem, atravs de uma implementao nos comentrios (X)HTML tradicionais47,

    pode-se indicar uma outra folha de estilos para ser exibida exclusivamente para o

    IEca (geralmente alcunhada iehacks). E seria o seguinte:

    Isto , depois de vincular sua folha de estilos normalmente, voc ir, atravs dos

    CC, vincular, tambm, uma outra, que a iehacks.

    Devido ao efeito cascata, quando uma folha de estilos vinculada a um documento

    posteriormente a outra, no caso, o iehacks, ela vai sobrepor as regras contidas na

    folha de estilos anterior.

    47 Como voc bem deve saber, os comentrios (X)HTML comeam com .

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200753

  • 8/8/2019 CSS, Uma Abordagem Geral

    54/60

    Ou seja, se no arquivo nomeDaSuaFolhaDeEstilos.css estivesse a seguinte regra:

    #corpo #elementoPrincipal .citacao {

    background-color: #369;

    border: 3px double #999;

    color: #FFF;

    display: block;

    margin-left: 10% 15%;

    padding-right: 5%;

    position: absolute;

    }

    Vamos supor que, quando renderizado no Firefox/Iceweasel, as pginas sejam

    exibidas corretamente, da maneira que foram idealizadas. No entanto, no IEca,

    voc percebe que o que est contido nessa classe no se apresenta de igual

    maneira: ele est mais para a direita do que voc gostaria, e o problema na

    propriedade padding-right. Voc simplesmente teria, dentro do arquivo iehacks, o

    seguinte:

    #corpo #elementoPrincipal .citacao {

    padding-right: 15%;

    }

    Entendeu? Voc especificou que, se, e somente se, o navegador que renderiza a

    pgina for IEca, a classe citacao ter um padding-rightde 15%; do contrario,

    quer dizer, em qualquer outro navegador, continuar com seus 5% originais48.

    Se, por exemplo, sua vontade fosse a de que, no IEca, as letras dessa classe

    aparecessem em uma cor vermelha, a regra seria a seguinte:

    #corpo #elementoPrincipal .citacao {

    color: #F00;

    padding-right: 15%;

    }

    H muito mais coisas a se saber sobre os comentrios condicionais! de vital

    importncia que se faa uma pesquisa sobre o tema!

    48 Como deve ter notado, no preciso inserir toda a regra, mas somente a propriedade que se queira modificar.

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200754

  • 8/8/2019 CSS, Uma Abordagem Geral

    55/60

    !important

    Lembra-se do efeito cascata? Pois deveria... De qualquer maneira, quando se usa

    !important, est se querendo modificar o grau de prioridade de uma propriedade.

    Se, por exemplo, dentro de um documento qualquer tem-se uma folha de estilos

    externa e uma declarao inline, ambas com uma propriedade tratando da mesmaregra, qual delas vai prevalecer? Isso, mesmo, a inline! A no ser que, naquele

    arquivo externo, a declarao tivesse um !important. Se, no arquivo externo,

    estivesse:

    .qqCoisa { color: #F00 !important; }

    E, no estilo inline:

    Qualquer coisa...

    De qualquer maneira, o pargrafo seria exibido com uma cor vermelha, e no

    verde, como era para normalmente acontecer. E isso aconteceu devido ao

    !important, que especificou que, naquela folha externa, a propriedade que tratava

    da cor era mais !important.

    Mais uma vez: pesquise, pesquise, pesquise...

    SEMNTICA

    Um assunto muito abordado no meio de desenvolvedores web conscientes a

    semntica. Inclusive, este um tema que deve ser estudado e principalmente,

    praticado efetivamente, caso se queira atingir um grau de amadurecimento

    profissional adequado e oferecer um servio de qualidade para os clientes.

    Semntica, no contexto da web, tem um significado ligeiramente diferente

    daquele ensinado pela Tia Cotinha, na 4 srie. Aqui o sentido do termo dar

    sentido ao contedo das pginas, dar significado!

    Quando estamos codificando pginas web, inserimos tags (X)HTML para marcar os

    trechos e elementos que queremos. Se queremos indicar que uma palavra um

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200755

  • 8/8/2019 CSS, Uma Abordagem Geral

    56/60

    ttulo primrio, esta vai entre e . Se um bloco de texto um pargrafo,

    logo o colocamos envolto ao par de tags

    e

    . At aqui nenhuma novidade,

    estamos dando o significado correto para os elementos. Infelizmente, no desse

    jeito que todos fazem.

    Quem j no se deparou com pginas cujo layout todo feito com tabelas? Quem

    j no viu um pargrafo todo em h2, para que o texto aparea maior, com mais

    destaque? esse tipo de barbaridade a que estou me referindo. Ao fazer essa

    atrocidade, o desenvolvedor est ferindo a semntica! As tabelas no foram

    idealizadas para que fossem utilizadas em montagens de aparncia para os sites;

    os ttulos secundrios no foram feitos para dar destaque a um pargrafo...

    Quando algum no elabora um cdigo semanticamente correto, est prejudicandono somente seu cliente, que pagou por um servio de qualidade e est levando

    para casa um site que vai aparecer na 15 pgina de resultados do Google, mas,

    principalmente, a si mesmo! bvio! E esse prejuzo tem vrias nuances: quando

    seu cliente ficar sabendo que existem mtodos de desenvolvimento melhores que o

    seu, vai mandar um e-mail de despedida, e ainda por cima te queimar com quem

    ele tiver oportunidade. Voc perdeu um cliente e deixou de ganhar pelo menos o

    dobro, que poderia vir por indicao.

    Com isso, seu nome vai ficando enlameado e sua reputao despenca. Dependendo

    do tipo do seu ex-cliente, fique muitssimo feliz caso no receba uma cartinha do

    advogado dele... J pensou se ele resolve pegar o dinheiro de volta por no ter tido

    uma prestao de servio de qualidade que, ainda por cima, prejudicou seus

    negcios?

    No que esta situao sempre acontea, mas tambm no pense que nunca

    acontea...

    Enfim, quando se fala em semntica, fala-se em dar o correto significado aos

    elementos que compem as pginas. Em descrever as informaes de forma

    acertada, de forma que os mecanismos de busca possam lhe dar o merecido crdito

    por seu profissionalismo e colocar seu site nas primeiras colocaes de resultado

    49

    !49 No sei se j aconselhei isso, mas: pesquise sobre semntica e mecanismos de busca (SEO)!

    CSS: uma abordagem geral - http://tarciozemel.asciijf.com/ - 200756

  • 8/8/2019 CSS, Uma Abordagem Geral

    57/60

    LINKS

    Como prometido, vou indicar alguns links interessantes para que voc possa

    expandir seus horizontes de conhecimento! Lembrando que sempre, mas sempre,

    mesmo, devemos fazer pesquisas constantes para aprender coisas novas efixar/aprimorar as que j sabemos. Se no for assim, o mercado chega primeiro...

    GERAL

    http://www.maujor.com/

    Ao longo da apostila, citei vrias vezes o endereo do Maujor (e isso foi proposital).

    Foi l que eu tive o primeiro contato com o CSS e assuntos afins. Eu considero queo site seja uma imensa apostila virtual, e julgo ser a melhor referncia que

    atualmente se tem no Brasil! Se no fosse o site de Maurcio Samy Silva,

    provavelmente hoje eu ainda estaria compondo layouts em tabelas... Eu sei que

    voc no sabe que eu existo, mas eu e muitas outras pessoas sabemos que voc

    existe, e pudemos elaborar websites melhores graas a sua ajuda e dedicao!

    Muito obrigado, Maujor!

    http://webinsider.uol.com.br/

    O Webinsider um daqueles portais com dezenas de sees direcionadas aos mais

    variados assuntos e pblicos. A qualidade das informaes que seus autores

    transmitem muito boa, e, l, podem-se encontram temas voltados tanto

    programao, propriamente dita, quanto