<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>Gustavo Ribeiro - Desenvolvedor Front-End</title> <atom:link href="http://gustavoribeiro.com/feed" rel="self" type="application/rss+xml" /><link>http://gustavoribeiro.com</link> <description>Desenvolvedor Interface / Front-End, Carioca, especialista em Web Standards, CSS, CSS3, xHTML, HTML5, Acessibilidade e defensor dos Padrões W3C.</description> <lastBuildDate>Thu, 08 Sep 2011 12:25:22 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Como testar o estado :active e :hover do CSS no Firebug</title><link>http://gustavoribeiro.com/blog/como-testar-o-estado-active-e-hover-do-css-no-firebug</link> <comments>http://gustavoribeiro.com/blog/como-testar-o-estado-active-e-hover-do-css-no-firebug#comments</comments> <pubDate>Wed, 03 Aug 2011 11:00:12 +0000</pubDate> <dc:creator>gusribeiro</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Dicas]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[firebug]]></category> <category><![CDATA[tools]]></category><guid isPermaLink="false">http://gustavoribeiro.com/?p=573</guid> <description><![CDATA[Quando inspecionamos links, o Firebug nos mostra o estilo :link do CSS. Por default, o estilo :hover e o :active não são mostrados. Felizmente, podemos mudar o estado do link clicando em Estilo e selecionando a opção apropriada, como mostrado na imagem abaixo: Feito isso, o CSS para o estado :hover e/ou :active irão magicamente [...]]]></description> <content:encoded><![CDATA[<p>Quando inspecionamos links, o <a href="http://getfirebug.com/" target="_blank">Firebug</a> nos mostra o estilo <em>:link</em> do CSS. Por default, o estilo <em>:hover</em> e o <em>:active</em> não são mostrados. Felizmente, podemos mudar o estado do link clicando em <em>Estilo</em> e selecionando a opção apropriada, como mostrado na imagem abaixo:</p><p style="text-align: center;"><img class="size-full wp-image-576 aligncenter" title="firebug_style" src="http://gustavoribeiro.com/wp-content/uploads/firebug_style.jpg" alt="" width="400" height="250" /></p><p>Feito isso, o CSS para o estado :hover e/ou :active irão magicamente aparecer em seu console.</p><p>Esse recurso é bastente útil, especialmente se você for debugar CSS complexos de menu drop-down e outros efeitos. Atualmente o Firebug é o único console de desenvolvimento que dá suporte ao recurso. Eventualmente ele apareceça também no Chrome e Safari.</p><p>Tem alguma outra dica útil para compartilhar?</p> ]]></content:encoded> <wfw:commentRss>http://gustavoribeiro.com/blog/como-testar-o-estado-active-e-hover-do-css-no-firebug/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Utilizando as listas: ul, ol e dl</title><link>http://gustavoribeiro.com/blog/utilizando-as-listas-ul-ol-e-dl</link> <comments>http://gustavoribeiro.com/blog/utilizando-as-listas-ul-ol-e-dl#comments</comments> <pubDate>Wed, 27 Jul 2011 11:00:24 +0000</pubDate> <dc:creator>gusribeiro</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[xHTML]]></category><guid isPermaLink="false">http://gustavoribeiro.com/?p=405</guid> <description><![CDATA[Estarei começando hoje uma série de, podemos dizer tutoriais, explicações sobre o uso de cada tag xHTML e CSS. Cada tópico terá uma nomeclatura bastante direta sobre o assunto abordado, então vamos ao que interessa realmente. Para iniciar a sequencia dos tutoriais, resolvi falar sobre listas de ordenação e explicar um pouco mais sobre o [...]]]></description> <content:encoded><![CDATA[<p>Estarei começando hoje uma série de, podemos dizer tutoriais, explicações sobre o uso de cada tag xHTML e CSS. Cada tópico terá uma nomeclatura bastante direta sobre o assunto abordado, então vamos ao que interessa realmente.</p><p>Para iniciar a sequencia dos tutoriais, resolvi falar sobre listas de ordenação e explicar um pouco mais sobre o uso e cada uma e o porque isso é importante na hora de se desenvolver um site dentro dos padrões w3c.</p><p><strong>Listas desordenadas: &lt;ul&gt;</strong></p><p>As listas desordenadas são, comumente, as mais utilizadas por todos nós desenvolvedores quando resolvemos criar menus. E porque utilizamos as &lt;ul&gt; na criação de menus? Simples! Porque, semânticamente, os menus são itens correspondentes a uma lista sem ordenação não se encaixando em qualquer outra tag, semânticamente, a não ser a &lt;ul&gt;.</p><p><strong>Listas ordenadas: &lt;ol&gt;</strong></p><p>Idêntica as &lt;ul&gt;, porém nela temos a obrigação de ordernarmos os itens, seja eles por ordem alfabética, numérica, crescente ou decrescente. Devemos utilizá-las quando queremos criar, por exemplo, um passo-a-passo, uma receita ou até mesmo uma lista de categorias do seu blog.</p><p><strong>Listas de definição: &lt;dl&gt;</strong></p><p>As listas de definição são as menos utilizadas e pouco entendidas por muitos. Uma maneira bastante fácil e simples para o entendimento da &lt;dl&gt; é pensarmos em um glossário. Todo glossário possui termos e, cada termos, suas descrições. Para os termos utilizamos &lt;dt&gt; e para as descrições &lt;dd&gt;. Uma coisa muito importante na &lt;dl&gt; é que: nunca termos, em hipótese alguma, um termo repetido com descrições diferentes. Cada termo tem sua descrição única, caso contrário o mesmo não poderá ser um &lt;dl&gt;,  e sim uma &lt;ul&gt; ou uma &lt;ol&gt;.</p><p>Em tempo, basta sabermos o nome de cada tag para qu possamos entender o seu uso. Consegui ser claro na explicação?</p> ]]></content:encoded> <wfw:commentRss>http://gustavoribeiro.com/blog/utilizando-as-listas-ul-ol-e-dl/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Zoom</title><link>http://gustavoribeiro.com/portfolio/zoom</link> <comments>http://gustavoribeiro.com/portfolio/zoom#comments</comments> <pubDate>Fri, 01 Jul 2011 12:19:45 +0000</pubDate> <dc:creator>gusribeiro</dc:creator> <category><![CDATA[Portfolio]]></category><guid isPermaLink="false">http://gustavoribeiro.com/?p=550</guid> <description><![CDATA[O Zoom é um comparador de preços da Mosaico Negócios de Internet, uma holding de internet fundada em 2009 que possui como investidor a Globo Comunicação e Participações. Além do Zoom, constituem a holding o site de viagens Mundi, os sites de jogos Jogatina e The Social Poker e recentemente o site de compras coletivas [...]]]></description> <content:encoded><![CDATA[<p>O <a href="http://www.zoom.com.br/">Zoom</a> é um comparador de preços da Mosaico Negócios de Internet, uma holding de internet fundada em 2009 que possui como investidor a Globo Comunicação e Participações. Além do Zoom, constituem a holding o site de viagens <a href="http://www.mundi.com.br/">Mundi</a>, os sites de jogos <a href="http://www.jogatina.com.br/">Jogatina</a> e <a href="http://www.thesocialpoker.com/">The Social Poker</a> e recentemente o site de compras coletivas <a href="http://www.clickon.com.br/">ClickOn</a>.</p> ]]></content:encoded> <wfw:commentRss>http://gustavoribeiro.com/portfolio/zoom/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Verdades estão aí para serem ditas</title><link>http://gustavoribeiro.com/blog/verdades-estao-ai-para-serem-ditas</link> <comments>http://gustavoribeiro.com/blog/verdades-estao-ai-para-serem-ditas#comments</comments> <pubDate>Wed, 29 Jun 2011 13:40:52 +0000</pubDate> <dc:creator>gusribeiro</dc:creator> <category><![CDATA[Artigos]]></category> <category><![CDATA[Blog]]></category><guid isPermaLink="false">http://gustavoribeiro.com/?p=524</guid> <description><![CDATA[Há quase 1 ano não estou mais em agência trabalhando com diversos públicos. Venho trabalhando em dois portais de conteúdo e público mais específico, o que me agrada bastante e to curtindo muito até agora. Tá certo que o público não é tão específico quanto de um hotsite ou campanha, mas acredito ser muito mais [...]]]></description> <content:encoded><![CDATA[<p>Há quase 1 ano não estou mais em agência trabalhando com diversos públicos. Venho trabalhando em dois portais de conteúdo e público mais específico, o que me agrada bastante e to curtindo muito até agora.</p><p>Tá certo que o público não é tão específico quanto de um hotsite ou campanha, mas acredito ser muito mais específico e selecionado do que muitos possam imaginar. Por exemplo, é um público que compra na internet, que usa cartão de crédito, que viaja a turismo ou trabalho constantemente. Logo não é um público de pouca renda ou com baixo nível de conhecimento de internet, acredito eu apesar de alguns estudos e dados não confirmarem tanto.</p><p>Constantemente debato com meus colegas se nosso público é básico, se temos usuários com idades superiores a 60 anos (logo com dificuldade de leitura e coordenação montora &#8211; salvo raras excessões), se temos usuários com dificuldade de visão e por não ter uma resposta concreta ou a maioria deles achar que sim, acabo me frustando ao desenhar nossas interfaces.</p><p><span id="more-524"></span></p><p>Não acredito que isso seja verdade. Acredito que o nosso público seja de usuários médios pra avançados, que já tenham uma experiência de compra online e que não tenham mais medos e dúvidas sobre tal experiência. Assim como ter que manter um site/projeto pra IE6 e 1024&#215;768 de resolução de tela. Se a pessoa não possui um computador atualizado, vai ter dinheiro pra gastar comprando online? Comprando objetos, livros, passagens aéreas, fazendo transações bancárias e etc, duvido.</p><p>Estudos dizem que brasileiros gastam boa parte do tempo pra fazer transações, compras e usar redes sociais durante o dia e no horário de trabalho. Se o cara trabalha numa empresa que mantém os computadores desatualizados, essa mesma empresa deve vetar o uso de alguns sites no horário do expediente, logo, essas pessoas devem realizar essas transações no conforto do lar no seu laptop, smartphone (alguns em suas tablets) ou desktop. É raro hoje em dia encontrar computadores a venda com monitores menor que 17&#8243; e com isso resoluções menores que 1024&#215;768 vão ficando cada vez menos comuns.</p><p>Claro que não posso ignorar os novos usuários que estão chegando, a famosa inclusão digital (como eu odeio esse termo). Esses novos usuários que ainda estão aprendendo a usar as coisas, aprendendo a comprar e que tem um poder de compra alto. Ou seja, não dá mesmo pra tirá-los da base. Porém a cada ano a curva de aprendizado ao uso de novas interfaces e mídias é mais curta e rápida, logo, não é motivo. E esses novos usuários já compram computadores melhores, do que disse no parágrafo anterior, graças as facilidades de carnês e cartões de crédito.</p><p>Outro grande problema que encontro é a famosa quebra de paradigmas. Pessoas que trabalham com internet, porém, são conservadoras demais e acabam não se atualizando com a mesma velocidade e frequência da rede (<a href="http://www.infoextra.com.br/noticias/bronca-menos-discurso-e-mais-investimento-no-digital-2021.html">Brasil só levou um cyber, prata, em Cannes por exemplo</a>). E não me venham falar de verba, porque o brasileiro é reconhecido mundialmente como um po(l?)vo criativo que dá nó em pingo d&#8217;água.</p><p>Não me falem que não tem tempo ou a equipe não pode ser parada para melhorar um projeto ou começar um novo do zero. Medinho é uma coisa que me deixa puto. Se você tem uma equipe de 1 front, 1 developer e 1 designer, realmente você não pode fazer muita coisa num projeto que já está todo errado. Mas se você pode dividir a equipe em duas, uma (re)constrói de forma certa o que está errado e a outra fica mantendo (por hora) o que está no ar, qual problema disso sr. 06? Quer passar o comando pra quem tenha colhão suficiente? Então passa.</p><p>Se grandes empresas seguem investindo em novas ideias, novas interfaces, empresas que tem um público variado e milhões de acessos por mês, tentam e fazem a coisa funcionar, por que você que tem alguns milhares e um público semelhante também não pode?</p><p><strong>Brasileiro é assim mesmo, preguiçoso e com uma zona de conforto grande</strong>. Segundo minha grande amiga <a href="http://twitter.com/anaerthal">Ana Erthal</a>: <em>&#8220;O problema todo é que as agências ainda pensam, em pleno século XXI e no meio dessa turbulência de informações e mobilidade social e cultural, como se pensava há 40 anos. Elas pensam como veículos de massa. E não é mais assim. A comunicação se fragmentou juntamente com a identidade dos sujeitos e da cultura&#8230; e não tem mais volta. Desde a invenção do controle remoto a comunicação se tornou individualizada e promíscua na ultilização de meios e ferramentas. E as agências, em vez de perceberem esse movimento natural evolutivo, elas continuam olhando para trás, usando modelos ultrapassadíssimos para tentar entender o sujeito contemporâneo e sua pluralidade. É triste. E é esse o motivo que não as deixa caminhar pra frente: daqui não sairá nenhum cyber&#8221;</em>. Aí se você vem com ideias e ideais que batem de frente e que forçem as pessoas a pensar e a inovar, você é de outro planeta ou tá tentando pensar muito na frente dando um passo maior que a perna e não vai alcançar a outra margem do rio.</p><p>Já ouvi pessoas dizendo que ainda não acreditam em mobile apps mesmo depois do sucesso astrnômico do iPhone e Android, mesmo com tudo se convergindo e mostrando o contrário. E não foi estagiário que falou isso não hein. No twitter mesmo, canso de ver pessoas que se dizem responsáveis por mídias sociais ou que tenham foco nelas, postarem coisas com 1 semana, 1 mês e as vezes mais tempo de atraso achando que é novidade com a desculpa que estava muito ocupado com o job do cliente e nāo teve tempo de ler ou ver o que aconteceu na semana.</p><p>Me desculpe, mas esse job desse cliente aí vai ser antigo quando ele for lançado então viu, capitão?</p><p>Felizmente em alguns casos não é assim, mas vejo muitos projetos, agências, empresas que ficam pensando muito no hoje e no ontem e não no amanhã.</p><p>É por isso que tem tanta gente boa saindo do país pra &#8220;fazer internet&#8221; lá fora. Agências dos EUA e da Europa estão anos luz a frente das tupiniquins em termos de planejamento, estrutura e principalmente condições de trabalho. Se você dá liberdade pro seu profissional criar, seja ele de criação ou não &#8211; porque boas ideias vem de qualquer um e de qualquer lugar &#8211; tenho certeza que os projetos vão ficar cada vez melhores.</p><p>Um exemplo disso são os <a href="http://www.youtube.com/watch?v=PUwEEOhcK3s">hackdays</a> e <a href="http://www.youtube.com/results?search_query=hackathon+facebook&amp;aq=1&amp;oq=hackath">hackathons</a> da vida como fazem o Facebook, o Google e o Linkedin. Boas, não, excelentes ideias surgiram desses exemplos: Orkut, Gmail, GoogleDocs no Google, vídeo, like, face tag no Facebook, exportar seu currículo, grupos no Linkedin. Os profissionais são incentivados a estar sempre buscando novas soluções por puro prazer e não porque é o trabalho deles.</p><p><strong>É aí que está toda a diferença cultural da coisa.</strong></p><p>post by <a href="http://danieldepaola.com">Daniel de Paola</a></p> ]]></content:encoded> <wfw:commentRss>http://gustavoribeiro.com/blog/verdades-estao-ai-para-serem-ditas/feed</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>CSS Reset</title><link>http://gustavoribeiro.com/blog/css-reset</link> <comments>http://gustavoribeiro.com/blog/css-reset#comments</comments> <pubDate>Wed, 22 Jun 2011 11:00:52 +0000</pubDate> <dc:creator>gusribeiro</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[CSS]]></category><guid isPermaLink="false">http://gustavoribeiro.com/?p=419</guid> <description><![CDATA[O CSS Reset é uma técnica bastante comum entre os desenvolvedores client-side para zerar os atributos pré-setados para as tags html que vem por default nos browsers, ou seja, possuem diferentes configurações de fonte padrão, margens etc. Como muitos sabem, principalmente os desenvolvedores, essas diferenças de valores atrapalham no desenvolvimento e por isso temos que [...]]]></description> <content:encoded><![CDATA[<p>O CSS Reset é uma técnica bastante comum entre os desenvolvedores client-side para zerar os atributos pré-setados para as tags html que vem por default nos browsers, ou seja, possuem diferentes configurações de fonte padrão, margens etc.</p><p>Como muitos sabem, principalmente os desenvolvedores, essas diferenças de valores atrapalham no desenvolvimento e por isso temos que zerá-los antes de qualquer coisa para que podemos ter certeza, não tanta assim, de que estamos trabalhando fora desses valores default dos browsers.</p><p><span id="more-419"></span></p><p>Procurando no google você irá encontrar diversas formas de aplicação do CSS Reset, umas mais implementadas e outras bastante simples que, particularmentes, é a que gosto de usar. Dentre todas essas soluções, temos as mais conhecidas como a do <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/" target="_blank">Eric Meyer</a>, <a href="http://www.tantek.com/log/2004/undohtml.css" target="_blank">Tantek Celik</a>, sugestões de empresas como a do <a href="http://developer.yahoo.com/yui/reset/" target="_blank">Yahoo!</a> ou a mais simples possível.</p><pre class="brush: css; title: ; notranslate">* {margin:0;padding:0;height:100%;list-style:none}</pre><p>PS: A forma de escrita do CSS vai de cada um. Eu, por exemplo, consigo ler melho o CSS em linha, como feito acima, do que escrevendo cada propriedade em cada linha.</p> ]]></content:encoded> <wfw:commentRss>http://gustavoribeiro.com/blog/css-reset/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Alterando o tamanho da fonte do site</title><link>http://gustavoribeiro.com/blog/alterando-o-tamanho-da-fonte-do-site</link> <comments>http://gustavoribeiro.com/blog/alterando-o-tamanho-da-fonte-do-site#comments</comments> <pubDate>Wed, 15 Jun 2011 11:00:40 +0000</pubDate> <dc:creator>gusribeiro</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[JavaScript]]></category><guid isPermaLink="false">http://gustavoribeiro.com/?p=401</guid> <description><![CDATA[Hoje iremos aprender como fazer um script para aumentar e diminuir o tamanho da fonte de seu site. O script é bem simples e fácil de entender, porém temos que definir qual o tamanho padrão que iremos ter em nosso site. Na maioria dos browsers &#8211; se não todos &#8211; utilizando 16px como tamanho de [...]]]></description> <content:encoded><![CDATA[<p>Hoje iremos aprender como fazer um script para aumentar e diminuir o tamanho da fonte de seu site.</p><p>O script é bem simples e fácil de entender, porém temos que definir qual o tamanho padrão que iremos ter em nosso site.</p><p>Na maioria dos browsers &#8211; se não todos &#8211; utilizando 16px como tamanho de fonte padrão, podendo ser alterado pelo usuário caso prefira. Vamos trabalhar com o valor padrão, sem alteração.</p><p><span id="more-401"></span></p><p>Primeiro, iremos definir o tamanho padrão de fonte para o noso site. Optei por 0.69em (11px)</p><pre class="brush: jscript; title: ; notranslate">var tam = 69; //número inteiro e tamanho relativo &quot;em&quot;</pre><p>Criaremos a função chamada <em>mudaFonte</em> recebendo o parâmetro <em>obj</em>. O parâmetro será utilizado para sabermos se foi clicado no a+ ou no a-</p><pre class="brush: jscript; title: ; notranslate">function mudaFontes(obj) {
//conteudo do script
}</pre><p>Iremos utilizar <em>switch</em> como nossa condição. Se for &#8220;+&#8221;, aumentaremos o tamanho e se for &#8220;-&#8221;, diminuiremos. Assim…</p><pre class="brush: jscript; title: ; notranslate">switch (obj) {
  case '+':
    tam = tam + 9;
    break;
  case '-':
    tam = tam - 9;
    break;
}</pre><p>Por fim, ajustaremos o valor padrão de nossa div principal &#8211; <em>ctPrincipal</em> ou o nome que escolheu colocar em sua div &#8211; com o valor final que obteremos no script, dividiremos por 100 e adicionaremos &#8220;em&#8221; para indicar um valor relativo.</p><pre><code>document.getElementById('ctPrincipal').style.fontSize = (tam / 100) + 'em';</code></pre><p>Finalizando, nosso sript ficaria assim:</p><pre class="brush: jscript; title: ; notranslate">var tam = 69;
function mudaFonte(obj) {
  switch (obj) {
    case '+':
      tam = tam + 9;
      break;
    case '-':
      tam = tam - 9;
      break;
  }
  document.getElementById('ctPrincipal').style.fontSize = (tam / 100) + 'em';
}</pre><p>Para ativar a função basta utilizar <em>onclick=&#8221;mudaFonte(&#8216;+&#8217;)&#8221;</em> &#8211; para aumentar &#8211; e <em>onclick=&#8221;mudaFonte(&#8216;+&#8217;)&#8221;</em> &#8211; para diminuir. Outras versões ou dicas são bem vindas nos comentários <img src='http://gustavoribeiro.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://gustavoribeiro.com/blog/alterando-o-tamanho-da-fonte-do-site/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Formulário utilizando &#8220;Label&#8221; e o atributo &#8220;For&#8221;</title><link>http://gustavoribeiro.com/blog/formulario-utilizando-label-e-o-atributo-for</link> <comments>http://gustavoribeiro.com/blog/formulario-utilizando-label-e-o-atributo-for#comments</comments> <pubDate>Wed, 08 Jun 2011 11:00:51 +0000</pubDate> <dc:creator>gusribeiro</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[xHTML]]></category><guid isPermaLink="false">http://gustavoribeiro.com/?p=392</guid> <description><![CDATA[Quem nunca ficou irado ao ter que preencher um formulário e só conseguir clicar em cima da bolinha &#8211; radio button &#8211; de cada opção para fazer sua escolha? Sim, isso realmente irrita. Para isso que existe o atributo “for” para os nossos form label. Ok, o que seria esse tal de “for”. Quando criamos [...]]]></description> <content:encoded><![CDATA[<p>Quem nunca ficou irado ao ter que preencher um formulário e só conseguir clicar em cima da bolinha &#8211; radio button &#8211; de cada opção para fazer sua escolha? Sim, isso realmente irrita. Para isso que existe o atributo “for” para os nossos form label. Ok, o que seria esse tal de “for”.</p><p>Quando criamos um formulário temos que ficar atentos a, no mínimo, três tags fundamentais para a marcação correta do form, são elas: &lt;form&gt;, &lt;label&gt; e a nossa famosa &lt;input&gt;.</p><p><span id="more-392"></span></p><ul><li>&lt;form&gt; &#8211; indicará o início e fim do nosso formulário;</li><li>&lt;label&gt; &#8211; irá conter todo o respectivo texto de cada campo do formulário;</li><li>&lt;input&gt; &#8211; nosso formulário em si (campo texto, radio buttons etc).</li></ul><p><span id="more-129"> </span></p><pre class="brush: xml; title: ; notranslate">&lt;form action=&quot;/&quot;&gt;
  &lt;p&gt;
    &lt;label for=&quot;txtNome&quot;&gt;Nome&lt;/label&gt;
    &lt;input type=&quot;text&quot; id=&quot;txtNome&quot; /&gt;
  &lt;/p&gt;
  &lt;p&gt;
    &lt;label for=&quot;txtEmail&quot;&gt;Nome&lt;/label&gt;
    &lt;input type=&quot;text&quot; id=&quot;txtEmail&quot; /&gt;
  &lt;/p&gt;
  &lt;p&gt;
    &lt;input type=&quot;submit&quot; value=&quot;Enviar&quot; /&gt;
  &lt;/p&gt;
&lt;/form&gt;</pre><p>Reparem que, para cada &lt;label&gt;, temos um for e, para cada &lt;input&gt;, temos uma id, ambas com o mesmo valor. Cada “id” representa uma identificação para cada campo do formulário enquanto cada “for” representa uma ligação do label com o campo.</p><p>Pronto! Já temos todas as ligações feitas, agora é só clicar no texto para que, automaticamente, o campo texto seja selecionado. O mesmo acontece com os demais objetos de um formulário (radio button, checkboxes etc).</p> ]]></content:encoded> <wfw:commentRss>http://gustavoribeiro.com/blog/formulario-utilizando-label-e-o-atributo-for/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Criando Formulários Acessíveis</title><link>http://gustavoribeiro.com/blog/criando-formularios-acessiveis</link> <comments>http://gustavoribeiro.com/blog/criando-formularios-acessiveis#comments</comments> <pubDate>Wed, 01 Jun 2011 11:00:44 +0000</pubDate> <dc:creator>gusribeiro</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[xHTML]]></category><guid isPermaLink="false">http://gustavoribeiro.com/?p=408</guid> <description><![CDATA[Falar sobre formulários acessíveis se tornou meio difícil por ser um assunto que cada um poderá interpretar de uma maneira diferente. Alguns dizem que o correto é criarmos o formulário utilizando listas desordenadas (ul), outros já falam que o correto seria utilizarmos parágrafos (p). Utilizar &#60;p&#62; ou &#60;ul&#62;? Escolha um e seja feliz. Para que [...]]]></description> <content:encoded><![CDATA[<p>Falar sobre formulários acessíveis se tornou meio difícil por ser um assunto que cada um poderá interpretar de uma maneira diferente. Alguns dizem que o correto é criarmos o formulário utilizando listas desordenadas (ul), outros já falam que o correto seria utilizarmos parágrafos (p). Utilizar &lt;p&gt; ou &lt;ul&gt;? Escolha um e seja feliz. <img src='http://gustavoribeiro.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p>Para que um formulário seja realmente acessível, precisamos estar cientes da existência de algumas tags básicas e para que elas servem. Vamos a elas:</p><ul><li><strong>form:</strong> cria uma área para a entrada de dados podendo conter campos de texto, checkboxes, radio-buttons etc.</li><li><strong>fieldset:</strong> utilizado para agrupar elementos no formulário. ex: dados pessoais, dados profissionais etc.</li><li><strong>legend:</strong> define um nome para cada fieldset criado</li><li><strong>label:</strong> define um “label” para um determinado controle.</li><li><strong>input, checkbox e radiobutton:</strong> elementos de um form.</li></ul><p><span id="more-153"></span>Conhecida as principais tags, vamos a criação do formulário. Primeiro criaremos a área válida do form:</p><pre class="brush: xml; title: ; notranslate">&lt;form action=&quot;/&quot;&gt;
    aqui iremos montar nosso form
&lt;/form&gt;</pre><p>Dentro da área criada pela tag &lt;form&gt;, iremos dividir as informações em <em>Dados Pessoais</em> e <em>Dados Profissionais</em> utilizando as tags &lt;fieldset&gt; e &lt;legend&gt; para então adicionarmos os campos a serems preenchidos:</p><pre class="brush: xml; title: ; notranslate">&lt;fieldset&gt;
    &lt;legend&gt;Dados Pessoais&lt;/legend&gt;
    &lt;p&gt;&lt;label for=&quot;txtNome&quot;&gt;Nome &lt;input type=&quot;text&quot; id=&quot;txtNome&quot; value=&quot;&quot; /&gt;&lt;/label&gt;&lt;/p&gt;
    &lt;p&gt;&lt;label for=&quot;txtEmail&quot;&gt;Email &lt;input type=&quot;text&quot; id=&quot;txtEmail&quot; value=&quot;&quot; /&gt;&lt;/label&gt;&lt;/p&gt;
&lt;/fieldset&gt;
&lt;fieldset&gt;
    &lt;legend&gt;Dados Pessoais&lt;/legend&gt;
    &lt;p&gt;&lt;label for=&quot;txtNome&quot;&gt;Nome &lt;input type=&quot;text&quot; id=&quot;txtNome&quot; value=&quot;&quot; /&gt;&lt;/label&gt;&lt;/p&gt;
    &lt;p&gt;&lt;label for=&quot;txtEmail&quot;&gt;Email &lt;input type=&quot;text&quot; id=&quot;txtEmail&quot; value=&quot;&quot; /&gt;&lt;/label&gt;&lt;/p&gt;
&lt;/fieldset&gt;</pre><p>Para finalizar, um botão para o envio dessas informações:</p><pre class="brush: xml; title: ; notranslate">&lt;p&gt;&lt;input type=&quot;submit&quot; value=&quot;Enviar&quot; /&gt;&lt;/p&gt;</pre>]]></content:encoded> <wfw:commentRss>http://gustavoribeiro.com/blog/criando-formularios-acessiveis/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Abreviações em xHTML</title><link>http://gustavoribeiro.com/blog/abreviacoes-em-xhtml</link> <comments>http://gustavoribeiro.com/blog/abreviacoes-em-xhtml#comments</comments> <pubDate>Wed, 25 May 2011 11:00:38 +0000</pubDate> <dc:creator>gusribeiro</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[xHTML]]></category><guid isPermaLink="false">http://gustavoribeiro.com/?p=397</guid> <description><![CDATA[Abreviação já se auto-explica o que é então vou ser rápido e explicar a diferença entre abreviações e acrônimos. Para muitos, ou até para a maioria, usuários internet tudo é abreviação mas na realidade não é a verdade. Acrônimos são palavras formadas por letras ou sílabas iniciais de uma locução &#8211; Ex.: CSS = Cascading [...]]]></description> <content:encoded><![CDATA[<p>Abreviação já se auto-explica o que é então vou ser rápido e explicar a diferença entre abreviações e acrônimos.</p><p>Para muitos, ou até para a maioria, usuários internet tudo é abreviação mas na realidade não é a verdade. Acrônimos são palavras formadas por letras ou sílabas iniciais de uma locução &#8211; Ex.: CSS = Cascading Style Sheets &#8211; enquanto abreviação é uma forma curta da palavra excrita &#8211; Ex.: Av. = Avenida.</p><p>No xHTML, a utilização da tag abrr se dá na seguinte forma:</p><pre class="brush: xml; title: ; notranslate">&lt;abbr&gt;&lt;/abbr&gt;</pre><p>Para cada &lt;abbr&gt; gerado, é altamente recomendável, no meu ponto de vista <strong>obrigatório</strong>, o uso da propriedade &lt;title&gt; ao qual, com ela, podemos visualizar o significado daquele abreviação ao passarmos o mouse por cima da palavra.</p><pre class="brush: xml; title: ; notranslate">&lt;abbr title=&quot;Avenida&quot;&gt;Av.&lt;/abbr&gt;</pre><p>Fazendo isso, estaremos ajudando a quem não tem o conhecimento de certas abreviações e faremos nossos sites mais acessíveis e de acordo com os padrões <a href="http://www.w3.org/">w3c</a>.</p><p><strong>[update]</strong><br /> Uma ótima pedida é mudarmos o cursor do mouse, ao passarmos por cima do &lt;abbr&gt;, para o ícone de help (ajuda).</p><pre class="brush: css; title: ; notranslate">abbr { cursor: help }</pre>]]></content:encoded> <wfw:commentRss>http://gustavoribeiro.com/blog/abreviacoes-em-xhtml/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>URLs Amigáveis</title><link>http://gustavoribeiro.com/blog/urls-amigaveis</link> <comments>http://gustavoribeiro.com/blog/urls-amigaveis#comments</comments> <pubDate>Wed, 18 May 2011 11:00:58 +0000</pubDate> <dc:creator>gusribeiro</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[SEO]]></category><guid isPermaLink="false">http://gustavoribeiro.com/?p=422</guid> <description><![CDATA[Após notar a dificuldade de muitas pessoas em entender sobre URLs amigáveis, resolvi escrever esse tópico para tentar explicar melhor sobre, além de já existir diversos blogs e sites explicando. Já ouvir gente dizer que &#8220;urls amigáveis são as mais clicadas em um site&#8221;. #fail para quem disse isso e quem acredita ser isso. Já [...]]]></description> <content:encoded><![CDATA[<p>Após notar a dificuldade de muitas pessoas em entender sobre URLs amigáveis, resolvi escrever esse tópico para tentar explicar melhor sobre, além de já existir diversos blogs e sites explicando. Já ouvir gente dizer que <em>&#8220;urls amigáveis são as mais clicadas em um site&#8221;</em>. #fail para quem disse isso e quem acredita ser isso.</p><p>Já parou para imaginar o quanto é difícil memorizar urls do tipo <strong><em>americanas.com.br/home/begin.do?home=AcomMat&amp;mat=6056</em></strong>? Difícil né? Não seria mais fácil e objetivo se fosse <strong><em>americanas.com.br/todos-os-departamentos</em></strong>? Fica mais claro sabermos que essa URL é para área de <em>todos os departamentos</em> do site Americanas.com.</p><p>Além do critério memorização, uma grande vantagem das URLs amigáveis são com relação aos robôs de busca (google, yahoo, live search etc). Alguns desses diversos robôs deixam até de indexar suas páginas devido ao uso de caracteres em suas URLs como o &#8220;<strong>?</strong>&#8221; e o &#8220;<strong>&amp;</strong>&#8221; além de, com isso, você estar deixando claro o uso de algumas tecnologias utilizadas em seu site/blog &#8211; php, jsp etc &#8211; e deixando expostas variáveis GET para seus usuários.</p><p><span id="more-307"></span>Na parte de administração do WordPress em <em>configurações &#8211; links permanentes</em>, você pode &#8211; na minha opinião, deve &#8211; alterar essas configurações e setá-las para <em>estrutura personalizada</em> ou alguma das opções exceto a primeira <em>/?p=123</em>. Ah, seu site não é em wordpress? Ok, existem outros métodos para que essa alteração possa ser feita. Uma dela é alterando o arquivos .htaccess.</p><p>Caso não exista o arquivo .htaccess na raiz de seu site, bata criá-lo &#8211; é nele que ficaram as regras de reescritas de seu site. <a href="http://www.devin.com.br/htaccess/" rel="nofollow">Leia mais sobre .htaccess</a> e <a href="http://blog.adrianogodoy.com/2008/11/09/urls-amigaveis-htaccess/" rel="nofollow">como tornar suas URLs amigáveis a partir dele</a>.</p> ]]></content:encoded> <wfw:commentRss>http://gustavoribeiro.com/blog/urls-amigaveis/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching using disk: basic
Object Caching 524/623 objects using disk: basic

Served from: gustavoribeiro.com @ 2012-02-05 12:35:21 -->
