<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"> <channel><title>Edson S. Júnior</title> <link>http://edsonjunior.com</link> <description>Internet, CSS e Photoshop</description> <lastBuildDate>Wed, 07 Dec 2011 10:20:21 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=</generator> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/EdsonJr" /><feedburner:info uri="edsonjr" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Qual a medida em pixels de uma folha de papel A4?</title><link>http://feedproxy.google.com/~r/EdsonJr/~3/0F4JgtwXHDY/</link> <comments>http://edsonjunior.com/qual-medida-em-pixels-de-uma-folha-a4/#comments</comments> <pubDate>Thu, 12 May 2011 04:25:52 +0000</pubDate> <dc:creator>ed1nh0</dc:creator> <category><![CDATA[Photoshop]]></category> <guid isPermaLink="false">http://edsonjunior.com/?p=130</guid> <description><![CDATA[Antes de qualquer explicação, você sabe converter centímetros para polegadas, e vice-versa? 1 cm = 0,3937 pol ou 1 pol = 2,54 cm (mais fácil de gravar, não?) Agora, você com certeza já deve ter ouvido falar em dpi. Sabe o que significa? dpi (dots per inch, ou pontos por polegada em português), é uma <a
href="http://edsonjunior.com/qual-medida-em-pixels-de-uma-folha-a4/" class="more-link">Mais &#62;</a>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/WBjlm7UxOxE2JDCA3LaPJ1-JDTM/0/da"><img src="http://feedads.g.doubleclick.net/~a/WBjlm7UxOxE2JDCA3LaPJ1-JDTM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/WBjlm7UxOxE2JDCA3LaPJ1-JDTM/1/da"><img src="http://feedads.g.doubleclick.net/~a/WBjlm7UxOxE2JDCA3LaPJ1-JDTM/1/di" border="0" ismap="true"></img></a></p><p><img
class="aligncenter size-full wp-image-132" src="http://edsonjunior.com/wp-content/uploads/caixa-de-dialogo-image-size.png" alt="As caixas de diálogo do Photoshop NEW DOCUMENT e IMAGE SIZE" width="617" height="364" /></p><p>Antes de qualquer explicação, você sabe converter centímetros para polegadas, e vice-versa?</p><p><span
style="background-color: #ffc; border: 1px solid #ccc; padding: 3px 5px;">1 cm = 0,3937 pol</span> ou <span
style="background-color: #ffc; border: 1px solid #ccc; padding: 3px 5px;">1 pol = 2,54 cm</span> (mais fácil de gravar, não?)</p><p>Agora, você com certeza já deve ter ouvido falar em <code>dpi</code>. Sabe o que significa?</p><p><span
id="more-130"></span></p><p><code>dpi</code> (<em>dots per inch</em>, ou pontos por polegada em português),<cite>é uma medida de densidade relacionada à composição de imagens, que expressa o número de pontos individuais que existem em uma polegada linear (&#8230;). Também é comum encontrar referências a essa densidade pelo termo &#8220;resolução&#8221;. A resolução é indicada pela composição da densidade horizontal e vertical (&#8230;). De maneira geral, quanto maior o número de pontos por polegada, <strong>mais detalhada e bem definida</strong> é a imagem.</cite> &ndash;Wikipedia</p><h2>Convertendo centímetros em pixels</h2><p>Para calcular o número de pixels de um arquivo cujas medidas estão em centímetros é necessário saber qual é a resolução desse arquivo. A grosso modo, seria mais ou menos como querer saber quantos tijolos tem a frente da sua casa sem saber quanto mede um tijolo, compreende?</p><p>Lembrando que <strong
style="color: #c00;">pixel é o menor ponto que forma uma imagem digital e não muda de tamanho, nunca!</strong></p><p>Pois bem, em um exemplo ideal, rápido e prático, se uma imagem tem 10 x 10 cm a 1 ppc (pixel por cm, inventei agora pra esse exemplo), significa que temos uma imagem também de 10 x 10 pixels, concorda?</p><p>E na resolução padrão de imagens para web? São 72 dpi (pontos por polegada), quanto teria nossa imagem de 10 x 10 cm?<br
/> Convertendo a resolução de polegadas para centímetros, temos que 72 pontos por polegada são 28,346 pontos por centímetro (72 ÷ 2,54).<br
/> Então, nossa imagem de 10 x 10 cm a 72 dpi tem 283 x 283 pixels. Como pixel não varia de tamanho, é compreensível que não exista um número fracionário, tipo 283,46 x 283,46 pixels.</p><p>Se fosse na resolução ideal para impressão, desejável que seja 300 dpi, teremos um número maior de pixels e, portanto, melhor definição da imagem.<br
/> Fazendo as contas: 10 x 10 cm a 300 dpi (118,11 ppcm) resultam em 1181 x 1181 pixels.</p><p><img
class="aligncenter size-full wp-image-131" style="margin-top: 40px;" src="http://edsonjunior.com/wp-content/uploads/A-A.png" alt="A diferença visual da letra &quot;A&quot; em alta e baixa resolução" width="349" height="174" /></p><p
style="font-size:11px; text-align:center; margin:0 0 20px 0;">As duas letras &ldquo;A&rdquo; têm o mesmo tamanho, mas resolução diferente.</p><p>Eu sei que pode parecer complicado fazer entender que a exibição no monitor de duas imagens com resoluções diferentes não revelam necessariamente as diferenças nas suas dimensões físicas. Note que no &#8220;A&#8221; da direita os pixels estão maiores. Na verdade, como já afirmei, não são os pixels que estão maiores, mas a resolução da imagem é menor para representar o mesmo tamanho físico de 10 x 10 cm.</p><h2>Concluindo</h2><p>Acredito que agora ficou mais fácil aplicar esse cálculo para o título desse artigo: <strong>Qual a medida em pixels de uma folha de papel A4?</strong></p><p>Um arquivo com 21 x 29,7 cm a 72 dpi possui, para a largura, 21x(72÷2,54)=595 pixels. E, para a altura, 29,7x(72÷2,54)=842 pixels. Logo:</p><p><span
style="background-color: #ffc; border: 1px solid #ccc; padding: 3px 5px;">21 x 29,7 cm (a 72 dpi) = 595 x 842 pixels</span></p><p>E na resolução de 300 dpi, temos:</p><p><span
style="background-color: #ffc; border: 1px solid #ccc; padding: 3px 5px;">21 x 29,7 cm (a 300 dpi) = 2479 x 3508 pixels</span></p><p>Espero que tenha sanado suas dúvidas. Restou alguma? Comente!</p><div
class="plus-one-wrap"><g:plusone href="http://edsonjunior.com/qual-medida-em-pixels-de-uma-folha-a4/"></g:plusone></div><img src="http://feeds.feedburner.com/~r/EdsonJr/~4/0F4JgtwXHDY" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://edsonjunior.com/qual-medida-em-pixels-de-uma-folha-a4/feed/</wfw:commentRss> <slash:comments>8</slash:comments> <feedburner:origLink>http://edsonjunior.com/qual-medida-em-pixels-de-uma-folha-a4/</feedburner:origLink></item> <item><title>Qual o tamanho do background do Twitter?</title><link>http://feedproxy.google.com/~r/EdsonJr/~3/kJhUBugQihY/</link> <comments>http://edsonjunior.com/qual-tamanho-background-twitter/#comments</comments> <pubDate>Tue, 03 Aug 2010 04:22:28 +0000</pubDate> <dc:creator>ed1nh0</dc:creator> <category><![CDATA[Photoshop]]></category> <category><![CDATA[background]]></category> <category><![CDATA[twitter]]></category> <guid isPermaLink="false">http://edsonjunior.com/?p=116</guid> <description><![CDATA[Você, usuário um pouco mais, digamos, experimentado, já tentou posicionar uma imagem no background do seu perfil no Twitter? Convenhamos, é meio chato! Vou explicar como adaptar (criar é com você!) uma imagem, de modo que seu background apareça melhor em algumas resoluções de monitor mais comuns. Antes, você precisa saber de alguns incovenientes: Não <a
href="http://edsonjunior.com/qual-tamanho-background-twitter/" class="more-link">Mais &#62;</a>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/Tozf4ibpzaVYPMw6Ou9HgQFWjeg/0/da"><img src="http://feedads.g.doubleclick.net/~a/Tozf4ibpzaVYPMw6Ou9HgQFWjeg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Tozf4ibpzaVYPMw6Ou9HgQFWjeg/1/da"><img src="http://feedads.g.doubleclick.net/~a/Tozf4ibpzaVYPMw6Ou9HgQFWjeg/1/di" border="0" ismap="true"></img></a></p><p><img
class="aligncenter size-full wp-image-122" title="capa" src="http://edsonjunior.com/wp-content/uploads/capa.png" alt="mascote do twitter pensando &quot;background? #comofaz&quot;" width="420" height="240" /></p><p>Você, usuário um pouco mais, digamos, experimentado, já tentou posicionar uma imagem no <em>background</em> do seu perfil no <strong><a
href="http://twitter.com/" target="_blank" rel="nofollow">Twitter</a></strong>?</p><p>Convenhamos, é meio chato! Vou explicar como adaptar (criar é com você!) uma imagem, de modo que seu background apareça melhor em algumas resoluções de monitor mais comuns.</p><p><span
id="more-116"></span></p><p>Antes, você precisa saber de alguns incovenientes:</p><ul><li>Não existe um tamanho certo;</li><li>O <strong>Twitter</strong> não centraliza a imagem, alinhando a esquerda (e ao topo);</li><li>Quanto menor a resolução do monitor, menos da imagem é exibido;</li><li>E quanto maior a resolução, mais estranho fica o enquadramento;</li><li>Desaconselhável usar o lado direito da imagem (concentre o principal sempre no canto superior esquerdo);</li></ul><p>Partindo do básico, mas necessário, você sabe qual a <strong>resolução do seu monitor</strong>?<br
/> Mesmo que isso não tenha importância – pois o background não tem que aparecer pra você, mas pra quem visita seu perfil no Twitter – é bom saber pra que isso não seja fator limitante na sua criação.</p><p>Saiba que o 1024&#215;768 pixels já caiu em desuso faz tempo. O ideal é partir pra um formato nativo desses monitores de 22&#8243; (que estão bastante populares) ou até mesmo a resolução Full HD, de 1920&#215;1080 pixels. Mas lembre-se que quanto maior esse formato, mais pesado fica seu arquivo.</p><p>Para imagens/fotos de paisagens, composições, texturas e afins, sugiro o formato de <strong>1680&#215;1050 pixels</strong>, que vai exibir bem na maioria dos monitores. No entanto, se você pretende enquadrar um rosto, um olhar ou um close de algo, sugiro partir de um formato menor, como o de <strong>1280&#215;1024 pixels</strong>, para garantir um melhor acerto.</p><p><img
class="aligncenter size-full wp-image-119" src="http://edsonjunior.com/wp-content/uploads/screenshot1.jpg" alt="interface do twitter no formato de tela de 1680x1050 pixels" width="617" height="386" /></p><p>A matemática é a seguinte: A interface do Twitter tem 763 pixels de largura. Considerando a barra de rolagem do browser (que pra facilitar aqui vou arredondar para 20 pixels), temos 783 pixels que vão comprometer a largura total da nossa imagem de 1680 pixels. E, como eu disse, vamos aproveitar somente a parte da esquerda, ou seja, 449 pixels (1680 &#8211; 20 &#8211; 763 ÷ 2).</p><p><img
class="aligncenter size-full wp-image-120" src="http://edsonjunior.com/wp-content/uploads/screenshot2.jpg" alt="exemplo de enquadramento da imagem usando a foto do rosto de um leão, cuja imagem da esquerda mostra essa foto sem enquadramento, e a da direita melhor posicionada pra melhor revelar o rosto" width="617" height="193" /></p><p>Note no exemplo que o que interessa só conseguimos identificar se chegarmos a imagem mais à esquerda. Caso contrário o rosto do animal fica escondido. Sendo assim, não há necessidade de se definir o tamanho da imagem como sendo o total da tela (essa do leão tem 1024&#215;768 exatamente, o resto é cor sólida que você define no painel de configuração do próprio Twitter).</p><p><img
class="aligncenter size-full wp-image-121" src="http://edsonjunior.com/wp-content/uploads/screenshot3.jpg" alt="rosto do leão levemente fora do enquadramento devido a uma resolução menor (1280x1024)" width="309" height="247" /><br
/> Perceba que esse enquadramento é o mesmo do anterior, porém exibido numa resolução menor.</p><p>Mesmo bem posicionado, perdemos um pouco numa resolução menor como a de 1280&#215;1024 (acima).</p><h2>Na prática</h2><p>Um exemplo bacana de hoje é o Twitter da <a
rel="nofollow" href="http://twitter.com/ivetesangalo" target="_blank">Ivete Sangalo</a> que exibe muito bem em vários formatos. O jogo de fontes que o designer criou para o lado direito da imagem permite que parte seja lido em resolução maior e o necessário em resolução menor (isso porque o &#8220;ideal&#8221; é que você crie sempre em formatos maiores mas para serem vistos em resolução menores, quando você dominar essa manha&#8230;)</p><p
style="text-align: center;"><a
href="http://edsonjunior.com/wp-content/uploads/ivete_1024x768.jpg"><img
class="aligncenter size-medium wp-image-123" src="http://edsonjunior.com/wp-content/uploads/ivete_1024x768-300x173.jpg" alt="twitter da Ivete Sangalo visto de uma janela padrão de 1024x768" width="300" height="173" /></a>Background do perfil do twitter da cantora visto em uma janela de 1024&#215;768 pixels de resolução</p><p
style="text-align: center;"><a
href="http://edsonjunior.com/wp-content/uploads/ivete_1440x900.jpg"><img
class="aligncenter size-medium wp-image-124" src="http://edsonjunior.com/wp-content/uploads/ivete_1440x900-300x188.jpg" alt="twitter da Ivete Sangalo visto de uma janela padrão de 1440x900" width="300" height="188" /></a>Visto em uma janela de 1440&#215;900 pixels<br
/> (comum em notebooks, inclusive deste que vos escreve)</p><p>E, pra fechar, a imagem está em preto e branco não só por uma questão de estética, mas por deixar o tamanho do arquivo menor!</p><h2>Conclusão</h2><p>Deixe a parte da direita da imagem para coisas sem muita importância, ou que só componham o cenário. Evite deixar rostos ou algo que você considera importante exibir.<br
/> Mesmo quando você for criar uma fusão de fotos ou um mural (veja o background do <a
rel="nofollow" href="http://twitter.com/LucianoHuck" target="_blank">perfil do Luciano Huck</a>, e <a
rel="me" href="http://edsonjunior.com/contato/">me avise</a> se não se parecer com um mural de fotos!), deixe do lado direito as fotos menos importantes.</p><p>Aqui desconsiderei a altura das imagens, mencionando sempre a largura. Pois mais difícil que prever a resolução do monitor do visistante do seu perfil é saber quanto de links e barras de ferramentas ele possui em seu browser, limitando sempre mais e mais a área útil vertical. Se para a largura podemos pensar grande, por outro lado evite alturas maiores que 600 pixels, ou algo de importante que exceda esse valor.</p><div
class="plus-one-wrap"><g:plusone href="http://edsonjunior.com/qual-tamanho-background-twitter/"></g:plusone></div><img src="http://feeds.feedburner.com/~r/EdsonJr/~4/kJhUBugQihY" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://edsonjunior.com/qual-tamanho-background-twitter/feed/</wfw:commentRss> <slash:comments>45</slash:comments> <feedburner:origLink>http://edsonjunior.com/qual-tamanho-background-twitter/</feedburner:origLink></item> <item><title>Por que usar CSS Reset?</title><link>http://feedproxy.google.com/~r/EdsonJr/~3/trDA7VWKFu0/</link> <comments>http://edsonjunior.com/por-que-usar-css-reset/#comments</comments> <pubDate>Mon, 26 Jul 2010 01:43:37 +0000</pubDate> <dc:creator>ed1nh0</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[css reset]]></category> <category><![CDATA[interface]]></category> <guid isPermaLink="false">http://edsonjunior.com/?p=111</guid> <description><![CDATA[Muito se discute sobre o uso de CSS Reset em desenvolvimento web. É um verdadeiro divisor de águas. Há quem o odeia e quem não viva sem (meu caso). Especialistas divergem entre si e são muito políticos em suas defesas quanto ao uso ou não de resets. Tanto que confundem a cabeça de novatos nessa <a
href="http://edsonjunior.com/por-que-usar-css-reset/" class="more-link">Mais &#62;</a>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/TFm_0X8coLi-aQoLCm7CivTIxmw/0/da"><img src="http://feedads.g.doubleclick.net/~a/TFm_0X8coLi-aQoLCm7CivTIxmw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/TFm_0X8coLi-aQoLCm7CivTIxmw/1/da"><img src="http://feedads.g.doubleclick.net/~a/TFm_0X8coLi-aQoLCm7CivTIxmw/1/di" border="0" ismap="true"></img></a></p><p><img
class="aligncenter size-full wp-image-112" title="CSS Reset" src="http://edsonjunior.com/wp-content/uploads/capa.jpg" alt="botão CSS Reset (uma metáfora para o problema)" width="400" height="267" /></p><p>Muito se discute sobre o uso de <strong>CSS Reset</strong> em desenvolvimento web. É um verdadeiro divisor de águas. Há quem o odeia e quem não viva sem (meu caso).</p><p>Especialistas divergem entre si e são muito políticos em suas defesas quanto ao uso ou não de <em>resets</em>. Tanto que confundem a cabeça de novatos nessa área e só fazem aumentar a necessidade de um veredito.</p><p>Pois bem, resolvi peitar uma defesa baseada em problemas que enfrento diariamente. E defino minha conclusão com uma pergunta mais que direta: <strong>&#8220;Como eu criava sites antes sem usar um <em>CSS Reset</em>?&#8221;</strong></p><p><span
id="more-111"></span></p><p>O que exponho aqui não é regra, mas uma abordagem pessoal. A diferença é que vou tentar te convencer do benefício da técnica e o espaço está aberto para uma discussão saudável.</p><p><img
class="alignleft size-full wp-image-113" style="margin-right: 20px;" src="http://edsonjunior.com/wp-content/uploads/browsers.jpg" alt="Atlas segurando o globo sobre seus ombros contendo os browsers Internet Explorer, Firefox, Opera, Chrome e Safari" width="186" height="308" />Você sabe, existem diferenças sutis na renderização padrão de cada browser. A maioria delas giram em torno de margens e preenchimentos de vários elementos, como parágrafos, títulos (h1, h2, &#8230;), elementos de linha e de bloco, tabelas e outros. Isso tudo é normal! Fiquei surpreso quando um dia descobri que o tamanho padrão de fonte para <strong>todos</strong> os browsers é de 16px. Pense, poderia ser 16px para um, 12px para outro&#8230;</p><p>Pois bem, essas diferenças necessitam ser zeradas para que o programador de interface, lá na frente, não perca tempo com adaptações, filtros e hacks em sua folha de estilo.</p><p>Aquela coluna direita que em um browser fica alinhadinha com o miolo do site desce como num passe de mágica no IE. Aquele parágrafo que começa próximo do topo de um elemento qualquer não está assim tão próximo em outro browser (não necessariamente o IE).</p><h2 style="margin-top: 20px;">Qual o seu motivo?</h2><p>Enfim, uma série de razões pelas quais um <strong>CSS Reset</strong> é necessário e não usamos – ou não queremos usar – também por uma série de fatores:</p><ul><li>Uma requisição a mais de servidor? Ora, inclua na sua folha de estilos principal (sempre no cabeçalho antes de todas as outras declarações, claro!)</li><li>O arquivo .css fica &#8220;grande&#8221;? Mas o que são 5, 6 ou mesmo 10 linhas de código?</li><li>Tem elementos no Reset que não necessitam ser zerados? Sim, tem! Você não precisa zerar até as tags <code>strong</code> e <code>em</code>, por exemplo. Tenha em mente que uma das maiores dificuladades que enfrentamos enquanto programador de interface é com relação a margens e preenchimentos de elementos de nível de bloco.</li></ul><p>Você que já procurou por <strong>CSS Reset</strong> nos mecanismos de buscas já deve ter lido algo tipo <em>&#8220;Best CSS Reset&#8221;</em> blá, blá, blá&#8230; Saiba que o melhor Reset é aquele que zera as propriedades que você vai implementar. Exemplo, não vai usar tabelas no seu site? Então porque zerar seus atributos?</p><p>Penso que quando Eric Meyer apresentou sua versão de Reset em 2008, o que ele queria mostrar é o tanto de atributos que você pode resetar.</p><pre><span>/* v1.0 | 20080212 */</span>
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
	content: '';
	content: none;
}
<span>/* remember to define focus styles! */</span>
:focus {
	outline: 0;
}
<span>/* remember to highlight inserts somehow! */</span>
ins {
	text-decoration: none;
}
del {
	text-decoration: line-through;
}
<span>/* tables still need 'cellspacing="0"' in the markup */</span>
table {
	border-collapse: collapse;
	border-spacing: 0;
}
</pre><p>Repare que ele declara o <code>body</code> com line-height = 1. Mas qual a unidade (em, px)? Achei isso falho.</p><p>Abaixo, o Reset do Yahoo!</p><pre>body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
	margin: 0;
	padding: 0;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
fieldset, img {
	border: 0;
}
address, caption, cite, code, dfn, em, strong, th, var {
	font-style: normal;
	font-weight: normal;
}
ol, ul {
	list-style: none;
}
caption, th {
	text-align: left;
}
h1, h2, h3, h4, h5, h6 {
	font-size: 100%;
	font-weight: normal;
}
q:before, q:after {
	content: '';
}
abbr, acronym {
	border: 0;
}
</pre><p>E aqui, a versão &#8220;mini&#8221;:</p><pre><span>/* CSS Mini Reset */</span>
html, body, div, form, fieldset, legend, label {
	margin: 0;
	padding: 0;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
th, td {
	text-align: left;
	vertical-align: top;
}
h1, h2, h3, h4, h5, h6, th, td, caption {
	font-weight:normal;
}
img {
	border: 0;
}
</pre><h2>Conclusão</h2><p>Como eu já disse, você não precisa manter todos os parâmetros no seu <strong>CSS Reset</strong>. O importante é que você saiba que está zerando as propriedades necessárias.</p><p>Eu particularmente na maioria das vezes retiro as tags <code>bold</code>, <code>em</code> e <code>table</code>. O resto, deixo como está e não tenho dores de cabeça em meus projetos.</p><p>E você? Ainda não usa um <strong>CSS Reset</strong> sem seus trabalhos? Dê sua opinião!</p><p
style="margin: 25px 0;"><div
class="plus-one-wrap"><g:plusone href="http://edsonjunior.com/por-que-usar-css-reset/"></g:plusone></div><img src="http://feeds.feedburner.com/~r/EdsonJr/~4/trDA7VWKFu0" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://edsonjunior.com/por-que-usar-css-reset/feed/</wfw:commentRss> <slash:comments>16</slash:comments> <feedburner:origLink>http://edsonjunior.com/por-que-usar-css-reset/</feedburner:origLink></item> <item><title>@font-face CSS com ajuda do Google font API</title><link>http://feedproxy.google.com/~r/EdsonJr/~3/JS3VS7toh-o/</link> <comments>http://edsonjunior.com/font-face-css-google-api/#comments</comments> <pubDate>Thu, 20 May 2010 20:43:09 +0000</pubDate> <dc:creator>ed1nh0</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[api]]></category> <category><![CDATA[font-face]]></category> <guid isPermaLink="false">http://edsonjunior.com/?p=108</guid> <description><![CDATA[Em um artigo que escrevi sobre o uso de @font-face e a conversão de fontes do formato TTF para EOT abordei o modo mais prático de implementação de fontes diversas para criação de sites mais, digamos, elaborados. Expliquei como e com o que converter fontes, e as linhas de código em CSS para implementação. Agora <a
href="http://edsonjunior.com/font-face-css-google-api/" class="more-link">Mais &#62;</a>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/0ooteW84Hwy8QbUsNJZwCAuuRio/0/da"><img src="http://feedads.g.doubleclick.net/~a/0ooteW84Hwy8QbUsNJZwCAuuRio/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/0ooteW84Hwy8QbUsNJZwCAuuRio/1/da"><img src="http://feedads.g.doubleclick.net/~a/0ooteW84Hwy8QbUsNJZwCAuuRio/1/di" border="0" ismap="true"></img></a></p><p><img
class="alignleft" title="Google font directory" src="http://www.google.com/images/icons/feature/font_api-128.gif" alt="Google font directory" width="128" height="128" /></p><p>Em um artigo que escrevi sobre o uso de <a
href="http://www.edsonjunior.com/font-face-conversao-fontes-ttf-eot/">@font-face e a conversão de fontes do formato TTF para EOT</a> abordei o modo mais prático de implementação de fontes diversas para criação de sites mais, digamos, elaborados. Expliquei como e com o que converter fontes, e as linhas de código em CSS para implementação.</p><p>Agora vou explicar novamente o uso do <strong>@font-face</strong> abordando uma, na verdade duas, ajudas muito bem-vindas do gigante do Vale do Silício: a <a
href="http://code.google.com/apis/webfonts/docs/getting_started.html" target="_blank"><strong>Google font API</strong></a> e o <a
href="http://code.google.com/webfonts/" target="_blank"><strong>Google font directory</strong></a>.</p><p><span
id="more-108"></span></p><p>As vantagens de usar a <abbr
title="Application Programming Interface (Interface de Programação de Aplicativos)">API</abbr> do Google são:</p><ul><li>Com apenas uma linha de código (na verdade um link), substituimos aquelas poucas linhas que expliquei para &#8220;embedar&#8221; uma fonte;</li><li>Não é necessário fazer a conversão de <abbr
title="TrueType Font">TTF</abbr> para <abbr
title="Embed OpenType Font">EOT</abbr>.</li><li>Não é necessário baixar qualquer script ou fonte;</li></ul><p>A desvantagem é ainda a pouca variedade de fontes. Mas acredito que novas famílias de fontes vão ser incluídas nesse diretório de tempos em tempos. E, falando em desvantagem, não creio que apontar um link diretamente para o servidor do Google seja uma. Só para sua informação. Vamos ao que interessa.</p><h2>Usando a Google font API</h2><p><img
class="aligncenter size-full wp-image-110" title="google-font-directory" src="http://edsonjunior.com/wp-content/uploads/google-font-directory.jpg" alt="Tela inicial do Google font directory listando as fontes que podem ser utilizadas com CSS via @font-face" width="384" height="366" /></p><p>Não tem segredo, você <a
title="Google font directory" href="http://code.google.com/webfonts/" target="_blank">escolhe uma fonte</a> que deseja &#8220;embedar&#8221; e insere um link entre as tags <code>&lt;head&gt;</code> de sua página. Aqui um exemplo usando a fonte <strong>Tangerine</strong>.</p><pre>&lt;html&gt;
&lt;head&gt;
&lt;link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Tangerine"&gt;
&lt;style type="text/css"&gt;
body {
    font-family: "Tangerine", serif;
    font-size: 48px;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Making the Web Beautiful!&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre><p>Outra opção que não seja por link é importar a fonte diretamente da tag <code>style</code> no cabeçalho de sua página (ou de um arquivo CSS externo).</p><pre>&lt;html&gt;
&lt;head&gt;
&lt;style type="text/css"&gt;
@import url(http://fonts.googleapis.com/css?family=Tangerine);
body {
    font-family: "Tangerine", serif;
    font-size: 48px;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Making the Web Beautiful!&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;</pre><p>Tanto por link quanto por <code>@import</code>, a URL vem sucedida com o nome da fonte, e você pode escolher mais de uma usando o caractere &#8220;<code>|</code>&#8221; e &#8220;<code>+</code>&#8221; para quando o nome da fonte tiver espaços (por exemplo, para &#8220;<code>Droid Sans</code>&#8221; escreva &#8220;<code>Droid+Sans</code>&#8220;).</p><pre>
http://fonts.googleapis.com/css?family=Tangerine|Inconsolata|Droid+Sans
</pre><p>A <strong>API do Google</strong> traz a versão normal (<em>regular</em>) das fontes por padrão. Para suas variantes (itálico e negrito), adicione dois pontos &#8220;<code>:</code>&#8221; após o nome da fonte com os parâmetros separados por vírgula &#8220;<code>,</code>&#8220;.</p><pre>
http://fonts.googleapis.com/css?family=Tangerine:bold,bolditalic|Inconsolata:italic|Droid+Sans
</pre><p>Para cada estilo da fonte existe uma abreviação:</p><table><tr><th>Estilo</th><th>PARÂMETRO</th></tr><tr><td><em>italic</em></td><td><code>italic</code> ou <code>i</code></td></tr><tr><td><strong>bold</strong></td><td><code>bold</code> ou <code>b</code> ou um valor numérico, ex. <code>700</code></td></tr><tr><td><em><strong>bold italic</strong></em></td><td><code>bolditalic</code> ou <code>bi</code></td></tr></table><pre>http://fonts.googleapis.com/css?family=Cantarell:italic|Droid+Serif:bold</pre><pre>http://fonts.googleapis.com/css?family=Cantarell:i|Droid+Serif:b</pre><pre>http://fonts.googleapis.com/css?family=Cantarell:i|Droid+Serif:700</pre><h2>É necessário Javascript?</h2><p>Não satisfeitos, os desenvolvedores do Google ainda criaram uma biblioteca em Javascript para evitar o chamado FOUC (<em>Flash Of Unstyled Content</em>) causado pela &#8220;demora&#8221; no carregamento da fonte. Acontece quando uma fonte padrão é carregada e logo depois a fonte correta. Mas isso não demora mais que alguns décimos de segundo.</p><p>Totalmente voltada para desenvolvedores, acho desnecessário explicar seu uso aqui. No entanto, caso seja de seu interesse, acesse <a
href="http://code.google.com/apis/webfonts/docs/webfont_loader.html" target="_blank">http://code.google.com/apis/webfonts/docs/webfont_loader.html</a></p><p
style="margin: 30px 0;">Para mais informações sobre a <strong>Google font API</strong> acesse <a
title="Google font API" href="http://code.google.com/apis/webfonts/" target="_blank">http://code.google.com/apis/webfonts</a> (em inglês)</p><div
class="plus-one-wrap"><g:plusone href="http://edsonjunior.com/font-face-css-google-api/"></g:plusone></div><img src="http://feeds.feedburner.com/~r/EdsonJr/~4/JS3VS7toh-o" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://edsonjunior.com/font-face-css-google-api/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://edsonjunior.com/font-face-css-google-api/</feedburner:origLink></item> <item><title>Photoshop: Tratamento de imagem (parte 1)</title><link>http://feedproxy.google.com/~r/EdsonJr/~3/gJCYz87fPiY/</link> <comments>http://edsonjunior.com/photoshop-tratamento-imagem-1/#comments</comments> <pubDate>Tue, 04 May 2010 01:24:58 +0000</pubDate> <dc:creator>ed1nh0</dc:creator> <category><![CDATA[Photoshop]]></category> <category><![CDATA[contraste]]></category> <category><![CDATA[curves]]></category> <category><![CDATA[hdr]]></category> <category><![CDATA[levels]]></category> <category><![CDATA[tratamento de imagem]]></category> <guid isPermaLink="false">http://edsonjunior.com/?p=96</guid> <description><![CDATA[Como tratar uma imagem? Lembro que quando comecei a mexer com tratamento de imagem – em meados de 1995 – o Photoshop (versão 3.x) era muito limitado e não podíamos cometer erros. Aliás, um erro só podia, pois não havia múltiplos undos (o &#8220;desfazer&#8221;), dá pra imaginar?! Também não tinha recursos de layers (camadas) e <a
href="http://edsonjunior.com/photoshop-tratamento-imagem-1/" class="more-link">Mais &#62;</a>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/NyguZhxSKMpUr1jKKNLAw-Gkge8/0/da"><img src="http://feedads.g.doubleclick.net/~a/NyguZhxSKMpUr1jKKNLAw-Gkge8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/NyguZhxSKMpUr1jKKNLAw-Gkge8/1/da"><img src="http://feedads.g.doubleclick.net/~a/NyguZhxSKMpUr1jKKNLAw-Gkge8/1/di" border="0" ismap="true"></img></a></p><p>Como <strong>tratar uma imagem</strong>?</p><p><img
class="aligncenter size-full wp-image-101" src="http://edsonjunior.com/wp-content/uploads/correcao2b1.jpg" alt="duas fotos lado a lado de um combinado de sushi mostrando o antes e depois: do lado esquerdo a foto bruta, sem tratamento de imagem. do lado direito após um tratamento com correção de branco, tom, volume e seleção de cores" width="617" height="309" /></p><p>Lembro que quando comecei a mexer com <strong>tratamento de imagem</strong> – em meados de 1995 – o <strong>Photoshop</strong> (versão 3.x) era muito limitado e não podíamos cometer erros. Aliás, um erro só podia, pois não havia múltiplos <em>undos</em> (o &#8220;desfazer&#8221;), dá pra imaginar?! Também não tinha recursos de <em>layers</em> (camadas) e os pincéis não eram elaborados, além de outras tantas limitações. Mas, desde aquela época o processo de Seleção de Cores (grosso modo, é como chamam o tratamento de imagem para mídia impressa), sofre apenas a interferência das melhorias da ferramenta: as evoluções do programa.</p><p><span
id="more-96"></span></p><p>Meu intuito neste artigo é tão somente explicar alguns processos básicos que considero importantes para correções de luz, cor e contraste, baseado na minha própria experiência nessa área. Acredito que seja muito mais voltado – e útil – para fotógrafos amadores ou pra quem tem uma câmera digital amadora ou semi-profissional mas não domina todos os seus recursos e se permite fazer uma foto sem aproveitar corretamente a luz, não corrige o balanço de branco (<em>whitebalance</em>), invasão de cor (<em>colorcast</em>) ou deixando fora de foco. Aliás, se existe alguma coisa que eu até hoje nunca vi o Photoshop corrigir é o foco de uma imagem borrada. Não é como uma foto escura que você ainda consegue &#8220;puxar&#8221; algum detalhe. Uma foto fora de foco é uma foto desfocada e pronto. Já era.</p><p>Você já parou pra analisar uma imagem qualquer e identificar rapidamente se sua <strong>temperatura</strong> é quente ou fria? Se está azulada? Se tem contraste?</p><p>Bons conhecimentos de fotografia ajudariam muito, mas não são necessários (estou desconsiderando o fato de você ser algum tipo de profissional).</p><p>A maneira com que você manipula a imagem vai depender tanto do seu conhecimento técnico (e isso aparece com o tempo e consequente domínio da ferramenta) quanto do <em>feeling</em> para analisar e compreender o que a imagem tem de falha e/ou que possa ser melhorado.</p><h2>Analisando a imagem</h2><p><a
href="http://edsonjunior.com/wp-content/uploads/pontos.jpg"><img
class="aligncenter size-full wp-image-97" src="http://edsonjunior.com/wp-content/uploads/pontos.jpg" alt="tratamento de imagem no Photoshop da foto de uma cidade vista da janela mostrando as três áreas mais próximas do branco (1), preto (2) e meio-tom (3)" width="500" height="333" /></a></p><p><strong>Ponto de branco¹:</strong> É a área mais clara da imagem e, a não ser que seja esse o objetivo, não deve ser confundida com áreas de luz direta como fontes de luz primária e/ou reflexos (ex.: lâmpadas, sol, superfícies cromadas, etc.). Geralmente são partes de uma parede ou chão branco, folha de papel ou algo que não seja o branco &#8220;chapado&#8221; (o branco zerado no modo <abbr
title="Cyan, Magenta, Yellow, blacK (Ciano, Magenta, Amarelo, Preto) - cores pigmentadas (tinta)">CMYK</abbr> ou 255,255,255 em <abbr
title="Red, Green, Blue (Vermelho, Verde, Azul) - cores de luz (não confundir com cores primárias, que são o vermelho, amarelo e azul)">RGB</abbr>). É muito importante definir o correto ponto de branco da imagem pois assim fica mais fácil corrigir invasões de cor e podemos também definir sua temperatura: quente (amarelada ou avermelhada) ou fria (azulada ou esverdeada).</p><p><strong>Ponto de preto²:</strong> Diferente do ponto de branco no nível de detalhamento, é a área mais escura da imagem mesmo. Geralmente uma sombra ou o que ela tem de mais escuro.</p><p><strong>Griz ou meio tom³:</strong> Como o nome diz é o meio termo, o cinza, e é tão importante quanto o ponto de branco para definir a temperatura de cor da imagem: quente ou fria.</p><p>Familiarize-se com essas duas ferramentas: <strong>Níveis</strong> (<em>Levels</em>) e <strong>Curvas</strong> (<em>Curves</em>).</p><p><img
class="aligncenter size-full wp-image-99" src="http://edsonjunior.com/wp-content/uploads/levels.png" alt="caixa de diálogo LEVELS do Photoshop exibindo o histograma e destacando os pontos de branco, preto e meio-tom no tratamento de imagem" width="413" height="379" /></p><p><img
class="aligncenter size-full wp-image-100" src="http://edsonjunior.com/wp-content/uploads/curves.png" alt="caixa de diálogo CURVES do Photoshop destacando os pontos de branco, preto e meio-tom no tratamento de imagem" width="485" height="482" /></p><p>Tanto os <strong>Níveis</strong> (menu <em>Image &gt; Adjustments &gt; Levels</em> ou Ctrl+L) quanto as <strong>Curvas</strong> (menu <em>Image &gt; Adjustments &gt; Curves</em> ou Ctrl+M) do Photoshop têm em comum o ajuste dos pontos de branco, preto e meio tom (entre outros tantos controles) e ambos exibem o <a
rel="nofollow" href="http://www.cambridgeincolour.com/pt/tutoriais/histogramas1.htm" target="_blank">Histograma</a> da imagem para controle. Para tratamento de imagem eu particularmente gosto de mexer pelas Curvas, sinto mais flexibilidade, mas é gosto pessoal.</p><p><img
class="alignleft size-full wp-image-102" src="http://edsonjunior.com/wp-content/uploads/conta-gotas.png" alt="os três conta-gotas dos pontos de branco, preto e meio-tom presentes nas janelas CURVES e LEVELS para tratamento de imagem no Photoshop" width="78" height="22" />Pois bem, repare nos conta-gotas, presente em ambas as janelas. São as <em>target colors</em> (cores alvo). É através deles que vamos determinar os 3 pontos-chave já mencionados. O mais claro (da direita) aplica um valor de branco ao local da imagem que você apontar; o mais escuro (da esquerda) aplica um valor de preto. O do meio, bom, o do meio deixa tudo verde. Brincadeira! <img
src='http://edsonjunior.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /></p><p>Clique duas vezes sobre o conta-gotas da direita. A janela de configuração da cor-alvo aparece.</p><p><img
class="aligncenter size-full wp-image-103" src="http://edsonjunior.com/wp-content/uploads/targetcolor.png" alt="janela contendo todos os modos de cor com campos para configuração de um valor, nesse caso, um valor para o ponto de branco" width="556" height="375" /></p><p>Devido a minha &#8220;formação&#8221; em <strong>tratamento de imagem</strong> para mídia impressa, acostumei a configurar os valores das cores-alvo pelo painel do modo de cor CMYK (em destaque a direita na figura). Mas isso é relativo. Note que <strong>para o modo CMYK (cores de pigmento), o branco puro se dá pela subtração das 4 cores</strong>, ou seja, zero de ciano, de magenta, de amarelo e de preto resulta em ausência de cor: branco. Já <strong>para o modo RGB (cores de luz) é o inverso, a soma do vermelho, verde e azul resulta em branco puro</strong>.</p><h2>Temperatura da imagem</h2><p>Mas, e aí? Deixamos no branco puro? Se esse for o intuito, marcar uma área da imagem que seja realmente branco &#8220;chapado&#8221;, a resposta é sim. Mas se sua imagem não tiver esse tipo de área o ideal é deixarmos um pequeno valor. Algo em torno de -4% no RGB <strong>ou</strong> +3% no CMYK.</p><p><img
class="alignleft size-full wp-image-104" src="http://edsonjunior.com/wp-content/uploads/quente.jpg" alt="escala cromática avermelhada mostrando uma temperatura quente para o valor de branco definido" width="128" height="128" />Como falei, acho mais fácil mexer no modo CMYK. Se configurarmos o branco nesse modelo, com +3%, teremos <strong>3-3-3-0</strong> (importante: deixe o canal K – preto – sempre em 0 para ponto de branco e meio-tom). Perceba como o degradé da escala cromática no grande box à esquerda desses campos fica avermelhado. Acabamos de configurar um <strong>ponto de branco quente</strong>.</p><p>Experimente configurar o ponto de branco em <strong>3-2-2-0</strong> e teremos um <strong>ponto de branco frio</strong>.</p><p>Clique em Ok.</p><p>Agora, com o conta-gotas do branco selecionado, clique em um ponto da sua imagem que seja branco (essa ação é tão subjetiva quanto técnica, e só a tentativa e erro vai poder te ensinar o melhor acerto). Clicou numa área que não era tão branca? Não faz mal. Clique em outra, e outra. Até que você encontre o verdadeiro ponto de branco, ou o mais próximo (isso não deve levar mais que uns 5 segundos!). Se em vez de ficar clicando até achar o ponto correto você quiser &#8220;zerar&#8221; as curvas, segure Alt e depois clique em Reset. As curvas voltam ao seu estado inicial e você precisará clicar (uma vez só) no conta-gotas branco para escolher um novo ponto na imagem.</p><p>Ponto de branco definido? Não feche a janela <em>Curves</em> (ou <em>Levels</em>) ainda! Vamos para o próximo. Clique duas vezes sobre o conta-gotas do meio. A mesma janela de configuração da cor-alvo aparece.</p><p>Meio tom quente: <strong>45-45-45-0</strong></p><p>Meio tom frio: <strong>55-45-45-0</strong></p><p>Clique em Ok.</p><p>Com o conta-gotas selecionado, clique em um ponto da imagem que seja cinza ou o mais neutro que encontrar. Clicou numa área nada a ver? Clique em outra. Assim como fez da primeira vez. Precisa &#8220;zerar&#8221; a escolha pra recomeçar? Bom, agora fica um pouco mais complicado porque você já definiu o ponto de branco. Se <em>resetar</em> nesse momento vai zerar toda a curva, inclusive o ponto de branco.</p><p><img
class="aligncenter size-full wp-image-106" src="http://edsonjunior.com/wp-content/uploads/meio-tom1.jpg" alt="imagem de uma ave cuja foto original (a esquerda) apresenta um tom azulado e a foto a direita apresenta a mesma ave com um meio-tom mais neutro, sem perder as características da imagem como um todo" width="617" height="288" /></p><p>Até aí tudo bem. Como saber se o meio-tom escolhido é o correto? Só depende de você. Se a imagem não puxou pra nenhum tom (azulado, esverdeado, amarelado) e ficou neutra, está ótimo. A imagem acima teve somente o meio-tom corrigido.</p><p>Sendo assim, vamos para a última etapa. Clique duas vezes sobre o conta-gotas da esquerda. Agora, a definição do preto em quente ou frio não interfere tanto na imagem e você pode configurá-lo em <strong>96-92-92-80</strong> (opa! Definimos um valor para o canal de preto!)</p><p>Você pode estar se perguntando: &#8220;Por que esses valores?&#8221; &#8211; Olha, estou tentando ser metódico sem ser técnico. Procure entender que esses valores também carregam uma dose de subjetividade. <strong>Tratamento de imagem</strong> é subjetividade baseada nas mais variadas técnicas. Cada um tem seu estilo próprio.</p><p>Clique em Ok e, com o conta-gotas do preto selecionado clique no ponto mais escuro da imagem. Como ficou o aspecto geral da imagem? Já deu uma melhorada? Clique no checkbox de Preview para ver o antes e depois da aplicação e compare. Está tudo certo? Se sim, clique em Ok e encerramos essa parte com as <em>Curvas</em> (ou <em>Levels</em>). Se não, faça um ajuste fino na curva ou tente outros valores. Veja também se você não se enganou ao interpretar a temperatura da imagem. O que você pensou que pudesse ser frio na verdade ficaria melhor se fosse quente.</p><p>Por exemplo, um prato de salada pode ter todo o aspecto frio pela predominância de folhas verdes ou por ser um prato servido frio. Questão de coerência. Mas, acredite, tratá-lo como quente <span
style="text-decoration: line-through;">pode</span> vai fazer toda a diferença. Na verdade, na maioria das vezes, tratar uma imagem como quente surte um resultado melhor, mais agradável. Exceto, claro, quando a foto for de um dia nublado, chuvoso, neve, etc.</p><p>Sugiro você aplicar esses conceitos de pontos de branco, preto e meio-tom e temperatura de cor em suas fotos antes de passarmos para a parte 2 deste artigo, onde falo de contraste, saturação e HDR (<em>High Dinamic Range</em> ou Grande Alcance Dinâmico).</p><p>Dúvidas? Comente!</p><div
class="plus-one-wrap"><g:plusone href="http://edsonjunior.com/photoshop-tratamento-imagem-1/"></g:plusone></div><img src="http://feeds.feedburner.com/~r/EdsonJr/~4/gJCYz87fPiY" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://edsonjunior.com/photoshop-tratamento-imagem-1/feed/</wfw:commentRss> <slash:comments>21</slash:comments> <feedburner:origLink>http://edsonjunior.com/photoshop-tratamento-imagem-1/</feedburner:origLink></item> <item><title>Photoshop: Criando uma textura de background para seu site</title><link>http://feedproxy.google.com/~r/EdsonJr/~3/hmNYc_Vdyu4/</link> <comments>http://edsonjunior.com/photoshop-textura-background/#comments</comments> <pubDate>Tue, 20 Apr 2010 06:30:38 +0000</pubDate> <dc:creator>ed1nh0</dc:creator> <category><![CDATA[Photoshop]]></category> <category><![CDATA[background]]></category> <category><![CDATA[offset]]></category> <category><![CDATA[pattern]]></category> <category><![CDATA[textura]]></category> <guid isPermaLink="false">http://edsonjunior.com/?p=80</guid> <description><![CDATA[Você encontrou &#8220;aquela&#8221; textura pela internet e deseja usá-la como background no seu site. Mas a imagem não é grande o suficiente para cobrir a tela toda. Ao perceber que quando a textura se multiplica pela página (formando um pattern), as bordas dessa imagem ficam visíveis &#8220;quebrando&#8221; a homogeneidade da textura. Tomemos o exemplo abaixo <a
href="http://edsonjunior.com/photoshop-textura-background/" class="more-link">Mais &#62;</a>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/2XnzqvMxyFU_SGqRxCdYsah6qDs/0/da"><img src="http://feedads.g.doubleclick.net/~a/2XnzqvMxyFU_SGqRxCdYsah6qDs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2XnzqvMxyFU_SGqRxCdYsah6qDs/1/da"><img src="http://feedads.g.doubleclick.net/~a/2XnzqvMxyFU_SGqRxCdYsah6qDs/1/di" border="0" ismap="true"></img></a></p><p>Você encontrou &#8220;aquela&#8221; textura pela internet e deseja usá-la como background no seu site. Mas a imagem não é grande o suficiente para cobrir a tela toda. Ao perceber que quando a textura se multiplica pela página (formando um <em>pattern</em>), as bordas dessa imagem ficam visíveis &#8220;quebrando&#8221; a homogeneidade da textura.</p><p>Tomemos o exemplo abaixo (clique na imagem para ampliar).</p><p><a
href="http://edsonjunior.com/wp-content/uploads/textura_huge.jpg"><img
class="aligncenter size-medium wp-image-83" title="clique na imagem para ampliar" src="http://edsonjunior.com/wp-content/uploads/textura_huge-300x236.jpg" alt="textura original com vigas de madeira horizontais" width="300" height="236" /></a></p><p><span
id="more-80"></span></p><p>Ao multiplicar a imagem pelo eixo X vemos que as vigas de madeira não se &#8220;encaixam&#8221; horizontalmente.</p><p><img
class="aligncenter size-full wp-image-87" src="http://edsonjunior.com/wp-content/uploads/textura_ruim1.jpg" alt="exemplo de aplicação da textura quando colocada uma ao lado da outra, o resultado apresenta arestas que descontinuam a linearidade" width="600" height="158" /></p><p>Você descarta essa textura e parte pra outra? Melhor não!</p><p>Saiba que o Photoshop tem um filtro chamado <strong>Offset</strong> que pode resolver essa questão. Eu, particularmente, confesso que nunca tinha encontrado uma aplicação pra ele (e olha que existem várias) até que comecei a mexer com webdesign.</p><p>Além do filtro Offset você vai precisar da ferramenta <em>Rubber Stamp</em> (aquela de clonagem) e isso pode requerer um pouco de prática.</p><h2>Preparação</h2><p>Abra no Photoshop a textura que você quer trabalhar e veja suas dimensões (largura e altura) no menu <strong>Image &gt; Image Size</strong>. Memorize o valor da largura. Vamos precisar dele nesse exemplo prático.</p><p>Agora selecione o menu <strong>Filter &gt; Other &gt; Offset</strong>.</p><p><img
class="aligncenter size-full wp-image-82" src="http://edsonjunior.com/wp-content/uploads/offset.png" alt="caixa de diálogo do filtro Offset" width="308" height="230" /></p><p>No campo <strong>Horizontal</strong> coloque o valor da metade* da largura da sua imagem. Tanto faz ser positivo (para a direita) ou negativo (para a esquerda), não importa. E deixe selecionado a opção &#8220;Áreas indefinidas&#8221; marcada como <em>Wrap Around</em>.</p><p>Isso faz com que a metade da imagem seja deslocada dentro de sua própria área, exibindo sua outra parte do outro lado.</p><p><a
href="http://edsonjunior.com/wp-content/uploads/textura_huge_offset.jpg"><img
class="aligncenter size-medium wp-image-84" src="http://edsonjunior.com/wp-content/uploads/textura_huge_offset-300x236.jpg" alt="resultado da aplicação do filtro Offset com um valor horizontal igual à metade da largura da imagem" width="300" height="236" /></a></p><p>Essa é exatamente a &#8220;transição&#8221; que não queremos. E é aí que entra a ferramenta de clonagem (<em>Rubber Stamp</em>).</p><p><img
class="aligncenter size-full wp-image-88" src="http://edsonjunior.com/wp-content/uploads/tools.png" alt="ferramenta Clone (Rubber Stamp) no menu principal" width="44" height="150" /></p><h2>Retoque</h2><p>Comece a suavizar a aresta que apareceu no meio da imagem. Aconselho a usar a ferramenta de clonagem variando o diâmetro do pincel. Áreas de muitos detalhes use um pincel menor. Varie também sua opacidade, dependendo do caso uso entre 30~50%. (<strong>Dica:</strong> com a ferramenta selecionada &#8211; e somente com ela selecionada &#8211; tecle de 0 a 9 pra variar sua opacidade; sendo 0 para 100%, 1 para 10%, 2 para 20% e assim por diante. Teclando dois dígitos rapidamente você altera para números não rasos)</p><p><a
href="http://edsonjunior.com/wp-content/uploads/textura_huge_offset_retouch.jpg"><img
class="aligncenter size-medium wp-image-85" src="http://edsonjunior.com/wp-content/uploads/textura_huge_offset_retouch-300x236.jpg" alt="retocando a textura com a ferramenta Clone (Rubber Stamp) para suavizar a aresta de emenda" width="300" height="236" /></a></p><p>Aqui fiz movimentos mais lineares, acompanhando as frestas das vigas da madeira. Evite usar uma mesma referência (origem) para diferentes áreas do retoque (destino). Outra dica é começar pelas áreas mais lisas. Aquelas que você &#8220;completa&#8221; o retoque mais rapidamente. Isso acelera o trabalho (bom, pelo menos funciona comigo).</p><p>O resultado final fica muito parecido com o original, pois sem a aresta e sem alguns elementos de repetição que sempre aparecem em retoques desse tipo fica difícil perceber o antes e depois.</p><p><a
href="http://edsonjunior.com/wp-content/uploads/textura_huge_offset_retouched.jpg"><img
class="aligncenter size-medium wp-image-86" src="http://edsonjunior.com/wp-content/uploads/textura_huge_offset_retouched-300x236.jpg" alt="textura final retocada, a aresta ao centro não mais aparece e as vigas da madeira agora têm continuidade no eixo horizontal" width="300" height="236" /></a></p><p>Tudo bem que pode ter uma falhazinha ou outra. Nada impede de retocarmos até que fique <span
style="text-decoration: line-through;">quase</span> perfeito. E lembre-se que talvez o conteúdo do seu site pode sobrepor grande parte da textura.</p><p>Mesmo comparando o original e o retocado, a diferença não é tão perceptível.</p><p><a
href="http://edsonjunior.com/wp-content/uploads/wood_texture_comparat.jpg"><img
class="aligncenter size-medium wp-image-89" src="http://edsonjunior.com/wp-content/uploads/wood_texture_comparat-300x116.jpg" alt="comparativo lado a lado da textura original e a retocada" width="300" height="116" /></a></p><h2>O resultado</h2><p><img
class="aligncenter size-full wp-image-92" src="http://edsonjunior.com/wp-content/uploads/textura.jpg" alt="exemplo de aplicação da textura final retocada, agora não se vê emendas entre as imagens quando colocadas uma ao lado da outra" width="600" height="158" /></p><p>O filtro Offset é o pai desse retoque e você pode voltar a textura a sua &#8220;posição original&#8221; reaplicando o filtro com o mesmo valor (caso você tenha seguido minha orientação de usar a metade da largura). Ou fazer todo esse procedimento também pro eixo Y. Se for esse o caso, aplique o filtro Offset simultaneamente na horizontal e vertical e retoque as arestas em &#8220;cruz&#8221; que se formaram. Evite retocar um eixo por vez para um não interferir no outro.</p><p>Se tiver qualquer dúvida, comente! Ou <a
href="http://edsonjunior.com/contato/" target="_self">entre em contato</a>.</p><div
class="plus-one-wrap"><g:plusone href="http://edsonjunior.com/photoshop-textura-background/"></g:plusone></div><img src="http://feeds.feedburner.com/~r/EdsonJr/~4/hmNYc_Vdyu4" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://edsonjunior.com/photoshop-textura-background/feed/</wfw:commentRss> <slash:comments>8</slash:comments> <feedburner:origLink>http://edsonjunior.com/photoshop-textura-background/</feedburner:origLink></item> <item><title>Lista de itens contornando imagem</title><link>http://feedproxy.google.com/~r/EdsonJr/~3/QFQIJtD_OsE/</link> <comments>http://edsonjunior.com/lista-de-itens-contornando-imagem/#comments</comments> <pubDate>Thu, 15 Apr 2010 03:32:51 +0000</pubDate> <dc:creator>ed1nh0</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[lista]]></category> <category><![CDATA[ul]]></category> <guid isPermaLink="false">http://edsonjunior.com/?p=73</guid> <description><![CDATA[Já tentou fazer uma lista de itens (&#60;ul&#62;) contornar uma imagem? Simples. Um float:left (ou right) na própria imagem resolve de imediato. E se os itens da lista (&#60;li&#62;) forem estilizados com alguma imagem de fundo, já viu o que acontece? As setinhas não contornam a imagem e ainda ficam por trás dela. Enquanto background <a
href="http://edsonjunior.com/lista-de-itens-contornando-imagem/" class="more-link">Mais &#62;</a>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/NBc0t0ezKzyHjEVcRtyWpiCrsWI/0/da"><img src="http://feedads.g.doubleclick.net/~a/NBc0t0ezKzyHjEVcRtyWpiCrsWI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/NBc0t0ezKzyHjEVcRtyWpiCrsWI/1/da"><img src="http://feedads.g.doubleclick.net/~a/NBc0t0ezKzyHjEVcRtyWpiCrsWI/1/di" border="0" ismap="true"></img></a></p><p>Já tentou fazer uma lista de itens (<code>&lt;ul&gt;</code>) contornar uma imagem? Simples. Um <code>float:left</code> (ou <code>right</code>) na própria imagem resolve de imediato.</p><p><img
class="aligncenter size-full wp-image-75" src="http://edsonjunior.com/wp-content/uploads/011.png" alt="lista de itens com list-style-type:square; contornando a imagem corretamente" width="569" height="240" /></p><p>E se os itens da lista (<code>&lt;li&gt;</code>) forem estilizados com alguma imagem de fundo, já viu o que acontece?</p><p><span
id="more-73"></span></p><p><img
class="aligncenter size-full wp-image-76" src="http://edsonjunior.com/wp-content/uploads/02.png" alt="lista de itens com background aplicado nos itens fica incorreta pois a imagem não contorna a imagem e ainda fica por trás dela" width="555" height="250" /></p><p>As setinhas não contornam a imagem e ainda ficam por trás dela.</p><p>Enquanto <code>background</code> você pode posicionar uma imagem em qualquer lugar de uma área com largura e altura fixas. Num exemplo mais limitado, pra não citar valores relativos (%), você pode posicioná-la ao centro, no topo, embaixo, à esquerda, à direita ou em um dos quatro cantos dessa área. São 9 posições. Porém, no caso de itens de lista, que são elementos <a
title="Entenda as diferenças entre elementos inline e de bloco" href="http://www.cssnolanche.com.br/diferenca-entre-elementos-inline-e-de-bloco-em-html/" target="_blank">em nível de linha</a>, você tem apenas 3: <strong>esquerda</strong>, <strong>centro</strong> ou <strong>direita</strong> (lembrando que não estou citando valores relativos).</p><p>Por padrão, um sinalizador de item (no caso a setinha vermelha) deve estar alinhado à esquerda. E como a imagem da onda tem um float – &#8220;sai&#8221; do fluxo normal da página – o normal é que objetos &#8220;ocupem&#8221; o espaço antes preenchido pela imagem até que suas margens (da imagem e do texto) se toquem. Afinal, dois objetos, mesmo que flutuantes não podem ocupar o mesmo espaço ao mesmo tempo. Por isso o texto contorna a imagem e a setinha (que é uma imagem de fundo), não.</p><p>O que fazer? A menos que você possa abrir mão de usar imagens estilizadas para seus itens de lista, uma solução que encontrei foi aplicar <code>display</code>, <code>float</code> e <code>margem</code> à lista, além de um <code>clear</code> ao primeiro elemento após a lista. O resultado é bastante satisfatório pra mim e você confere na página de exemplo que criei para este &#8220;problema&#8221;.</p><div
style="text-align: center; margin: 40px 0;"><a
title="veja exemplo" href="http://edsonjunior.com/exemplos/css/lista-de-itens-contornando-imagem/"><img
class="size-full wp-image-33" src="http://edsonjunior.com/wp-content/uploads/bt_exemplo.png" alt="" width="118" height="34" /></a> <a
title="download .ZIP" href="http://edsonjunior.com/exemplos/css/lista-de-itens-contornando-imagem/lista-de-itens-contornando-imagem.zip"><img
class="size-full wp-image-34" src="http://edsonjunior.com/wp-content/uploads/bt_download.png" alt="download" width="106" height="34" /></a></div><p>Conhece alguma outra solução? Sugestões que não sejam adicionar marcações extras ao código HTML são bem-vindas. Comente!</p><div
class="plus-one-wrap"><g:plusone href="http://edsonjunior.com/lista-de-itens-contornando-imagem/"></g:plusone></div><img src="http://feeds.feedburner.com/~r/EdsonJr/~4/QFQIJtD_OsE" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://edsonjunior.com/lista-de-itens-contornando-imagem/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://edsonjunior.com/lista-de-itens-contornando-imagem/</feedburner:origLink></item> <item><title>Salvando favicons direto do Photoshop</title><link>http://feedproxy.google.com/~r/EdsonJr/~3/6PTJ732dZa8/</link> <comments>http://edsonjunior.com/favicon-photoshop/#comments</comments> <pubDate>Tue, 13 Apr 2010 03:31:30 +0000</pubDate> <dc:creator>ed1nh0</dc:creator> <category><![CDATA[Photoshop]]></category> <category><![CDATA[favicon]]></category> <category><![CDATA[ico]]></category> <category><![CDATA[icone]]></category> <guid isPermaLink="false">http://edsonjunior.com/?p=68</guid> <description><![CDATA[Existem algumas dezenas de serviços online que podem tanto gerar quanto salvar uma imagem criada por você como favicon para seu site (alguns até hospedam o arquivo). Cito alguns que gosto de testar: Favicon.cc FavIcon from Pics Favicon Hosting and Icon Generator Criar ícones é uma arte, em inglês é chamada de iconart. Por se <a
href="http://edsonjunior.com/favicon-photoshop/" class="more-link">Mais &#62;</a>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/B2eT0p92WWS_WXOF4fnYJz4qvgo/0/da"><img src="http://feedads.g.doubleclick.net/~a/B2eT0p92WWS_WXOF4fnYJz4qvgo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/B2eT0p92WWS_WXOF4fnYJz4qvgo/1/da"><img src="http://feedads.g.doubleclick.net/~a/B2eT0p92WWS_WXOF4fnYJz4qvgo/1/di" border="0" ismap="true"></img></a></p><p>Existem algumas dezenas de serviços online que podem tanto gerar quanto salvar uma imagem criada por você como <abbr
title="favorite icon">favicon</abbr> para seu site (alguns até hospedam o arquivo).</p><p>Cito alguns que gosto de testar:</p><ul><li><a
href="http://www.favicon.cc/" target="_blank">Favicon.cc</a></li><li><a
href="http://www.chami.com/html-kit/services/favicon/" target="_blank">FavIcon from Pics</a></li><li><a
href="http://www.iconj.com/pic_to_icon_converter.php" target="_blank">Favicon Hosting and Icon Generator</a></li></ul><p><img
class="aligncenter size-full wp-image-69" src="http://edsonjunior.com/wp-content/uploads/favicon.png" alt="exemplo de favicon" width="350" height="133" /></p><p><span
id="more-68"></span></p><p>Criar ícones é uma arte, em inglês é chamada de <em>iconart</em>. Por se tratar especificamente de favicons, estamos falando de imagens com não mais que 16&#215;16 pixels, e representar uma marca ou uma ideia em uma área tão mínima é uma proeza e tanto. Veja que bacana essa <a
href="http://www.fineicons.com/en/favicon-gallery" target="_blank">coleção de favicons</a> da <em>Fineicons</em>.</p><p>Bom, se você quiser gerar seus favicons diretamente do Photoshop, baixe este pequeno plugin <a
href="http://edsonjunior.com/exemplos/photoshop/favicon-photoshop/ICOFormat.8bi">ICOFormat.8bi</a> para Windows (tem também a versão para Windows <a
href="http://edsonjunior.com/exemplos/photoshop/favicon-photoshop/ICOFormat64.8bi">64 bits</a>) e salve-o na pasta <code>C:\Program Files (x86)\Adobe\Adobe Photoshop CS4\Plug-ins\File Formats</code> (ou <code>C:\Program Files\Adobe\Adobe Photoshop CS4 (64 Bit)\Plug-ins\File Formats</code> para versão de 64 bits).</p><p>Abra o Photoshop e crie um arquivo novo com 16&#215;16 pixels. Seu favicon não precisa ter necessariamente fundo branco. Dependendo do caso um fundo transparente cai bem.</p><p><img
class="aligncenter size-full wp-image-71" src="http://edsonjunior.com/wp-content/uploads/novoarquivo.png" alt="caixa de diálogo de um novo arquivo destacando os campos largura, altura, resolução e tipo de background" width="551" height="338" /></p><p>Crie seu <em>iconart</em> e salve o arquivo no formato .ICO</p><p><img
class="aligncenter size-full wp-image-70" src="http://edsonjunior.com/wp-content/uploads/salvando.png" alt="menu dropdown contendo as extensões de arquivo, com destaque para o formato .ICO" width="356" height="309" /></p><p>Feito isso, falta inseri-lo no código HTML.</p><p>Entre as tags <code>&lt;head&gt;&lt;/head&gt;</code> das páginas que você deseja que ele seja exibido insira a seguinte linha de código:</p><pre>&lt;link rel="shortcut icon" href="http://www.seusite.com.br/imagens/favicon.ico" /&gt;</pre><div
class="plus-one-wrap"><g:plusone href="http://edsonjunior.com/favicon-photoshop/"></g:plusone></div><img src="http://feeds.feedburner.com/~r/EdsonJr/~4/6PTJ732dZa8" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://edsonjunior.com/favicon-photoshop/feed/</wfw:commentRss> <slash:comments>6</slash:comments> <feedburner:origLink>http://edsonjunior.com/favicon-photoshop/</feedburner:origLink></item> <item><title>Lista de itens horizontal</title><link>http://feedproxy.google.com/~r/EdsonJr/~3/tDKmm8XNsuI/</link> <comments>http://edsonjunior.com/lista-de-itens-horizontal/#comments</comments> <pubDate>Mon, 12 Apr 2010 03:25:56 +0000</pubDate> <dc:creator>ed1nh0</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[lista]]></category> <category><![CDATA[ul]]></category> <guid isPermaLink="false">http://edsonjunior.com/?p=59</guid> <description><![CDATA[Criar uma lista de itens é simples. &#60;ul&#62;   &#60;li&#62;Box 1&#60;/li&#62;   &#60;li&#62;Box 2&#60;/li&#62; &#60;li&#62;Box 3&#60;/li&#62; &#60;/ul&#62; Para que os itens fiquem na horizontal você pode usar display:inline; ou float:left; nos itens e tudo certo. Neste exemplo vou expôr um problema que me ocorreu há algum tempo: Um destaque de notícias de 3 em 3 <a
href="http://edsonjunior.com/lista-de-itens-horizontal/" class="more-link">Mais &#62;</a>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/_qf4r6cAUcRfjAI0rxOn_m0AjUU/0/da"><img src="http://feedads.g.doubleclick.net/~a/_qf4r6cAUcRfjAI0rxOn_m0AjUU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_qf4r6cAUcRfjAI0rxOn_m0AjUU/1/da"><img src="http://feedads.g.doubleclick.net/~a/_qf4r6cAUcRfjAI0rxOn_m0AjUU/1/di" border="0" ismap="true"></img></a></p><p>Criar uma lista de itens é simples.</p><pre>&lt;ul&gt;
  &lt;li&gt;Box 1&lt;/li&gt;
  &lt;li&gt;Box 2&lt;/li&gt;
  &lt;li&gt;Box 3&lt;/li&gt;
&lt;/ul&gt;</pre><p>Para que os itens fiquem na horizontal você pode usar <code>display:inline;</code> ou <code>float:left;</code> nos itens e tudo certo.</p><p>Neste exemplo vou expôr um problema que me ocorreu há algum tempo: Um destaque de notícias de 3 em 3 em blocos em linha, com largura e altura fixa.</p><p><img
class="aligncenter size-full wp-image-62" src="http://edsonjunior.com/wp-content/uploads/li11.png" alt="lista de itens contendo 3 box com largura e altura definidos e em linha" width="330" height="70" /></p><p><span
id="more-59"></span></p><p>Aplico uma <code>margin-right</code> pra dar um respiro e o que acontece?</p><p><img
class="aligncenter size-full wp-image-64" src="http://edsonjunior.com/wp-content/uploads/li22.png" alt="lista de itens com os mesmos 3 box mas com margin-right aplicada, causando quebra na linha, jogando o 3º box para baixo" width="330" height="120" /></p><p>O que fazer pra impedir a quebra de linha indesejada? Aplicar uma largura fixa na lista para que ela comporte também as margens de seus elementos resolve parte do problema. Por exemplo, se cada item da lista tem 200px de largura com uma margem direita de respiro de 10px, minha lista deve ter 630px de largura. Então é só aplicar um <code>overflow:hidden;</code> no elemento pai da lista.</p><p><img
class="aligncenter size-full wp-image-65" src="http://edsonjunior.com/wp-content/uploads/li3.png" alt="lista de itens com os 3 box novamente em linha, sendo que a margem direita do 3º item excede o limite horizontal da lista pois seu elemento pai contém o parâmetro overflow:hidden" width="330" height="70" /></p><p>E pra garantir um resultado ideal, uma <code>margin-bottom</code> também foi adicionada.</p><p><img
class="aligncenter size-full wp-image-66" src="http://edsonjunior.com/wp-content/uploads/li4.png" alt="lista de itens com mais de 3 box em linhas de 3 colunas para mostrar o respiro com margin-right e bottom" width="330" height="125" /></p><div
style="text-align: center; margin: 40px 0;"><a
title="veja exemplo" href="http://edsonjunior.com/exemplos/css/ul-horizontal/"><img
class="size-full wp-image-33" src="http://edsonjunior.com/wp-content/uploads/bt_exemplo.png" alt="exemplo" width="118" height="34" /></a></div><p>É um problema simples, que poderia ser resolvido de outras formas, mas evita que classes extras sejam inseridas no <abbr
title="Cascading Style Sheets">CSS</abbr>.</p><div
class="plus-one-wrap"><g:plusone href="http://edsonjunior.com/lista-de-itens-horizontal/"></g:plusone></div><img src="http://feeds.feedburner.com/~r/EdsonJr/~4/tDKmm8XNsuI" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://edsonjunior.com/lista-de-itens-horizontal/feed/</wfw:commentRss> <slash:comments>7</slash:comments> <feedburner:origLink>http://edsonjunior.com/lista-de-itens-horizontal/</feedburner:origLink></item> <item><title>Borda arredondada com Javascript</title><link>http://feedproxy.google.com/~r/EdsonJr/~3/9-CL5PNwYSA/</link> <comments>http://edsonjunior.com/javascript-rounded-corners/#comments</comments> <pubDate>Fri, 09 Apr 2010 19:50:27 +0000</pubDate> <dc:creator>ed1nh0</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[borda]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[rounded]]></category> <guid isPermaLink="false">http://edsonjunior.com/?p=56</guid> <description><![CDATA[Borda arredondada (rounded corner) ou border-radius em CSS é uma técnica amplamente utilizada em sites. Mas devido a velha ladainha de ter que fazer &#8220;funcionar&#8221; no IE, vez ou outra temos que recorrer a soluções alternativas. E, sempre que busco (falo por mim) uma solução de implementação para isso, sei que não vai ser possível <a
href="http://edsonjunior.com/javascript-rounded-corners/" class="more-link">Mais &#62;</a>]]></description> <content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/VwDcKJMkBdSpUCDHsGBzGzSx9hQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/VwDcKJMkBdSpUCDHsGBzGzSx9hQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VwDcKJMkBdSpUCDHsGBzGzSx9hQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/VwDcKJMkBdSpUCDHsGBzGzSx9hQ/1/di" border="0" ismap="true"></img></a></p><p>Borda arredondada (<em>rounded corner</em>) ou <code>border-radius</code> em <abbr
title="Cascading Style Sheets">CSS</abbr> é uma técnica amplamente utilizada em sites. Mas devido a velha ladainha de ter que fazer &#8220;funcionar&#8221; no <abbr
title="Internet Explorer">IE</abbr>, vez ou outra temos que recorrer a soluções alternativas. E, sempre que busco (falo por mim) uma solução de implementação para isso, sei que não vai ser possível de usá-la devido às limitações do IE. Ainda assim me faço essas três perguntas:</p><ol><li>Dá pra implementar usando somente CSS e algumas poucas imagens ou é necessário Javascript?</li><li>Se for por CSS+imagens, funciona direitinho no IE?</li><li>Se for por Javascript, qual o resultado quando eu o desabilito?</li></ol><p>Sem fazer qualquer menção ao CSS3 e seja qual for o método de implementação, sempre coloco o conceito de <a
title="Graceful Degradation" href="http://en.wikipedia.org/wiki/Graceful_degradation" target="_blank"><em>Graceful Degradation</em></a> em primeiro lugar nessas situações. Ou seja, se sem a borda arredondada meu layout não perder muito em detalhes, ótimo. Caso contrário tenho que repensar o projeto.</p><p><span
id="more-56"></span></p><p>Voltando à solução, de todas as que já encontrei na internet, essa é de longe a mais prática, rápida e leve de implementar. Além de, claro, funcionar em todos os browsers (conheça as limitações mais abaixo).</p><p><a
href="http://www.dillerdesign.com/" target="_blank">Drew Diller</a> criou uma biblioteca javascript chamada <strong>DD_roundies</strong> voltada exclusivamente para o IE que é uma mão-na-roda. Sua solução pode não agradar a todos justamente por ser em javascript, mas, como eu disse, é muito fácil de implementar. E, se você não quiser usar hacks proprietários (<code>-moz-border-radius</code>, <code>-webkit-border-radius</code> e outros) pode usar essa solução também para todos os outros browsers, livrando seu código CSS dos <em>validators</em>.</p><h2>Solução</h2><p>Baixe uma cópia do <a
href="http://edsonjunior.com/exemplos/css/rounded_corners/DD_roundies.zip">DD_roundies</a> (este é um arquivo zipado contendo as versões <em><a
title="Aproximadamente 9Kb" href="http://edsonjunior.com/exemplos/css/rounded_corners/DD_roundies_0.0.2a-min.js">compressed</a></em> e <em><a
title="Aproximadamente 17Kb" href="http://edsonjunior.com/exemplos/css/rounded_corners/DD_roundies_0.0.2a.js">uncompressed</a></em>), e adicione as linhas abaixo no cabeçalho de sua página HTML:</p><pre>&lt;script type="text/javascript" src="DD_roundies.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
    <span>//somente para o IE</span>
    DD_roundies.addRule('.borda', '10px');
    <span>//variando os raios, somente para o IE</span>
    DD_roundies.addRule('.outraborda', '10px 5px 3px');
    <span>//true (sem aspas) = IE + todos os outros browsers</span>
    DD_roundies.addRule('.bordamenor, img, input, span', '5px', true);
&lt;/script&gt;</pre><p>Até 3 argumentos separados por vírgula podem ser declarados:</p><ul><li>Uma string representando o(s) seletor(es) CSS (obrigatório);</li><li>Uma string representando o(s) raio(s) da borda (obrigatório);</li><li>Um atributo <em>booleano</em> (<code>true</code>/<code>false</code>) indicando se será aplicado só para IE (<em>false</em>, por padrão) ou para todos os browsers (<em>true</em>) (opcional).</li></ul><p><img
class="alignright size-full wp-image-57" src="http://edsonjunior.com/wp-content/uploads/bordas.png" alt="exemplos de bordas arredondadas exibindo os parâmetros para 1, 2, 3 ou 4 cantos" width="160" height="170" /></p><p>A exemplo da 2ª linha do script, onde mais de um raio de borda foi declarado, vale lembrar o seguinte:</p><ul><li>1 atributo configura todos os <span
style="color: #f00;">quatro cantos</span>;</li><li>2 atributos configuram os cantos <span
style="color: #f00;">superior-esquerdo/inferior-direito</span> e <span
style="color: #f60;">superior-direito/inferior-esquerdo</span>;</li><li>3 atributos configuram os cantos <span
style="color: #f00;">superior-esquerdo</span>, <span
style="color: #f60;">superior-direito/inferior-esquerdo</span> e <span
style="color: #0c0;">inferior-direito</span>;</li><li>4 atributos configuram os cantos <span
style="color: #f00;">superior-esquerdo</span>, <span
style="color: #f60;">superior-direito</span>, <span
style="color: #0c0;">inferior-direito</span> e <span
style="color: #c0c;">inferior-esquerdo</span>.﻿</li></ul><h2>Limitações</h2><ul><li>Não deve ser aplicado à tag <code>&lt;body&gt;</code></li><li>Evite também aplicar nas tags <code>&lt;table&gt;</code>, <code>&lt;tr&gt;</code>, <code>&lt;td&gt;</code>, <code>&lt;select&gt;</code>, <code>&lt;option&gt;</code> e <code>&lt;textarea&gt;</code></li><li>O script não aceita o parâmetro <code>background-position:fixed;</code></li><li>Elementos <code>&lt;img /&gt;</code> &#8220;fixos&#8221; devem assumir <code>visibility:hidden;</code> e, assim, se tornar não-clicável.</li><li><code>&lt;input type="image" /&gt;</code> também não suportam o script. Estes com imagens PNG devem assumir <code>visibility:hidden;</code></li><li>Nos browsers webkit (Safari e Chrome) a borda pode não arredondar caso o <code>border-radius</code> tiver valor maior que o valor de preenchimento (<em>padding</em>) do elemento.</li><li>O IE8 beta 2 fica extremamente lento e some com imagens de fundo (<em>background images</em>)</li></ul><h2>Browsers testados</h2><p>Segundo o <a
href="http://dillerdesign.com/experiment/DD_roundies/#supported_browsers" target="_blank">autor</a> essa solução foi testada nos <strong>IE6</strong> e <strong>IE7</strong>, <strong>Firefox 3.0.x</strong>, <strong>Safari 3.1.2</strong>, <strong>Chrome 1.0</strong> e já funciona no <strong>Opera 10.x</strong>. Já o <strong>IE8</strong> suporta parcialmente, além de ficar extremamente lento.</p><p
style="padding: 40px 0;">Para demonstração veja os <a
title="Demos" href="http://dillerdesign.com/experiment/DD_roundies/#examples" target="_blank">exemplos no site do autor</a>.</p><div
class="plus-one-wrap"><g:plusone href="http://edsonjunior.com/javascript-rounded-corners/"></g:plusone></div><img src="http://feeds.feedburner.com/~r/EdsonJr/~4/9-CL5PNwYSA" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://edsonjunior.com/javascript-rounded-corners/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://edsonjunior.com/javascript-rounded-corners/</feedburner:origLink></item> </channel> </rss>

