<?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>paitadesignblog &#187; JavaScript</title>
	<atom:link href="http://www.paitadesign.com/blog/category/webdesign/javascript-webdesign/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paitadesign.com/blog</link>
	<description>HTML, CSS e tutto il resto</description>
	<lastBuildDate>Thu, 06 Oct 2011 09:55:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Come velocizzare il caricamento di pagine web? Comprimere CSS e JavaScript!</title>
		<link>http://www.paitadesign.com/blog/come-velocizzare-il-caricamento-di-pagine-web-comprimere-css-e-javascript/</link>
		<comments>http://www.paitadesign.com/blog/come-velocizzare-il-caricamento-di-pagine-web-comprimere-css-e-javascript/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 20:37:06 +0000</pubDate>
		<dc:creator>Giacomo Paita</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[cariucamento]]></category>
		<category><![CDATA[compressor]]></category>
		<category><![CDATA[comprimere]]></category>
		<category><![CDATA[minify]]></category>
		<category><![CDATA[page-load]]></category>
		<category><![CDATA[velocizzare]]></category>

		<guid isPermaLink="false">http://www.paitadesign.com/blog/?p=882</guid>
		<description><![CDATA[


Articoli correlati:<ol><li><a href='http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/' rel='bookmark' title='Permanent Link: AI to Canvas: utilizzare subito HTML5 Canvas!'>AI to Canvas: utilizzare subito HTML5 Canvas!</a></li>
<li><a href='http://www.paitadesign.com/blog/css-pseudo-classi-ie6-come-usarle-cross-browser/' rel='bookmark' title='Permanent Link: CSS Pseudo-classi: come usarle su IE6+!'>CSS Pseudo-classi: come usarle su IE6+!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Da quando Google ha inserito tra i <strong>fattori di ranking</strong> il <a href="http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html" title="Using site speed in web search ranking" target="_blank">tempo di caricamento delle pagine web</a>, ogni webdesigner deve porre maggiore attenzione all&#8217;<em>ottimizzazione di tutte le risorse caricate</em>. <strong>Siti pi&ugrave; veloci</strong>, inoltre, non solo migliorano l&#8217;esperienza utente, ma  dati recenti mostrano che il miglioramento della velocit&agrave; del sito <strong>riduce i costi operativi</strong>. </p>
<p><span id="more-882"></span></p>
<p>Tra tutte le &quot;best practices&quot; per velocizzare il <a href="http://developer.yahoo.com/performance/rules.html" title="best practices for making web pages fast. " target="_blank">carimento di un sito</a>, rivolgiamo per prima cosa la nostra attenzione a i <em>file CSS e JavaScript</em>, e ai metodi per <strong>comprimere il codice</strong>. Molto spesso infatti, per i grandi progetti, i fogli di stile raggiungono un numero elevato di righe, e aumentano con il numero delle sezioni della pagina, sotto forma di file esterni richiamati con la regola <code>@import</code>. La stessa cosa avviene con i file JavaScript. Tralasciamo il discorso sul codice <acronym title="HyperText Markup Language">HTML</acronym>, perch&eacute; una sua compressione non apporterebbe significativi benefici. <br />
  Vediamo come ottimizzare il loro peso grazie a due ottimi strumenti online.</p>
<p><!--more--></p>
<h2>JavaScript: minimizzare e comprimere!</h2>
<p><a href="http://www.minifyjs.com/javascript-compressor/" title="Javascript-compressor" target="_blank">Minifyjs</a> &egrave; un ottimo <strong>compressore di codice JavaScript</strong>, la cui funzione &egrave; quella di   prendere il codice sorgente originale, eliminare tutti i caratteri non necessari (sopratutto glie spazi bianchi), e mantenere intatte le funzionalit&agrave; dello script.&nbsp; </p>
<p><a href="http://www.minifyjs.com/javascript-compressor/"><img src="http://www.paitadesign.com/blog/wp-content/uploads/img-post/Javascript-Compressor-JS-Compression-Tool.jpg" alt="Free Javascript Compressor and JS Compression Tool" title="Javascript Compressor: JS Compression Tool" width="510" height="267" class="alignnone size-full wp-image-898" /></a></p>
<h2>Riduciamo il peso dei CSS!</h2>
<p> <a href="http://iceyboard.no-ip.org/projects/css_compressor/combine"><img src="http://www.paitadesign.com/blog/wp-content/uploads/img-post/Robson-CSS-Compressor.jpg" alt="The CSS Compressor" title="Robson CSS Compressor" width="510" height="267" class="alignnone size-full wp-image-899" /></a></p>
<p> Questo <a title="Robson » CSS Compressor" href="http://iceyboard.no-ip.org/projects/css_compressor/combine" target="_blank">ottimo tool online</a>, nella sua cassetta degli attrezzi pu&ograve; vantare ottimi strumenti per <strong>eliminare parti superflue o ridondanti</strong>, rendendo quindi il caricamento di una pagina pi&ugrave; veloce. </p>
<h2>Opzioni di compressione</h2>
<p></p>
<h3>Colori</h3>
<ul>
<li>Converte i colori in esadecimale</li>
<li>Converte le propriet&agrave; esadecimali da lunghe in forma breve</li>
<li>Converte da esadecimale in forma lunga in nomi di colore</li>
<li>Converte da RGB in esadecimale</li>
</ul>
<h3>Misure</h3>
<ul>
<li>Rimuove le misure pari a zero</li>
</ul>
<h3>Regole</h3>
<ul>
<li>Combina regole identiche</li>
<li>Combina selettori identici</li>
<li>Combina le proprietà</li>
<li>Rimuove le proprietà sovrascritte</li>
</ul>
<h3>Propriet&agrave;</h3>
<ul>
<li>Rimuove i valori inutili da <code>margin</code> e <code>padding</code></li>
<li>Convertire in numeri le propriet&agrave; <code>text-weight</code></li>
</ul>
<h3>Opzioni di output</h3>
<ul>
<li>Mostra le statistiche</li>
<li>Produce un output a colori</li>
<li>Produce un file di output della dimensione più piccola</li>
</ul>
<div class="resources">
<h3>Letture consigliate</h3>
<p>  <a href="http://www.hongkiat.com/blog/ultimate-guide-to-web-optimization-tips-best-practices/" title="Web optimization is a vital part of web development and maintenance" target="_blank">Ultimate Guide To Web Optimization (Tips &#038; Best Practices)</a><br />
  <a href="http://blog.html.it/16/05/2007/le-14-regole-per-velocizzare-il-caricamento-delle-pagine/" title="14 regole da tenere a mente se si desidera ottimizzare la velocità di caricamento delle pagine">Le 14 regole per velocizzare il caricamento delle pagine</a> <br />
  <a href="http://blog.html.it/22/02/2010/sulluso-dei-compressori-di-codice-css-e-javascript/" target="_blank">Sull’uso dei compressori di codice CSS e Javascript</a> </div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.paitadesign.com/blog/come-velocizzare-il-caricamento-di-pagine-web-comprimere-css-e-javascript/&amp;t=Come+velocizzare+il+caricamento+di+pagine+web%3F+Comprimere+CSS+e+JavaScript%21+" rel="nofollow" class="external" title="Condividi su Facebook">Condividi su Facebook</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Come+velocizzare+il+caricamento+di+pagine+web%3F+Comprimere+CSS+e+JavaScript%21++-+http://b2l.me/a2nghc&amp;source=shareaholic" rel="nofollow" class="external" title="Tweetalo!">Tweetalo!</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.paitadesign.com/blog/come-velocizzare-il-caricamento-di-pagine-web-comprimere-css-e-javascript/&amp;title=Come+velocizzare+il+caricamento+di+pagine+web%3F+Comprimere+CSS+e+JavaScript%21+" rel="nofollow" class="external" title="Condividi su del.icio.us">Condividi su del.icio.us</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22Come%20velocizzare%20il%20caricamento%20di%20pagine%20web%3F%20Comprimere%20CSS%20e%20JavaScript%21%20%22&amp;body=Link: http://www.paitadesign.com/blog/come-velocizzare-il-caricamento-di-pagine-web-comprimere-css-e-javascript/ (inviato con shareaholic)%0D%0A%0D%0A----%0D%0A Velocizzare%20il%20caricamento%20di%20una%20pagina%20web%3F%20Ecco%20come%20fare%2C%20comprimendo%20i%20file%20CSS%20e%20JavaScript%20per%20ridurre%20drammaticamente%20il%20tempo%20di%20caricamento." rel="nofollow" class="external" title="Vuoi segnalarlo via mail ad un amico?">Vuoi segnalarlo via mail ad un amico?</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.paitadesign.com/blog/come-velocizzare-il-caricamento-di-pagine-web-comprimere-css-e-javascript/&amp;title=Come+velocizzare+il+caricamento+di+pagine+web%3F+Comprimere+CSS+e+JavaScript%21+&amp;summary=Velocizzare%20il%20caricamento%20di%20una%20pagina%20web%3F%20Ecco%20come%20fare%2C%20comprimendo%20i%20file%20CSS%20e%20JavaScript%20per%20ridurre%20drammaticamente%20il%20tempo%20di%20caricamento.&amp;source=paitadesignblog" rel="nofollow" class="external" title="Condividi su LinkedIn">Condividi su LinkedIn</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Come+velocizzare+il+caricamento+di+pagine+web%3F+Comprimere+CSS+e+JavaScript%21+&amp;body=Link: http://www.paitadesign.com/blog/come-velocizzare-il-caricamento-di-pagine-web-comprimere-css-e-javascript/ (inviato con shareaholic)%0D%0A%0D%0A----%0D%0A Velocizzare%20il%20caricamento%20di%20una%20pagina%20web%3F%20Ecco%20come%20fare%2C%20comprimendo%20i%20file%20CSS%20e%20JavaScript%20per%20ridurre%20drammaticamente%20il%20tempo%20di%20caricamento." rel="nofollow" class="external" title="Manda email con Gmail">Manda email con Gmail</a>
		</li>
		<li class="shr-comfeed">
			<a href="http://www.paitadesign.com/blog/come-velocizzare-il-caricamento-di-pagine-web-comprimere-css-e-javascript/feed" rel="nofollow" class="external" title="Vuoi iscriverti ai commenti per questo post?">Vuoi iscriverti ai commenti per questo post?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Articoli correlati:</p><ol><li><a href='http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/' rel='bookmark' title='Permanent Link: AI to Canvas: utilizzare subito HTML5 Canvas!'>AI to Canvas: utilizzare subito HTML5 Canvas!</a></li>
<li><a href='http://www.paitadesign.com/blog/css-pseudo-classi-ie6-come-usarle-cross-browser/' rel='bookmark' title='Permanent Link: CSS Pseudo-classi: come usarle su IE6+!'>CSS Pseudo-classi: come usarle su IE6+!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.paitadesign.com/blog/come-velocizzare-il-caricamento-di-pagine-web-comprimere-css-e-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AI to Canvas: utilizzare subito HTML5 Canvas!</title>
		<link>http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/</link>
		<comments>http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 09:25:44 +0000</pubDate>
		<dc:creator>Giacomo Paita</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.paitadesign.com/blog/?p=826</guid>
		<description><![CDATA[


Articoli correlati:<ol><li><a href='http://www.paitadesign.com/blog/html5-nuovi-tag-anteprima-delle-innovazioni/' rel='bookmark' title='Permanent Link: HTML5: tag nuovi e anteprima delle novità'>HTML5: tag nuovi e anteprima delle novità</a></li>
<li><a href='http://www.paitadesign.com/blog/html5-css3-website-templates-per-iniziare-a-progettare-il-web-di-domani/' rel='bookmark' title='Permanent Link: 10+ HTML5-CSS3 Website Template: per iniziare a progettare il web di domani!'>10+ HTML5-CSS3 Website Template: per iniziare a progettare il web di domani!</a></li>
<li><a href='http://www.paitadesign.com/blog/html5-tavola-degli-elementi-interattiva/' rel='bookmark' title='Permanent Link: HTML5: tavola degli elementi interattiva!'>HTML5: tavola degli elementi interattiva!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Usare da oggi il <strong>nuovo tag Canvas?</strong> MIX Online, un sito Web basato su tecnologia Microsoft, che parla di <strong>web design</strong> e <strong>sviluppo</strong>, ha da poco rilasciato una <em>versione gratuita di un plugin per Adobe Illustrator</em>, che permette di <strong>convertire qualsiasi file dal formato .AI nel nuovo tag <acronym title="HTML version 5">HTML5</acronym> <code>Canvas</code></strong>!</p>
<p><span id="more-826"></span></p>
<p><a href="http://www.visitmix.com/labs/ai2canvas/index.html" title="The Ai toCanvas plug-in enables Adobe Illustrator to export vector and bitmap artwork directly to an HTML5 canvas" target="_blank"><strong>AI&rArr;Canvas</strong> &egrave; un plug-in</a> che offre infatti le opzioni per il disegno, l&#8217;animazione e la codifica, come &quot;eventi&quot; JavaScript in modo da poter costruire <strong>applicazioni web interattive</strong> ben progettate basate sul tag <code>canvas</code>.<br />
  Lo scopo di Ai&rArr;Canvas &egrave; di accelerare lo sviluppo del tag <acronym title="HyperText Markup Language v5">HTML5</acronym> <code>canvas</code>: esso infatti, partendo da un file vettoriale, genera ed esporta codice <acronym title="HyperText Markup Language">HTML</acronym> e JavaScript che pu&ograve; essere  subito copiato nella propria applicazione ed <a href="http://www.visitmix.com/labs/ai2canvas/documentation.html#code" target="_blank">eventualmente ampliato</a> in un secondo momento. </p>
<div id="assetPanel"> <a class="assetCode" title="Scarica tutte le risorse per questo tutorial"href="http://www.paitadesign.com/examples/illustrator-to-canvas/risorse.zip" target="_blank">Risorse</a><a class="assetDemo" title="Visualizza il risultato finale" href="http://www.paitadesign.com/examples/illustrator-to-canvas/" target="_blank">Demo</a> </div>
<h2>Cominciamo a usare <acronym title="HyperText Markup Language v5">HTML5</acronym> Canvas</h2>
<p>Per <strong>installare Ai&rArr;Canvas</strong>, scaricare la versione adatta al prorio sistema operativo (per Windows o OS X), ed estrarre il file <strong>Ai2Canvas.aip</strong> nella cartella plug-in di Adobe Illustrator. Assicurarsi di riavviare Illustrator se &egrave; gi&agrave; in esecuzione. Una volta fatto questo, possiamo scaricare un <a href="http://www.vecteezy.com/Signs-Symbols/6090-Seextwood-design-elements" title="Vecteezy: Seextwood design elements" target="_blank">file illustrator di esempio</a>, e salvare ciascun elemento vettoriale in un livello separato. </p>
<p><strong>Canvas</strong> in inglese vuol dire <i>tela</i>, per incomincare fin da subito a &quot;dipingere&quot; e per testare fin da subito le potenzialit&agrave; del plugin, &egrave; sufficiente cambiare il nome di ciascun livello del file .AI come se fosse una funzione JavaScript, per esempio: &quot;<code>nomeElemento();</code>&quot;. Possiamo vedere fin da subito il risultato scegliendo <kbd>File / Esporta</kbd>, selezionare &quot; <kbd>&lt;canvas&gt;</kbd> &quot; come tipo di file, quindi fare clic su Salva per visualizzare il risultato nel browser.</p>
<h3>Animazioni e Canvas: ecco un semplice esempio</h3>
<p>Ogni livello di disegno all&#8217;interno del file .AI pu&ograve; essere ruotato, ridimensionato, e sbiadito, configurando le impostazioni di animazione. Le impostazioni di animazione controllano come le propriet&agrave; cambiano nel tempo, e ogni impostazione &egrave; dotata di otto possibili settaggi (si veda la <a href="http://www.visitmix.com/labs/ai2canvas/common/tutorials/ai2canvas.zip" title="AItoCanvas: Rotating, Scaling, and Fading" target="_blank">documentazione estesa</a> per ulteriori dettagli). Le impostazioni includono la direzione dell&#8217;animazione, la sua durata complessiva, invertire o no la direzione, una funzione di interpolazione, e un ritardo iniziale prima che l&#8217;animazione abbia inizio.</p>
<p><a target="_blank"  href="http://www.paitadesign.com/examples/illustrator-to-canvas/"><img src="http://www.paitadesign.com/blog/wp-content/uploads/img-post/immagine-ai-to-canvas-animation.gif" alt="Illustrator-to-canvas: html5 canvas animation" title="Ai to canvas: animazione di elementi vettoriali dentro il Canvas" width="520" height="267" class="alignnone size-full wp-image-863" /></a></p>
<p>Quando l&#8217;animazione riguarda una forma, &egrave; spesso utile  riposizionare il punto di origine (il luogo in cui gli assi X e Y si intersecano a 0, 0). Ai&rArr;Canvas rende facile spostare l&#8217;origine di ogni livello in modo che le animazioni siano esportate correttamente.</p>
<p>Per <a href="http://www.paitadesign.com/examples/illustrator-to-canvas/" target="_blank">esempio</a>, rinominiamo il livello <code>nomeElemento();</code> in <code>nomeElemento(origine: -1.5, 0.5);</code>. I due valori indicano uno spostamento  rispettivamente sull&#8217;<strong>asse orizzontale</strong> e su quella <strong>verticale</strong>: in particolare essi posizionano il punto di origine a una volta e mezzo l&#8217;intera larghezza dell&#8217;oggetto vettoriale verso sinistra  (al di fuori dei confini dell&#8217;oggetto, verso sinistra), in verticale a met&agrave; della sua altezza.<br />
  Per aggiungere una seconda propriet&agrave;, <strong>inserire un punto e virgola prima della nuova propriet&agrave;</strong> e il suo valore. Cambiare il nome del livello in <code>nomeElemento(origin: -1.5, 0.5; rotate-direction:cw);</code>, questa prpriet&agrave; imposta una rotazione all&#8217;animazione, che imprime all&#8217;oggetto un movimento in senso orario (&quot;CW significa <i>ClockWise</i>, senso orario; per imposare in senso antiorario scrivere AW, <i>AnticlockWise</i> &quot;).</p>
<h2>Come utilizzare il tag Canvas su Internet Explorer 6+?</h2>
<p>Ecco come essere sicuri che il tag <code>canvas</code>, ad oggi <a href="http://www.findmebyip.com/litmus" title="HTML CSS3 Properties: browser compare" target="_blank">non supportato da IE</a> precedenti alla versione 9, sia interpretato da tutte le versioni, dalla 6 alla 8. <br />
Ecco come procedere: per prima cosa, scarichiamo la <a href="http://code.google.com/p/explorercanvas/downloads/list">versione compatta di explorercanvas</a> e colleghiamola al file contenente il <code>canvas</code>, inserendo la chiamata alla libreria all&#8217;interno dei commenti condizionali per InternetExplorer, cos&igrave;:</p>
<pre name="codice" class="xhtml">&lt;!--[if IE]&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;cartellaScript/excanvas.compiled.js&quot;&gt;&lt;/script&gt;&lt;![endif]--&gt; 
</pre>
<p>Purtroppo per&ograve;, ExCanvas <strong>non permette a IE di vedere le animazioni</strong> costruite con <code>canvas</code>.</p>
<div class="resources">
<h3>Letture consigliate</h3>
<p>  <a class="hotLink" href="http://blog.artera.it/programmazione/html5-canvas-stile-e-colori" title="HTML5: Canvas stili e colori!" target="_blank">Html5: canvas con stile e colori</a><br />
  <a class="hotLink" href="http://www.williammalone.com/articles/html5-canvas-example/" title="HTML5 Canvas " target="_blank">HTML5 Canvas Example</a><br />
  <a href="http://blog.html.it/18/01/2010/disegnare-sulla-canvas/" title="HTML5: Disegnare sulla canvas" target="_blank">Disegnare sulla canvas</a><br />
  <a href="http://www.smashingmagazine.com/2010/04/12/the-gradual-disappearance-of-flash-websites/" title="HTML5 vs FLASH" target="_blank">The Gradual Disappearance Of Flash Websites</a><br />
  <a href="http://net.tutsplus.com/articles/web-roundups/21-ridiculously-impressive-html5-canvas-experiments/" title="HTML5 Canvas Experiments " target="_blank">21 Ridiculously Impressive <acronym title="HyperText Markup Language v5">HTML5</acronym> Canvas Experiments </a> <br />
  <a href="http://net.tutsplus.com/tutorials/javascript-ajax/fun-with-canvas-create-a-jquery-graph-plugin/ " title="jQuery and  Canvas: Plugin" target="_blank">Fun With Canvas: Create a Bar Graphing Plugin</a>
</div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/&amp;t=AI+to+Canvas%3A+utilizzare+subito+HTML5+Canvas%21" rel="nofollow" class="external" title="Condividi su Facebook">Condividi su Facebook</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=AI+to+Canvas%3A+utilizzare+subito+HTML5+Canvas%21+-+http://b2l.me/azm9fv&amp;source=shareaholic" rel="nofollow" class="external" title="Tweetalo!">Tweetalo!</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/&amp;title=AI+to+Canvas%3A+utilizzare+subito+HTML5+Canvas%21" rel="nofollow" class="external" title="Condividi su del.icio.us">Condividi su del.icio.us</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22AI%20to%20Canvas%3A%20utilizzare%20subito%20HTML5%20Canvas%21%22&amp;body=Link: http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/ (inviato con shareaholic)%0D%0A%0D%0A----%0D%0A Ecco%20come%20convertire%20qualsiasi%20file%20di%20Illustrator%20nel%20nuovo%20tag%20%26lt%3Bcanvas%26gt%3B%20di%20HTML5%20%28anche%20per%20IE6%2B%29%21" rel="nofollow" class="external" title="Vuoi segnalarlo via mail ad un amico?">Vuoi segnalarlo via mail ad un amico?</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/&amp;title=AI+to+Canvas%3A+utilizzare+subito+HTML5+Canvas%21&amp;summary=Ecco%20come%20convertire%20qualsiasi%20file%20di%20Illustrator%20nel%20nuovo%20tag%20%26lt%3Bcanvas%26gt%3B%20di%20HTML5%20%28anche%20per%20IE6%2B%29%21&amp;source=paitadesignblog" rel="nofollow" class="external" title="Condividi su LinkedIn">Condividi su LinkedIn</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=AI+to+Canvas%3A+utilizzare+subito+HTML5+Canvas%21&amp;body=Link: http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/ (inviato con shareaholic)%0D%0A%0D%0A----%0D%0A Ecco%20come%20convertire%20qualsiasi%20file%20di%20Illustrator%20nel%20nuovo%20tag%20%26lt%3Bcanvas%26gt%3B%20di%20HTML5%20%28anche%20per%20IE6%2B%29%21" rel="nofollow" class="external" title="Manda email con Gmail">Manda email con Gmail</a>
		</li>
		<li class="shr-comfeed">
			<a href="http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/feed" rel="nofollow" class="external" title="Vuoi iscriverti ai commenti per questo post?">Vuoi iscriverti ai commenti per questo post?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Articoli correlati:</p><ol><li><a href='http://www.paitadesign.com/blog/html5-nuovi-tag-anteprima-delle-innovazioni/' rel='bookmark' title='Permanent Link: HTML5: tag nuovi e anteprima delle novità'>HTML5: tag nuovi e anteprima delle novità</a></li>
<li><a href='http://www.paitadesign.com/blog/html5-css3-website-templates-per-iniziare-a-progettare-il-web-di-domani/' rel='bookmark' title='Permanent Link: 10+ HTML5-CSS3 Website Template: per iniziare a progettare il web di domani!'>10+ HTML5-CSS3 Website Template: per iniziare a progettare il web di domani!</a></li>
<li><a href='http://www.paitadesign.com/blog/html5-tavola-degli-elementi-interattiva/' rel='bookmark' title='Permanent Link: HTML5: tavola degli elementi interattiva!'>HTML5: tavola degli elementi interattiva!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery e Web Designer: 20+ consigli utili e trucchi per tutti i siti!</title>
		<link>http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/</link>
		<comments>http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/#comments</comments>
		<pubDate>Sun, 30 May 2010 14:51:25 +0000</pubDate>
		<dc:creator>Giacomo Paita</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[consigli]]></category>
		<category><![CDATA[tricks]]></category>
		<category><![CDATA[trucchi]]></category>

		<guid isPermaLink="false">http://www.paitadesign.com/blog/?p=554</guid>
		<description><![CDATA[


Articoli correlati:<ol><li><a href='http://www.paitadesign.com/blog/jquery-smooth-scroll-scorrimento-morbido/' rel='bookmark' title='Permanent Link: jQuery SmoothScroll: effetto scorrimento verticale morbido!'>jQuery SmoothScroll: effetto scorrimento verticale morbido!</a></li>
<li><a href='http://www.paitadesign.com/blog/jquery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/' rel='bookmark' title='Permanent Link: jQuery: imparare le basi con toggle. Mostra e nascondi con stile!'>jQuery: imparare le basi con toggle. Mostra e nascondi con stile!</a></li>
<li><a href='http://www.paitadesign.com/blog/css3-jquery-columns-layout-multi-colonne/' rel='bookmark' title='Permanent Link: CSS3 Columns e jQuery: layout multi-colonne ad altezza pari'>CSS3 Columns e jQuery: layout multi-colonne ad altezza pari</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong>jQuery</strong> si dimostra molto utile per per tutti gli <strong>sviluppatori e i web designer</strong> che vogliano dare maggiore <em>usabilità</em> e <em>flessibilità</em> a ogni progetto web che stanno seguendo. Questo framework si rivela straordinario sia per i progetti di grosse dimensioni, sia per i siti più modesti.</p>
<p><span id="more-554"></span></p>
<p>Di seguito sono riportati alcuni piccoli <strong>trucchi e consigli</strong> molto utili, raccolti da varie fonti in Internet, che permettono di migliorare l&#8217;interazione dell&#8217;utente e di risolvere alcune problematiche in modo <strong>semplice</strong> ed <strong>efficace</strong>, anche per i <em>webdesigner meno esperti</em> e gli <em>sviluppatori principianti</em>. Dal momento che questi esempi sono incentrati su jQuery, il codice proposto non entra nei dettagli dei <acronym title="Cascading Style Sheets">CSS</acronym>.</p>
<h2><acronym title="Cascading Style Sheets">CSS</acronym> diversi per browser diversi</h2>
<p>Ecco come dichiarare codice JavaScript per <a href="http://api.jquery.com/jQuery.browser/" target="_blank">browser specifici</a>:</p>
<pre name="codice" class="javascript">jQuery.each(jQuery.browser, function(i) {
   if($.browser.msie &amp;&amp; $.browser.version &lt;= 6 ){
     // fai questo e quello
   }
});
</pre>
<pre name="codice" class="javascript">//Target Safari
  if( $.browser.safari )
//Target IE6+
  if ($.browser.msie &amp;&amp; $.browser.version &gt; 6 )
//Target IE6 e precedenti
  if ($.browser.msie &amp;&amp; $.browser.version &lt;= 6 )
//Target Firefox 2 e successivi
  if ($.browser.mozilla &amp;&amp; $.browser.version &gt;= "1.8" )
</pre>
<h2>Disabilitare il tasto destro del mouse dal menu contestuale</h2>
<p>Ci sono molti frammenti JavaScript disponibili per disattivare il tasto destro del mouse dal menu contestuale, ma jQuery rende le cose molto più facili:</p>
<pre name="codice" class="javascript">$(document).bind("contextmenu",function(e){
	return false;
 });</pre>
<h2>Verifichiamo che un elemento esista in jQuery&#8230;</h2>
<pre name="codice" class="javascript">if ($('#id').length) {
 // fai questo e quello
 }</pre>
<h2>&#8230;per caricare un plugin solo quando serve!</h2>
<p>Quando il lavoro su un determinato sito cresce, gli <strong>script esterni iniziano ad accumularsi</strong> nella sezione <code>&lt;head&gt;</code> del documento, e alla fine ciò impatta sulle prestazioni.<br />
Grazie al metodo <code>$.getScript</code>, ecco una <a title="jQuery External JavaScript" href="http://www.kevinleary.net/external-javascript-on-demand-with-getscript/" target="_blank">soluzione elegante</a> a questo problema.</p>
<pre name="codice" class="javascript">if ($('a.email').length &gt; 0){
	$.getScript('js/jquery.mailto.js',function(){
		$('a.email').mailto();
	});
}</pre>
<h2>Eseguire solo ciò che serve veramente</h2>
<p>Ogni programmatore/webdesigner per comodità di solito scrive tutto il codice JS per il sito web in un unico file.<br />
jQuery però impiega tempo per cercare gli elementi nella pagina, anche se non esistono, e questo rallenta le cose. Ci sono due modi con cui è possibile aggirare questa situazione terribile. Quella più semplice è quello mettere un ID al  tag body (il nome della pagina, ad esempio) ed eseguire il codice necessario per quell&#8217;unica pagina:</p>
<pre name="codice" class="javascript">$(document).ready (function () {
	if ('body').hasClass ('home') {
  // codice per home page}else if ('body').hasClass ('blog') {
  // codice per la pagina blog
}
// e così via
});</pre>
<h2>Modalità non conflittuale</h2>
<p>Per evitare conflitti quando si utilizzano più framework in un sito web, è possibile utilizzare questo Metodo jQuery, e assegnare un nome diverso alla variabile invece che il segno di dollaro. Ecco tutte le informazioni per <a href="http://docs.jquery.com/Using_jQuery_with_Other_Libraries" target="_blank">utilizzare jQuery con altre librerie</a>.</p>
<pre name="codice" class="javascript">var $j = jQuery.noConflict();
$j('#mioDiv').hide();
</pre>
<h2>Aggiungere un&#8217;icona per link diversi</h2>
<p>Questo trucco è molto semplice e utile per l&#8217;usabilità. Se i link portano a siti Web esterni, vogliamo che una immagine venga visualizzata accanto al link, così come se sono presenti link a documenti <code>.pdf</code>, o <code>.doc</code>. Dopo aver definito delle regole CSS per ogni tipo di collegamento, associamole ai link corrispondenti:</p>
<pre name="codice" class="javascript">// Link a pdf
		$("a[href$='.pdf']").addClass("pdf");
// Link a documenti (doc, rtf, txt)
		$("a[href$='.doc'], a[href$='.txt'], a[href$='.rft']").addClass("txt");
// Link ad archivi compressi (zip, rar)
		$("a[href$='.zip'], a[href$='.rar']").addClass("zip");
// Email link
		$("a[href^='mailto:']").addClass("email");
//Aggiungiamo uno stile per i link esterni:
		$('a').filter(function() {
//Compariamo l'host name nell'anchor tag con 's host name location
		return this.hostname &amp;&amp; this.hostname !== location.hostname;
    }).addClass("external");
//Possimao anche aggiungere l'attributo _blank al terget dei link esterni:
/*
	$('a').filter(function() {
  //Compariamo l'host name nell'anchor tag con 's host name location
  	return this.hostname &amp;&amp; this.hostname !== location.hostname;
    }).addClass("external").attr("target", "_blank");
*/</pre>
<h2>Applicare un effetto hover a qualsiasi elemento</h2>
<pre name="codice" class="javascript">$('#hover-demo2 p').hover(function() {
  $(this).addClass('pretty-hover');
}, function() {
  $(this).removeClass('pretty-hover');
});
</pre>
<h2>Rendere cliccabile qualsiasi elemento</h2>
<p>Vogliamo rendere cliccabile qualsiasi elemento (attenzione: il nostro HTML non sarà più validato!):</p>
<pre name="codice" class="xhtml">&lt;div class="clickable" url="http://google.com"&gt;
	Contenuto del div
&lt;/div&gt;</pre>
<p>Ecco come fare:</p>
<pre name="codice" class="javascript">$("div.clickable").click(
function()
	{
  window.location = $(this).attr("url");
});</pre>
<h2>Imparare ad usare correttamente le animazioni</h2>
<p>Il metodo <code>animate()</code> prende semplicemente qualsiasi stile <acronym title="Cascading Style Sheets"><acronym title="Cascading Style Sheets">CSS</acronym></acronym> e lo fa passare in modo fluido da un valore all&#8217;altro. Quindi, è possibile modificare <code>width</code>, <code>height</code>, <code>opacity</code>, <code>background-color</code>, <code>top</code>, <code>left</code>, <code>margin</code>, <code>color</code>, <code>font-size</code> tutto quello che accetta un valore numerico. Ecco per esempio come è facile  animare tutte le voci di un menù facendole crescere a 100 pixel di altezza quando si passa sopra il mouse:</p>
<pre name="codice" class="javascript">$('#miaLista li').mouseover(function() {
		$(this).animate({"height": 100}, "slow");
});
</pre>
<p>A differenza di altre funzioni jQuery, le animazioni sono <strong>automaticamente eseguite in coda</strong>, quindi se si desidera eseguire una seconda animazione una volta che la prima è finita, basta chiamare il metodo <code>animate()</code> per due volte, senza funzioni di <code>callback</code> ulteriori:</p>
<pre name="codice" class="javascript">$('#mioBox').mouseover(function() {
		$(this).animate({ "width": 200 }, "slow");
   $(this).animate({"height": 200}, "slow");
});</pre>
<p>Se si desidera che le animazioni <em>avvengano in concomitanza, </em>basta mettere entrambi gli stili nei parametri di una singola chiamata, così:</p>
<pre name="codice" class="javascript">
$('#mioBox').mouseover(function() {
	$(this).animate({ "width": 200, "height": 200 }, "slow");
});</pre>
<p>È possibile animare qualsiasi proprietà che sia numerica. È però possibile scaricare un <a title="jQuery color plugin" href="http://www.paitadesign.com/examples/jquery-trucchi-e-consigli/jquery.color.js" target="_blank">plugin</a> per animare le proprietà che non sono numeriche, come i <a href="http://desizntech.info/2009/06/playing-with-jquery-color-plugin-and-color-animation/" target="_blank">colori</a>.</p>
<h2>Shorthand per l&#8217;evento ready</h2>
<p>Ecco un piccolo trucco che permette di salvare alcuni caratteri utilizzando una scorciatoia per la <code>$(document).ready(function(){})</code>.<br />
Invece di:</p>
<pre name="codice" class="javascript">$(document).ready(function (){
	// codice da eseguire
});</pre>
<p>&#8230;possiamo scrivere:</p>
<pre name="codice" class="javascript">$(function (){
	// codice da eseguire
});</pre>
<h2>Scorrere fino alla parte superiore di una pagina web</h2>
<p>Per <strong>tornare a inizio pagina</strong> in modo <em>fluido utilizzando le animazioni di jQuery</em>, inseriamo questo codice <acronym title="HyperText Markup Language">HTML</acronym> in pagina:</p>
<pre name="codice" class="xhtml">&lt;a href="#top"&gt;Torna a inizio pagina&lt;/a&gt;</pre>
<p>&#8230;e settiamo l&#8217;animazione così:</p>
<pre name="codice" class="javascript">
$('a[href=#top]').click(function(){
	$('html, body').animate({scrollTop:0}, 'slow');
	return false;
});</pre>
<p>&#8230;oppure possiamo realizzare lo stesso <a href="http://blog.html.it/07/09/2010/scroll-animato-con-jquery/" target="_blank" title="jQuery: scroll animato">scroll animato con jQuery tramite una funzione</a> a cui passiamo come parametro l&#8217; <code>id</code> del selettore desiderato:</p>
<pre name="codice" class="javascript">
function scrollWin(anc){
	target = $(anc);
	$('html, body').animate({
		scrollTop: target.offset().top
	}, 1000);
}
$(".scroller").click(function() {
    scrollWin("#pippo");
});
</pre>
<h2>Come personalizzare le liste</h2>
<p>Aggiungiamo a ogni <code>list-item</code> ,per esempio, l&#8217;elemento &#8220;<code>»":</code></p>
<pre name="codice" class="javascript">$("ul").addClass("Replaced");
$("ul &gt; li").prepend("»");
</pre>
<p>Impostiamo i <acronym title="Cascading Style Sheets">CSS</acronym> in modo tale da nascondere i <code>bullet-point</code> preimpostati:</p>
<pre name="codice" class="css">ul.Replaced {
 list-style : none;
}
</pre>
<h2>Cambiare i fogli di stile</h2>
<p>Vogliamo aggiungere uno &#8220;style-switch&#8221; in modo che i navigatori del nostro sito possano scegliere, per esempio, tra uno stile ad alto contrasto e uno stile di stampa? E&#8217; molto facile da fare: quello che ci serve è una serie di link con <code>ID</code> univoco:</p>
<pre name="codice" class="xhtml">&lt;h1&gt;Scegli uno stile:&lt;/h1&gt;
	&lt;ul&gt;
  &lt;li&gt;&lt;a id="StyleContrast" href="#"&gt;Contrast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a id="StylePrint" href="#"&gt;Print&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a id="StyleNormal" href="#"&gt;Normal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>Ecco come impostare i comandi JavaScript:</p>
<pre name="codice" class="javascript">$("#StyleContrast").click(function() {
	$("link[media='screen']").attr("href", "Contrast.css");
  });
$("#StylePrint").click(function() {
	$("link[media='screen']").attr("href", "Print.css");
});
$("#StyleNormal").click(function() {
	$("link[@media='screen']").attr("href", "Normal.css");
});</pre>
<h2>Campi di ricerca personalizzati</h2>
<p>Un piccolo script, che popola un campo di testo di un modulo con un testo predefinito come descrizione.<br />
Questo testo sparisce se l&#8217;input è in focus, e ricompare se il focus è perso senza alcun input:</p>
<pre name="codice" class="xhtml">&lt;form action="#" method="post"&gt;
	&lt;input id="SearchText" name="text" /&gt;
  &lt;button&gt;Cerca&lt;/button&gt;
&lt;/form&gt;</pre>
<p>Dato che questo compito può essere usato in diverse situazioni, è una buona idea scrivere una funzione riutilizzabile. Il primo parametro è un selettore (nel nostro caso &#8220;#Testo di ricerca&#8221;, ma qualcosa come &#8220;input[@name=search]&#8221; potrebbe andare bene), il secondo parametro è il nuovo valore predefinito di tale elemento di input (ad esempio &#8220;Inserisci i termini di ricerca qui ..&#8221;).</p>
<pre name="codice" class="javascript">function populateElement(selector, defvalue) {
 $(selector).each(function() {
         if($.trim(this.value) == "") {
                     this.value = defvalue;
         }
})
 $(selector).focus(function() {
        if(this.value == defvalue) {
                    this.value = "";
         }
});
$(selector).blur(function() {
        if($.trim(this.value) == "") {
        this.value = defvalue;
        }
      });
}</pre>
<p>Nel nostro caso particolare il codice JavaScript potrebbe apparire così:</p>
<pre name="codice" class="javascript">populateElement('#SearchText', 'Inserisci la parola che cerchi..');
</pre>
<h2>Prevenire il comportamento di default</h2>
<p>Supponiamo di avere una pagina molto lunga, e di avere un link simile a quello qui sotto che viene utilizzato per scopi diversi da un collegamento ipertestuale. Se si fa clic su di esso, ci porterà in cima alla pagina. La ragione di questo comportamento è la presenza del simbolo #.</p>
<pre name="codice" class="xhtml">&lt;a href="#" id="chiudi"&gt;&lt;/a&gt;
</pre>
<p>Per risolvere questo problema, è necessario annullare il comportamento predefinito, in questo modo:</p>
<pre name="codice" class="javascript">$('#chiudi).click(function(e){
     e.preventDefault();
}); 

/* oppure */

$('#chiudi).click(function(){
    return false;
});
</pre>
<h2>Font resizing</h2>
<p>Questo è una delle più usate funzionalità in una pagina web, cioè la possibilità di permettere all&#8217;utente aumentare/diminuire la dimensione del carattere.<br />
Siamo in grado di specificare l&#8217;ID, le classi o gli elementi HTML di cui si desidera regolare il carattere tramite un array.</p>
<pre name="codice" class="javascript">$(document).ready(function(){
	 //Inseriamo un un array gli ID, classi e tag di cui vogliamo ridimensionare i font
  //Mettiamo html or body se vogliamo rendere tutti i caratteri ridimensionabili:
  var section = new Array('span','.section2');
  section = section.join(',');

	 //Resettiamo il font-size
  var originalFontSize = $(section).css('font-size');
  $(".resetFont").click(function(){
  $(section).css('font-size', originalFontSize);
  });

  //Aumentiamo il font-size
  $(".increaseFont").click(function(){
  var currentFontSize = $(section).css('font-size');
  var currentFontSizeNum = parseFloat(currentFontSize, 10);
  var newFontSize = currentFontSizeNum*1.2;
  $(section).css('font-size', newFontSize);
  return false;
  });

  //Diminuiamo il font-size
  $(".decreaseFont").click(function(){
  var currentFontSize = $(section).css('font-size');
  var currentFontSizeNum = parseFloat(currentFontSize, 10);
  var newFontSize = currentFontSizeNum*0.8;
  $(section).css('font-size', newFontSize);
  return false;
  });
  });
</pre>
<p>Impostiamo adesso un pannello per passare da un <code>font-size</code> a un altro:</p>
<pre name="codice" class="xhtml">&lt;div&gt;
		&lt;a class="increaseFont"&gt;+&lt;/a&gt; |
		&lt;a class="decreaseFont"&gt;-&lt;/a&gt; |
		&lt;a class="resetFont"&gt;=&lt;/a&gt;
&lt;/div&gt;
	&lt;span&gt;Questo font può cambiare di dimensione&lt;/span&gt;
  &lt;div class="section1"&gt;Questa sezione non cambia il font!&lt;/div&gt;
  &lt;div class="section2"&gt;Questa invece sì!&lt;/div&gt;
</pre>
<h2>Rimuovere una parola</h2>
<p>Ecco il modo più semplice: usiamo le espressioni regolari:</p>
<pre name="codice" class="javascript">var el = $('#id');el.html(el.html().replace(/parolaDaRimuovere+parolaDaRimuovere/ig, ""));</pre>
<h2>Ottimizziamo l&#8217;uso dei Plugin</h2>
<p>I plugin di jQuery devono essere inclusi nella pagina principale dopo il core <code>jquery.js,</code> così:</p>
<pre name="codice" class="javascript">&lt;script type="text/javascript" src="jquery-core.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery.plugin-1.0.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery.plugin-2.4.js"&gt;&lt;/script&gt;</pre>
<p>Il metodo migliore però è quello di copiare tutti i file JavaScript in un singolo file e poi <a href="http://johannburkard.de/blog/programming/javascript/automate-javascript-compression-with-yui-compressor-and-packer.html" target="_blank">comprimerli con YUI e impacchettarli</a>.</p>
<h2>Aggiungere / inserire elementi HTML <em>dentro</em> un elemento</h2>
<p>Il metodo <code>.append()</code> inserisce il contenuto specificato come l&#8217;<em>ultimo figlio</em> di ciascun elemento della collezione jQuery (per inserirlo come <em>primo figlio</em>, usare. .<code>prepend()</code>).</p>
<p>I metodi <code>.append()</code> e <code>.appendTo()</code> svolgono lo stesso compito. La principale differenza è nella sintassi, in particolare, nel posizionamento dei contenuti e di destinazione.<br />
Con <code>append()</code>, l&#8217;espressione che precede il metodo di selezione è il <strong>contenitore</strong> in cui è inserito il contenuto. Con <code>.appendTo()</code>, al contrario, il <strong>contenuto precede il metodo</strong>, sia come espressione di selezione o di markup creati al volo, ed è inserita nel <strong>contenitore di destinazione</strong>. Ecco cosa scrivere:</p>
<pre name="codice" class="javascript">$('#questoDiv').append("&lt;b&gt;testo inserito&lt;/b&gt;");</pre>
<p>..che equivale a:</p>
<pre name="codice" class="javascript">$('&lt;p&gt;testo inserito&lt;/p&gt;').appendTo('#questoDiv');
</pre>
<h2>Aggiungere / inserire elementi HTML <em>dopo</em> un elemento</h2>
<p>Dobbiamo usare <a href="http://api.jquery.com/insertAfter/" target="_blank"><code>.insertAfter()</code></a>, oppure <code>.after()</code></p>
<h2>Rimpiazzare un &lt;div&gt; con jQuery</h2>
<pre name="codice" class="javascript">$('#questoDiv').replaceWith('&lt;div&gt;Altro div&lt;/div&gt;');</pre>
<h2>Rimuoviamo un elemento dopo gli effetti Fadeout e Slideup</h2>
<p>Combiniamo più effetti in jQuery per animare e rimuovere un elemento dal DOM:</p>
<pre name="codice" class="javascript">$("#myButton").click(function() {
        $("#myDiv").fadeTo("slow", 0.01, function(){ //fade
            $(this).slideUp("slow", function() { //slide up
            $(this).remove(); //e rimozione dal DOM
        });
});
});</pre>
<h2>&#8230;alla fine: Javascript Error Checker!</h2>
<p>Adesso che abbiamo tutti questi script da utilizzare nel nostro sito, come testarli? Il <strong>debug di script javascript</strong> possono essere molto lunghi in termini di tempo.  Così, se non riusciamo a risalire a che cosa sta causando gli errori, è possibile utilizzare questo strumento online gratuito: <a title="The JavaScript Code Quality Tool" href="http://www.jslint.com/" target="_blank">JSLint</a></p>
<div class="resources">
<h2>Letture consigliate</h2>
<p><a class="hotLink" title="50 jQuery Snippets That Will Help You Become A Better JavaScript Developer" href="http://addyosmani.com/blog/50-jquery-snippets-for-developers/" target="_blank">http://addyosmani.com/blog/50-jquery-snippets-for-developers/</a><br />
<a class="hotLink" title="20 Helpful jQuery Methods you Should be Using" href="http://net.tutsplus.com/tutorials/javascript-ajax/20-helpful-jquery-methods-you-should-be-using/" target="_blank">20 Helpful jQuery Methods you Should be Using</a><br />
<a title="very useful jQuery Tips and Tricks for all jQuery developers" href="http://viralpatel.net/blogs/2009/08/20-top-jquery-tips-tricks-for-jquery-programmers.html" target="_blank">very useful jQuery Tips and Tricks for all jQuery developers</a><br />
<a href="http://www.catswhocode.com/blog/8-awesome-jquery-tips-and-tricks">8 awesome JQuery tips and tricks</a><br />
<a href="http://johannburkard.de/blog/programming/javascript/6-quick-jquery-tips-text-manipulation-timers-and-elements.html" target="_blank">6 quick jQuery tips: Text manipulation, timers and elements</a><br />
<a href="http://www.noupe.com/tutorial/51-best-of-jquery-tutorials-and-examples.html" target="_blank">51+ Best of jQuery Tutorials and Examples</a><br />
<a href="http://www.queness.com/post/172/jquery-tips-and-tricks-ii" target="_blank">jQuery Tips and Tricks II</a><br />
<a href="http://www.learningjquery.com/2007/02/quick-tip-set-hover-class-for-anything" target="_blank">Quick Tip – Set Hover Class for Anything</a><br />
<a href="http://stackoverflow.com/questions/180211/jquery-div-click-with-anchors" target="_blank">jQuery DIV click, with anchors</a><br />
<a href="http://jquery-howto.blogspot.com/" target="_blank">JQuery HowTo</a><br />
<a href="http://www.queness.com/post/237/30-javascript-menu-plugins-and-scripts" target="_blank">30 Javascript Menu Plugins and Scripts</a><br />
<a href="http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx" target="_blank">Improve your jQuery &#8211; 25 excellent tips</a><br />
<a class="hotLink" href="http://desizntech.info/2009/06/playing-with-jquery-color-plugin-and-color-animation/" target="_blank">Playing with jQuery Color Plugin and Color Animation</a><br />
<a class="hotLink" title="Animate a hover with jQuery" href="http://www.incg.nl/blog/2008/hover-block-jquery/" target="_blank">Animate a hover with jQuery</a><br />
<a href="http://www.electrictoolbox.com/jquery-scroll-top/" target="_blank">Scroll to the top of a webpage with jQuery</a><br />
<a href="http://docs.jquery.com/Tutorials:5_Quick_jQuery_Tips" target="_blank">Tutorials:5 Quick jQuery Tips</a><br />
<a href="http://www.queness.com/post/126/useful-and-handy-jquery-tips-and-tricks" target="_blank">Useful and Handy jQuery Tips and Tricks</a><br />
<a title="6 fast jQuery Tips: More basic Snippets" href="http://johannburkard.de/blog/programming/javascript/6-fast-jQuery-Tips-More-basic-Snippets.html" target="_blank">6 fast jQuery Tips: More basic Snippets</a><br />
<a title="6 quick jQuery tips: Text manipulation, timers and elements" href="http://johannburkard.de/blog/programming/javascript/6-quick-jquery-tips-text-manipulation-timers-and-elements.html" target="_blank">6 quick jQuery tips: Text manipulation, timers and elements</a><br />
<a title="10 Tips for Writing Better jQuery Code" href="http://www.myinkblog.com/2009/08/04/10-tips-for-writing-better-jquery-code/" target="_blank">10 Tips for Writing Better jQuery Code</a></p>
</div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/&amp;t=jQuery+e+Web+Designer%3A+20%2B+consigli+utili+e+trucchi+per+tutti+i+siti%21" rel="nofollow" class="external" title="Condividi su Facebook">Condividi su Facebook</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=jQuery+e+Web+Designer%3A+20%2B+consigli+utili+e+trucchi+per+tutti+i+siti%21+-+File: /data/app/webapp/functions.php<br />Line: 7<br />Message: Too many connections&amp;source=shareaholic" rel="nofollow" class="external" title="Tweetalo!">Tweetalo!</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/&amp;title=jQuery+e+Web+Designer%3A+20%2B+consigli+utili+e+trucchi+per+tutti+i+siti%21" rel="nofollow" class="external" title="Condividi su del.icio.us">Condividi su del.icio.us</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22jQuery%20e%20Web%20Designer%3A%2020%2B%20consigli%20utili%20e%20trucchi%20per%20tutti%20i%20siti%21%22&amp;body=Link: http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/ (inviato con shareaholic)%0D%0A%0D%0A----%0D%0A jQuery%3A%20trucchi%20e%20consigli%20per%20i%20webdesigner%20meno%20esperti%20e%20gli%20sviluppatori%20principianti%21" rel="nofollow" class="external" title="Vuoi segnalarlo via mail ad un amico?">Vuoi segnalarlo via mail ad un amico?</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/&amp;title=jQuery+e+Web+Designer%3A+20%2B+consigli+utili+e+trucchi+per+tutti+i+siti%21&amp;summary=jQuery%3A%20trucchi%20e%20consigli%20per%20i%20webdesigner%20meno%20esperti%20e%20gli%20sviluppatori%20principianti%21&amp;source=paitadesignblog" rel="nofollow" class="external" title="Condividi su LinkedIn">Condividi su LinkedIn</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=jQuery+e+Web+Designer%3A+20%2B+consigli+utili+e+trucchi+per+tutti+i+siti%21&amp;body=Link: http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/ (inviato con shareaholic)%0D%0A%0D%0A----%0D%0A jQuery%3A%20trucchi%20e%20consigli%20per%20i%20webdesigner%20meno%20esperti%20e%20gli%20sviluppatori%20principianti%21" rel="nofollow" class="external" title="Manda email con Gmail">Manda email con Gmail</a>
		</li>
		<li class="shr-comfeed">
			<a href="http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/feed" rel="nofollow" class="external" title="Vuoi iscriverti ai commenti per questo post?">Vuoi iscriverti ai commenti per questo post?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Articoli correlati:</p><ol><li><a href='http://www.paitadesign.com/blog/jquery-smooth-scroll-scorrimento-morbido/' rel='bookmark' title='Permanent Link: jQuery SmoothScroll: effetto scorrimento verticale morbido!'>jQuery SmoothScroll: effetto scorrimento verticale morbido!</a></li>
<li><a href='http://www.paitadesign.com/blog/jquery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/' rel='bookmark' title='Permanent Link: jQuery: imparare le basi con toggle. Mostra e nascondi con stile!'>jQuery: imparare le basi con toggle. Mostra e nascondi con stile!</a></li>
<li><a href='http://www.paitadesign.com/blog/css3-jquery-columns-layout-multi-colonne/' rel='bookmark' title='Permanent Link: CSS3 Columns e jQuery: layout multi-colonne ad altezza pari'>CSS3 Columns e jQuery: layout multi-colonne ad altezza pari</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS Pseudo-classi: come usarle su IE6+!</title>
		<link>http://www.paitadesign.com/blog/css-pseudo-classi-ie6-come-usarle-cross-browser/</link>
		<comments>http://www.paitadesign.com/blog/css-pseudo-classi-ie6-come-usarle-cross-browser/#comments</comments>
		<pubDate>Sun, 16 May 2010 09:31:40 +0000</pubDate>
		<dc:creator>Giacomo Paita</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[bugfix]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[novità]]></category>
		<category><![CDATA[preview]]></category>

		<guid isPermaLink="false">http://www.paitadesign.com/blog/?p=532</guid>
		<description><![CDATA[


Articoli correlati:<ol><li><a href='http://www.paitadesign.com/blog/css3-page-curl-effect-effetto-foto-piegata/' rel='bookmark' title='Permanent Link: CSS3: effetto foto piegata!'>CSS3: effetto foto piegata!</a></li>
<li><a href='http://www.paitadesign.com/blog/tabelle-html-come-usarle-quando-usarle/' rel='bookmark' title='Permanent Link: Tabelle HTML: come usarle, quando usarle'>Tabelle HTML: come usarle, quando usarle</a></li>
<li><a href='http://www.paitadesign.com/blog/css3-compatibilita-cross-browser-da-oggi/' rel='bookmark' title='Permanent Link: CSS3: compatibilità cross-browser&#8230;da oggi!'>CSS3: compatibilità cross-browser&#8230;da oggi!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Le <strong>pseudo-classi <acronym title="Cascading Style Sheets">CSS</acronym></strong> sono utilizzate per aggiungere <em>effetti speciali</em> ad alcuni selettori e si riconoscono perch&egrave; hanno i  &quot;due punti &quot; che precedono la dichiarazione. I <acronym title="Cascading Style Sheets v3">CSS3</acronym> stanno per introdurre una gran quantit&agrave; di <strong>nuove pseudo classi</strong>, che renderanno la vita dei webdesigner  molto pi&ugrave; facile (se si esclude la compatibilit&agrave; con tutti i browser). Le pseudo-classi aiutano sia l&#8217;estetica e l&#8217;usabilit&agrave;, e possono fare velocemente e facilmente cose che una volta erano difficili da ottenere.</p>
<p><span id="more-532"></span></p>
<p>Purtroppo, anche se alcune di esse appartengono gi&agrave; alle specifiche <acronym title="Cascading Style Sheets">CSS</acronym> 2.1, non sono supportate da nesusn browser IE. Ecco allora che ci vengono in aiuto alcune <em>librerie JavaScript</em> che uniformano il comportamento di IE ai browser pi&ugrave; recenti. </p>
<p><a href="http://code.google.com/p/ie7-js/" title="A JavaScript library to make MSIE behave like a standards-compliant browser." target="_blank">IE7.js</a> &egrave; una libreria JavaScript (100kb) per far s&igrave; che <strong>Internet Explorer 6+ si comporti come un browser standard-compliant</strong>. Essa risolve molti problemi legati a <acronym title="HyperText Markup Language">HTML</acronym>, <acronym title="Cascading Style Sheets">CSS</acronym> e  fa funzionare correttamente con IE5 e IE6 le PNG trasparenti. <br />
Scarichiamola e scegliamo di includere il JavaScript che ci permette di aggiornare <em>tutti gli IE alla versione 9</em>, cos&igrave;:</p>
<pre name="codice" class="xhtml">
&lt;!--[if lt IE 9]&gt;
  &lt;script src=&quot;IE9.js&quot;&gt;&lt;/script&gt;
&lt;![endif]--&gt;</pre>
<div id="assetPanel">
        <a class="assetCode" title="Scarica tutte le risorse per questo tutorial"href="http://www.paitadesign.com/examples/css-pseudoclassi-come-usarle-su-ie6+/css-pseudoclassi-come-usarle-su-ie6_risorse.zip" target="_blank">Risorse</a><a class="assetDemo" title="Visualizza il risultato finale" href="http://www.paitadesign.com/examples/css-pseudoclassi-come-usarle-su-ie6+/css-pseudoclassi-esempi-posizion-related.html" target="_blank">Demo</a>
</div>
<h2>Pseudoclassi: sintassi</h2>
<p>Tutte le pseudo-classi seguono questa sintassi:</p>
<pre name="codice" class="css">elemento:pseudoClasse {
...
}
</pre>
<p>Alcune pseudo-classi fanno uso anche delle parentesi. Per esempio, la pseudo-classe <code>:not()</code> dichiara quale regola <acronym title="Cascading Style Sheets">CSS</acronym> non applicare. Ci&ograve; &egrave; utile quando si desidera applicare qualcosa a tutto tranne a un certa classe/ID. Per esempio, questa dichiarazione:</p>
<pre name="codice" class="css">.miaClasse:not(div) {
 background:#CCC;
}  </pre>
<p>imposta uno sfondo di colore <code>#CCC</code> per tutti gli elementi che non siano <code>div</code>.</p>
<h2>Utilizzo delle pseudo-classi</h2>
<p></p>
<h3>Pseudo-classi correlate ai link</h3>
<p>Queste pseudo-classi applicano degli stili ai <em>diversi stati di un link</em>.  Ecco di seguito la lista completa e <a href="http://www.paitadesign.com/examples/css-pseudoclassi-come-usarle-su-ie6+/css-pseudoclassi-esempi-link-related.html" title="utilizzo delle pseudo-classi: esempi" target="_blank">cosa possiamo ottenere</a>:</p>
<ul>
<li><code>:link</code> applica uno stile a un <strong>link non visitato</strong></li>
<li><code>:visited</code> applica uno stile a un <strong>link visitato</strong></li>
<li><code>:hover</code> applica uno stile su un elemento al <strong>passaggio del mouse</strong></li>
<li><code>:active</code> applica uno stile a un <strong>elemento attivo</strong>. Per esempio, un link è attivo <em>da quando ci si clicca a quando si rilascia il click</em></li>
</ul>
<p>A questo riguardo occorre ricordare che l&#8217;ordine sopra indicato non &egrave; casuale: in fatti, ogni pseudo-classe link-related ha una sua <a href="http://meyerweb.com/eric/css/link-specificity.html" title="Link specificity">specificità</a>. <br />
Esiste una sorta di short-hand per ricordarsi la corretta successione: prendendo la lettera iniziale di ogni stato si ottiene &quot;LVHA&quot;, che pu&ograve; essere ampliato a &quot;<em>L</em>o<em>V</em>e <em>H</em><em>A</em>te&quot;. </p>
<h3>Pseudo-classi correlate a Input &amp; link</h3>
<ul>
<li><code>:focus</code> 	applica uno stile a un elemento in uso. Per esempio, quando si scrive dentro una <code>textarea</code>, in quel momento essa è in uso</li>
<li><code>:target</code>  se si dispone di un URL tipo <code>index.html#about</code>, questo permetterà di applicare i <acronym title="Cascading Style Sheets">CSS</acronym> per l&#8217;elemento con <code>id="about"</code></li>
<li><code>:enabled</code>	seleziona tutti gli elementi <code>input</code> in stato <code>enable</code></li>
<li><code>:disabled</code> 	seleziona tutti gli elementi <code>input</code> in stato <code>disabled</code></li>
<li><code>:checked</code>  controllato nelle caselle di immissione selezionate</li>
<li><code>:indeterminate</code> seleziona i radio e i check-box, quando essi non sono né selezionata né non selezionata</li>
<li><code>:required</code> 	seleziona gli elementi <code>input</code> che sono <code>required</code></li>
<li><code>:optional</code> 	seleziona gli elementi <code>input</code> che sono <code>optional</code></li>
<li><code>:invalid</code> 	seleziona <code>input</code> non validi</li>
<li><code>:in-range</code> 	selziona elementi che sono in un <code>range</code> (da utilizzare con <code>input type=&quot;range&quot;</code> in <acronym title="HyperText Markup Language">HTML</acronym>5)</li>
<li><code>:out-of-range</code> 	seleziona elementi fuori dal <code>range</code></li>
<li><code>:default</code> 	seleziona l&#8217;elemento di default, per esempio, in un <code>form</code> il bottone <code>submit</code></li>
<li><code>:valid</code> 	seleziona un campo <code>input</code> valido  (<acronym title="HyperText Markup Language">HTML</acronym>5)</li>
</ul>
<h3>Pseudo-classi correlate alla posizione/numero</h3>
<p>Ecco un <a href="http://www.paitadesign.com/examples/css-pseudoclassi-come-usarle-su-ie6+/css-pseudoclassi-esempi-posizion-related.html" title="Utilizzo delle pseudo-classi: Pseudo-classi correlate alla posizione/numero" target="_blank">esempio</a>:</p>
<ul>
<li><code>:root</code> applica uno stile <acronym title="Cascading Style Sheets">CSS</acronym> all&#8217;elemento radice, ossia il tag &lt;html&gt; in un documento <acronym title="HyperText Markup Language">HTML</acronym></li>
<li><code>:first-child </code>	applica uno stile al primo figlio di un elemento</li>
<li><code>:last-child</code>applica i <acronym title="Cascading Style Sheets">CSS</acronym> all&#8217;ultimo elemento contenuto. Esempio div <code>p:last-child</code> seleziona l&#8217;ultimo paragrafo d un <code>div</code></li>
<li><code>:nth-child(N)</code> 	seleziona elementi numerati, <em>su base 1</em>. Per esempio, <code>p:nth-child(3)</code> seleziona l&#8217;elemento <code>p</code> che è il terzo figlio. Si possono anche aggiungere regole, per esempio p:nth-child(2n+1), dove <code>n</code> è il numero di partenza partendo da <code>0</code> e viene incrementato di <code>1</code>. Perciò, questa regola seleziona tutti gli elementi pari (odd): in questo caso è equivalente a scrivere <code>nth-child(odd)</code>, così come per i dispari si scrive <code>nth-child(even)</code></li>
<li><code>:nth-of-type(N)</code>  applicare i <acronym title="Cascading Style Sheets">CSS</acronym> a un elemento numerato di un certo tipo. Per esempio: <code>div:nth-of-type(2)</code> seleziona il secondo di quel tipo</li>
<li><code>:nth-last-of-type(N)</code> 	seleziona un elemento in base alla sua posizione, per esempio <code>nth-last-of-type(4)</code></li>
<li><code>:first-of-type</code> 	applica i <acronym title="Cascading Style Sheets">CSS</acronym> solo al primo alemento di quel genere. Per esempio, se ci sono due <code>div</code> consecutivi, applica la regola solo al primo</li>
<li><code>:last-of-type</code> 	Seleziona l&#8217;utlimo elemento di un genere</li>
<li><code>:only-child</code> 	seleziona un elemento solo se è l&#8217;unico figlio del contenitore padre</li>
<li><code>:only-of-type</code> 	seleziona un elemento solo se esso è l&#8217;unico nel suo genere contenuto nell&#8217;elemento padre</li>
</ul>
<h3>Pseudo-classi relazionali</h3>
<ul>
<li><code>:not(elemento | classe)</code> applica una regola <acronym title="Cascading Style Sheets">CSS</acronym> solo agli elementi che non sono specificati tra le parentesi</li>
<li><code>:empty</code> applica i <acronym title="Cascading Style Sheets">CSS</acronym> a un elemento solo se è vuoto</li>
</ul>
<h3>Pseudo classi e paseudo elementi legati al testo</h3>
<h4>Pseudo-elementi</h4>
<ul>
<li><code>:first-line</code> definisce lo stile <acronym title="Cascading Style Sheets">CSS</acronym> della prima riga di un elemento</li>
<li><code>:first-letter</code> definisce lo stile <acronym title="Cascading Style Sheets">CSS</acronym> del primo carattere di un elemento</li>
</ul>
<h4>Pseudo-classi</h4>
<ul>
<li><code>:lang()</code> applica uno stile a un elemento che usa una lingua specifica, per esempio <code>:lang(en)</code> per l&#8217;inglese. È quindi possibile mettere <code>lang = "en"</code> in un tag <acronym title="HyperText Markup Language">HTML</acronym> e impostare gli stili solo per esso</li>
<li><code>::selection</code> permette di cambiare lo stile del testo selezionato nel browser</li>
<li><code>:read-only </code>	seleziona gli elementi che sono <code>read-only</code></li>
<li><code>:read-write</code> seleziona la parte editabile in un elemento</li>
</ul>
<h3>Content-related pseudo-elementi</h3>
<ul>
<li><code>:before </code>è in grado di aggiungere contenuti prima di un certo elemento</li>
<li><code>:after</code> è in grado di aggiungere contenuti, dopo un certo elemento</li>
</ul>
<h3>jQuery: pseudo-selettori <acronym title="Cascading Style Sheets v3">CSS3</acronym></h3>
<p>jQuery  permette di usare tutti questi selettori, per esempio:</p>
<ul>
<li><code>:first</code> funziona come <code>:nth-child(1)</code></li>
<li><code>:eq(X)</code> è uguale a <code>:nth-child(X)</code></li>
<li><code>:contains('text')</code></li>
<li><code>:lt(X)</code>come <code>:nth-child(-n+X)</code>, seleziona “i primi X elementi”</li>
<li><code>:gt(X)</code> è come <code>:nth-child(n+X)</code>, seleziona tutto tranne “i primi (X-1) elementi”</li>
<li><code>:even</code> è come <code>:nth-child(even)</code> o <code>:nth-child(2n)</code></li>
<li><code>:odd</code> è uguale a <code>:nth-child(odd)</code> o <code>:nth-child(2n+1)</code></li>
<li><code>:has(S)</code> controlla se l&#8217;elemento contiene un certo discendente</li>
</ul>
<p>Oltre a questi ve ne sono molti <a href="http://api.jquery.com/category/selectors/" title="jQuery API - selectors" target="_blank">altri</a>.</p>
<h2>Selettori di discendenza</h2>
<p>C&#8217;&egrave; una differenza tra <em>figli</em> e <em>discendenti</em>? </p>
<p>Vediamo come impostare degli stili <acronym title="Cascading Style Sheets">CSS</acronym> per capire come funzionano il <strong>combinatore figlio diretto</strong>, il <strong>combinatore fratello adiacente</strong>, e il <strong>combinatore fratello di pari livello</strong>.</p>
<h3>Child: combinatore &quot;figlio diretto&quot;</h3>
<p>Nel <a href="http://www.paitadesign.com/examples/css-pseudoclassi-come-usarle-su-ie6+/css-selettori-di-discendenza-figio-diretto.html" title="Selettori di discendenza: Child" target="_blank">codice sottostante</a>, dichiariamo una discendenza generica (Combinatore del discendente &#8211; Descendant), e di seguito, una diretta.</p>
<pre name="codice" class="css">
#child  p { color: #000;font-weight:normal; }
#child &gt; p { color: #F00;font-weight:bold; }  </pre>
<h3>Adjacent sibling: combinatore &quot;fratello adiacente&quot;</h3>
<p>Ecco <a href="http://www.paitadesign.com/examples/css-pseudoclassi-come-usarle-su-ie6+/css-selettori-di-discendenza-adjacent-sibling.html" title="Selettori di discendenza: adjacent-sibling" target="_blank">come funziona adjacent sibling</a>: in pratica appica lo stile all&#8217;elemento, <em>se e solo se</em>, <strong>esso &egrave; immediatamente successivo altro elemento indicato</strong>. </p>
<pre name="codice" class="css">p + p { font-size: smaller; }
/* Applica lo stile solo al paragrafo che ne segue un altro (adiacente) */
#intro + ul { margin-top: 0; }
/* Applica lo stile solo alla lista che segue direttamente un elemento con  ID intro */</pre>
<h3>General sibling: combinatore &quot;fratello generico&quot;</h3>
<p><strong>General sibling</strong> &egrave; molto simile ad <em>adiacent sibling</em>: la differenza &egrave; che l&#8217;elemento che viene selezionato <em>non ha bisogno di essere immediatamente successivo</em> al primo elemento, ma <strong>pu&ograve; apparire ovunque dopo di esso</strong>. Ecco un esempio di <a href="http://www.paitadesign.com/examples/css-pseudoclassi-come-usarle-su-ie6+/css-selettori-di-discendenza-general-sibling.html" title="Selettori di discendenza: general-sibling" target="_blank">general sibling</a>:</p>
<pre name="codice" class="xhtml">p ~ p { background-color:#0F0; color:#FFF; padding:10px; }</pre>
<div class="resources">
<h3>Letture consigliate</h3>
<p><a href="http://24ways.org/2009/cleaner-code-with-css3-selectors" title="The wonder of CSS3" target="_blank">Cleaner Code with CSS3 Selectors</a><br />
<a href="http://reference.sitepoint.com/css/css3psuedoclasses" target="_blank">Sitepoint: <acronym title="Cascading Style Sheets v3">CSS3</acronym> Pseudo-classes</a><br />
<a href="http://www.modernizr.com/" target="_blank">What is Modernizr?</a><br />
<a href="http://ie7-js.googlecode.com/svn/test/index.html" target="_blank">IEe7-js.googlecode</a><br />
<a href="http://sizzlejs.com/" title="A pure-JavaScript CSS selector engine" target="_blank">Sizzle: A pure-JavaScript <acronym title="Cascading Style Sheets">CSS</acronym> selector engine</a><br />
<a href="http://forabeautifulweb.com/blog/about/enable_css_pseudo-element_selectors_in_internet_explorer_with_ie-css3.js/" title="Enable CSS pseudo-element selectors in Internet Explorer with IE" target="_blank">Enable <acronym title="Cascading Style Sheets">CSS</acronym> pseudo-element selectors in Internet Explorer with IE</a><br />
<a href="http://webtint.net/tutorials/the-mysterious-pseudo-class-in-css/" title="What is the Pseudo Class?" target="_blank">The Mysterious Pseudo Class in <acronym title="Cascading Style Sheets">CSS</acronym> </a><br />
<a href="http://css-tricks.com/child-and-sibling-selectors/" title="Child and Sibling Selectors" target="_blank">Child and Sibling Selectors</a><br />
<a href="http://css-tricks.com/pseudo-class-selectors/" class="hotLink" title="Meet the Pseudo Class Selectors" target="_blank">Meet the Pseudo Class Selectors</a><br />
<a href="http://meyerweb.com/eric/css/tests/css2/index.html" title="CSS2 Test Suite: Prototypical Pages"><acronym title="Cascading Style Sheets">CSS</acronym>2 Test Suite: Prototypical Pages</a><br />
<a href="http://htmldog.com/guides/cssadvanced/pseudoelements/" title="Pseudo Elements" target="_blank">Pseudo Elements Guide</a><br />
<a href="http://www.cssbasics.com/css-pseudo-elements/" title="CSS Pseudo Elements: The Syntax" target="_blank">CSS Pseudo Elements: The Syntax</a><br />
<a href="http://css.html.it/articoli/leggi/3330/i-selettori-combinatori-nei-css3/" target="_blank" title="I selettori combinatori nei CSS3">I selettori combinatori nei <acronym title="Cascading Style Sheets v3">CSS3</acronym></a><br />
<a class="hotLink" href="http://css.html.it/articoli/leggi/3360/selettori-css3-cross-browser-con-jquery/" title="Selettori CSS3 cross-browser con jQuery" target="_blank">Selettori <acronym title="Cascading Style Sheets v3">CSS3</acronym> cross-browser con jQuery</a>
</div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.paitadesign.com/blog/css-pseudo-classi-ie6-come-usarle-cross-browser/&amp;t=CSS+Pseudo-classi%3A+come+usarle+su+IE6%2B%21" rel="nofollow" class="external" title="Condividi su Facebook">Condividi su Facebook</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=CSS+Pseudo-classi%3A+come+usarle+su+IE6%2B%21+-+http://b2l.me/uuer4&amp;source=shareaholic" rel="nofollow" class="external" title="Tweetalo!">Tweetalo!</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.paitadesign.com/blog/css-pseudo-classi-ie6-come-usarle-cross-browser/&amp;title=CSS+Pseudo-classi%3A+come+usarle+su+IE6%2B%21" rel="nofollow" class="external" title="Condividi su del.icio.us">Condividi su del.icio.us</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22CSS%20Pseudo-classi%3A%20come%20usarle%20su%20IE6%2B%21%22&amp;body=Link: http://www.paitadesign.com/blog/css-pseudo-classi-ie6-come-usarle-cross-browser/ (inviato con shareaholic)%0D%0A%0D%0A----%0D%0A Le%20pseudo-classi%20CSS%20sono%20utilizzatie%20per%20aggiungere%20effetti%20speciali%20ad%20alcuni%20selettori%3A%20ecco%20cosa%20sono%20e%20come%20usarle%20anche%20su%20IE6%2B." rel="nofollow" class="external" title="Vuoi segnalarlo via mail ad un amico?">Vuoi segnalarlo via mail ad un amico?</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.paitadesign.com/blog/css-pseudo-classi-ie6-come-usarle-cross-browser/&amp;title=CSS+Pseudo-classi%3A+come+usarle+su+IE6%2B%21&amp;summary=Le%20pseudo-classi%20CSS%20sono%20utilizzatie%20per%20aggiungere%20effetti%20speciali%20ad%20alcuni%20selettori%3A%20ecco%20cosa%20sono%20e%20come%20usarle%20anche%20su%20IE6%2B.&amp;source=paitadesignblog" rel="nofollow" class="external" title="Condividi su LinkedIn">Condividi su LinkedIn</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=CSS+Pseudo-classi%3A+come+usarle+su+IE6%2B%21&amp;body=Link: http://www.paitadesign.com/blog/css-pseudo-classi-ie6-come-usarle-cross-browser/ (inviato con shareaholic)%0D%0A%0D%0A----%0D%0A Le%20pseudo-classi%20CSS%20sono%20utilizzatie%20per%20aggiungere%20effetti%20speciali%20ad%20alcuni%20selettori%3A%20ecco%20cosa%20sono%20e%20come%20usarle%20anche%20su%20IE6%2B." rel="nofollow" class="external" title="Manda email con Gmail">Manda email con Gmail</a>
		</li>
		<li class="shr-comfeed">
			<a href="http://www.paitadesign.com/blog/css-pseudo-classi-ie6-come-usarle-cross-browser/feed" rel="nofollow" class="external" title="Vuoi iscriverti ai commenti per questo post?">Vuoi iscriverti ai commenti per questo post?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Articoli correlati:</p><ol><li><a href='http://www.paitadesign.com/blog/css3-page-curl-effect-effetto-foto-piegata/' rel='bookmark' title='Permanent Link: CSS3: effetto foto piegata!'>CSS3: effetto foto piegata!</a></li>
<li><a href='http://www.paitadesign.com/blog/tabelle-html-come-usarle-quando-usarle/' rel='bookmark' title='Permanent Link: Tabelle HTML: come usarle, quando usarle'>Tabelle HTML: come usarle, quando usarle</a></li>
<li><a href='http://www.paitadesign.com/blog/css3-compatibilita-cross-browser-da-oggi/' rel='bookmark' title='Permanent Link: CSS3: compatibilità cross-browser&#8230;da oggi!'>CSS3: compatibilità cross-browser&#8230;da oggi!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.paitadesign.com/blog/css-pseudo-classi-ie6-come-usarle-cross-browser/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>sIFR: come installare e configurare correttamente il font replacement</title>
		<link>http://www.paitadesign.com/blog/sifr-come-installare-e-configurare-correttamente-il-font-replacement/</link>
		<comments>http://www.paitadesign.com/blog/sifr-come-installare-e-configurare-correttamente-il-font-replacement/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 16:00:58 +0000</pubDate>
		<dc:creator>Giacomo Paita</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tipografia]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[font-replacement]]></category>
		<category><![CDATA[sifr]]></category>
		<category><![CDATA[sifr-active]]></category>
		<category><![CDATA[typography]]></category>

		<guid isPermaLink="false">http://www.paitadesign.com/blog/?p=375</guid>
		<description><![CDATA[


Articoli correlati:<ol><li><a href='http://www.paitadesign.com/blog/come-installare-il-font-rendering-del-mac-su-pc/' rel='bookmark' title='Permanent Link: GDI++: come installare il font rendering del Mac su Pc'>GDI++: come installare il font rendering del Mac su Pc</a></li>
<li><a href='http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/' rel='bookmark' title='Permanent Link: AI to Canvas: utilizzare subito HTML5 Canvas!'>AI to Canvas: utilizzare subito HTML5 Canvas!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>sIFR &egrave; una combinazione di Javascript e Flash, che permette di visualizzare dinamicamente il testo utilizzando Flash. Il maggiore punto di forza &egrave; che permette di essere sicuri che il sito sia visbile allo stesso modo sui maggiori browser, in modo morbido e dettagliato. Il testo poi &egrave; selezionabile e di fatto rimane <acronym title="HyperText Markup Language">HTML</acronym>. Come per altri <a href="http://blog.html.it/02/04/2009/font-replacement-quale-tecnica-scegliere/" title="Font replacement: quale tecnica scegliere?" target="_blank">metodi simili</a>, esistono per&ograve; alcuni punti deboli.</p>
<p><span id="more-375"></span></p>
<p>Eccoli riassunti:</p>
<ul>
<li>i visitatori devono avere Flash e JavaScript installati e attivati: altrimenti verr&agrave; mostrato il testo con l&#8217;eventuale presentazione <acronym title="Cascading Style Sheets">CSS</acronym></li>
<li>sIFR non offre piena compatibilità per dispositivi mobili quali PDA e telefoni cellulari</li>
<li>il suo utilizzo potrebbe rallentare il caricamento del sito</li>
</ul>
<p></p>
<h3>sIFR: come funziona</h3>
<p>Il principio di funzionamento di sIFR &egrave; un misto tra <acronym title="Cascading Style Sheets">CSS</acronym>,   Javascript e Flash. Vediamolo in dettaglio:</p>
<ul>
<li>Javascript, se abilitato, verifica la presenza del   Flash Player</li>
<li> In caso positivo, lo script individua gli elementi definiti da un sorta di  selettore <acronym title="Cascading Style Sheets">CSS</acronym> passato come argomento della funzione   principale</li>
<li>Questi elementi vengono nascosti da Javascript, e il loro contenuto &egrave;  passato attraverso le <code>flashVars</code> ad un filmato Flash che   incorpora un font specifico</li>
<li>Il filmato Flash, contenente il testo da rimpiazzare (che sar&agrave;   selezionabile con il mouse) verr&agrave; quindi mostrato, cercando di occupare   la stessa area del testo che sostituisce (da qui il termine &quot;scalable&quot;).</li>
</ul>
<h3>sIFR: dove usarlo</h3>
<p>Con sIFR potremo <strong>rimpiazzare titoli, link</strong> (anche con effetto hover) e   <strong>intere sezioni di testo</strong>, dato che ha il supporto per il <strong>testo   multi-linea</strong>. Andrebbe per&ograve; <em>usato esclusivamente per i titoli</em>,   e preferibilmente andrebbe <em>evitato sui link</em>. Questi   infatti vengono &quot;mascherati&quot; da Flash, e non sar&agrave; possibile con sIFR   attivo controllare dove porta un link sulla barra di stato del browser.</p>
<h3>sIFR: file necessari</h3>
<p>Per prima cosa occorre scaricare l&#8217;<a href="http://dev.novemberborn.net/sifr3/nightlies/" title="sIFR - Mark Wubben" target="_blank">utlima versione di sIFR</a> o la <a href="http://www.mikeindustries.com/blog/files/sifr/2.0/sIFR-2.0.7.zip" title="http://www.mikeindustries.com/blog/files/sifr/2.0/sIFR-2.0.7.zip" target="_blank">versione ufficiale 2.0.7</a>. Per questo tutorial useremo la versione <a href="http://www.paitadesign.com/examples/sifr-come-installare-e-configurare-correttamente-il-font-replacement/sifr3-r419.zip" title="sifr3-r419">sIFR 3 r419</a>, contenente solo i file di cui abbiamo bisogno:</p>
<ul>
<li>css/sIFR-print.css, che contiene gli stili per la stampa</li>
<li>css/sIFR-screen.css, che contiene gli stili per il Web</li>
<li>js/sifr.js, che contiene il &quot;core&quot; di sIFR (da non modificare)</li>
<li>js/sifr-config.js, che serve per definire e attivare sIFR</li>
<li>flash/sifr.fla (con i relativi file <code>.as</code>), che serve per inserire il font</li>
</ul>
<p>Di seguito tutte le risorse usate per completare l&#8217;esempio, e una anteprima del risultato.</p>
<div id="assetPanel">
    <a class="assetCode" title="Scarica tutte le risorse per questo tutorial"href="http://www.paitadesign.com/examples/sifr-come-installare-e-configurare-correttamente-il-font-replacement/risorse.zip" target="_self">Risorse</a><a class="assetDemo" title="Visualizza il risultato finale" href="http://www.paitadesign.com/examples/sifr-come-installare-e-configurare-correttamente-il-font-replacement/" target="_self">Demo</a></div>
<h3>sIFR: impostare Flash per inserire il font</h3>
<p>Per prima cosa occorre procurarsi il font da includere nel file swf. Per questo esempio useremo <a href="http://www.josbuivenga.demon.nl/fontin.html" title="Fontin" target="_blank">Fontin</a>, liberamente utilizzabile. <br />
  Per formattare correttamente i diversi stili, il font deve essere OpenType TT, cio&egrave; avere tutti gli stili inclusi. <br />
  Scarichiamolo e installiamolo nel sistema operativo.<br />
  Fatto questo, apriamo con Flash il file sifr.fla:  il file &egrave; suddiviso in livelli. Facciamo doppio clic sulla stage per visualizzare il testo Bold, Italic e Normal.<br />
  Clicchiamo poi nella riga di testo: nel pannello <code>Propriet&agrave;</code> scegliamo <code>Fontin</code>. Per includere gli stili, applichiamoli rispettivamente al testo Bold, Italic e Normal.<br />
Senza modificare altro esportiamo il filmato: <code>File-&gt;Export-&gt;Export Movie</code>, facendo attenzione a selezionare <code>Filmato SWF</code> tra le impostazioni. Chiamiamo il filmato <code>fontin.swf</code></p>
<h3>sIFR: caricare i file in pagina</h3>
<p>All&#8217;interno del tag  <code>head</code> inseriamo i collegamenti ai file necessari:</p>
<pre name="codice" class="xhtml">&lt;link rel=&quot;stylesheet&quot; href=&quot;css/sIFR-screen.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;css/sIFR-print.css&quot; type=&quot;text/css&quot; media=&quot;print&quot; /&gt;
&lt;script src=&quot;js/sifr.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/sifr-config.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<h3>sIFR: configurare e attivare il font</h3>
<p>Per <strong>configurare sIFR</strong> apriamo il file vuoto <code>sifr-config.js</code>. <br />
Quello che ci accingiamo a fare &egrave; definire il <em>nome del font</em> e il <em>link al file flash</em>:</p>
<pre name="codice" class="javascript">var fontin = {
   src: 'flash/fontin.swf'
};</pre>
<p>Abbiamo definito una variabile che si collega al nostro file Flash. Questo comando non fa ancora niente, fintantoch&eacute; non la <em>attiviamo</em> digitando il <em>comando di attivazione</em>:</p>
<pre name="codice" class="javascript">sIFR.activate(fontin);</pre>
<p>Adesso abbiamo bisogno di definire quale testo deve <strong>essere sostituito con il testo in flash</strong>. Per fare questo, usiamo il <em>comando di sostituzione</em> in sIFR3:</p>
<pre name="codice" class="javascript">sIFR.replace(fontin, {
   selector: 'h2'
});
</pre>
<p>Abbiamo appena sostituito tutto il testo contenuto nel <code>tag h2</code>, ma possiamo sostituire il testo dentro qualsiasi <code>tag</code>, anche se questo, come detto prima, potrebbe rallentare sensibilmente il caricamento del sito.</p>
<h3>sIFR: applicare gli stili</h3>
<p>Ora che sIFR3 funziona, abbiamo bisogno di <a href="http://wiki.novemberborn.net/sifr3/Styling" title="sIFR 3 Documentation &#038; FAQ" target="_blank">applicare gli stili</a>, cosa che facciamo modificando di nuovo il file <em><code>sifr-config.js</code> file e il file <code>sIFR-screen.css</code></em>.<br />
Apriamo il file <code>sIFR-screen.css</code>: non modifichiamo le righe di codice che si trovano dopo <code>/*---- sIFR ---*/</code>, e occupiamoci di ci&ograve; che si trova dopo <code>/*---- Header styling ---*/</code>.<br />
Specifichiamo la classe <code>.sIFR-active</code> e impostiamo la visibilit&agrave; su &quot;nascosto&quot;, per rendere visibile solo il testo rimpiazzato:</p>
<pre name="codice" class="css">/*---- Header styling ---*/

.sIFR-active h2 {
  visibility:hidden;
  font-size:40px;
  padding:0;
  margin:0;
}</pre>
<p>Adesso andiamo a modificare  il <em>colore del font, il colore di sfondo e il <code>line-height</code></em>, <a href="http://wiki.novemberborn.net/sifr3/Styling" title="sIFR 3 Documentation &#038; FAQ: Styling" target="_blank">ma non solo</a>. <br />
Per modificarle, dobbiamo inserirle nel file <code>sifr-config.js</code>, in questo modo, richiamando la funzione <acronym title="Cascading Style Sheets">CSS</acronym>, facendo attenzione alla posizione delle virgole:</p>
<pre name="codice" class="css">sIFR.replace(fontin,{
  selector: 'h2'
  ,css: [
  	'.sIFR-root { color: #FAC421; background-color: #FFFC7F; }'
 ]
});</pre>
<p>Ecco a cosa fare attenzione: i comandi sono posti tra &quot; &#8216; &quot;e una &quot;,&quot; deve essere aggiunta dopo ogni comando, fatta eccezione per l&#39;ultimo. Una cosa importante è che bisogna scrivere i codici dei colori nella loro forma completa, cio&egrave; #FFFFFF, non #FFF. Inoltre, come anticipato sopra, per ottenere la propriet&agrave; <code>line-height</code>, dobbiamo utilizzare <code>leading</code>, oppure ricorrere ai <a href="http://wiki.novemberborn.net/sifr3/JavaScript+Methods" title="sIFR 3 Documentation: JavaScript Methods" target="_blank">metodi JavaScript</a>.</p>
<h3>sIFR: modifiche avanzate sul testo</h3>
<p>Adesso ci accingiamo a settare il file <code>sifr-config.js</code> in modo che il testo assuma comportamenti personalizzati, per esempio, cambiare colore del carattere e dello sfondo, o applicare i <a href="http://wiki.novemberborn.net/sifr3/Filters" title="sIFR 3 Documentation: Filters" target="_blank">filtri</a> (<a href="http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&#038;file=00000806.html" title="The flash.filters package " target="_blank">di Flash</a>). <br />
Applichiamo le modfiche a una classe <acronym title="Cascading Style Sheets">CSS</acronym> chiamata <code>multicolor</code> associata a un altro titolo, questa volta <code>h3</code>:</p>
<pre name="codice" class="javascript">sIFR.replace(fontin,{	selector: 'h3.multicolor'
	,css: [
    	'.sIFR-root { color: #775555; background-color: #010101; }'
        ,'em { font-style: italic; color: #444477; }'
        ,'strong { color: #44aa44; }'
        ,'.bold { font-style:bold; text-decoration:underline; }'
        ,'a { color: #aa4444; }'
        ,'a:hover { color: #bbbb44; }'
    ]
});</pre>
<p>Facciamo la stessa cosa con la classe <code>glow</code> e <code>shadow</code>. Nell&#8217;<a href="http://www.paitadesign.com/examples/sifr-come-installare-e-configurare-correttamente-il-font-replacement/" title="sIFR: esempi di formattazione" target="_self">esempio</a> vediamo cosa succede.</p>
<p>Come potete notare, quando clicchiamo sul testo rimpiazzato da sIFR, si forma un bordo tratteggiato. Possiamo <a href="http://www.paitadesign.com/blog/come-eliminare-il-bordo-tratteggiato-attorno-a-un-link-usabilita-web/" title="Come imuovere bordo tatteggiato" target="_blank">rimuoverlo</a> agendo sul tag <code>object</code>, così:</p>
<pre name="codice" class="css">.sIFR-active object  {
	outline:none;
	display: block;
}</pre>
<div class="resources">
<h3>Letture consigliate</h3>
<p><a href="http://www.hongkiat.com/blog/dynamic-image-replacement-practical-techniques-and-tools/" title="Dynamic Image Replacement: Practical Techniques and Tools " target="_blank">Dynamic Image Replacement: Practical Techniques and Tools </a><br /><a href="http://net.tutsplus.com/tutorials/javascript-ajax/how-to-implement-sifr3-into-your-website/" target="_blank">How To Implement sIFR3 Into Your Website</a><br />
  <a href="http://blog.html.it/?s=sifr&#038;x=0&#038;y=0" title="sIFR su blog.html.it" target="_blank">sIFR su blog.html.it</a><br />
  <a href="http://www.3roadsmedia.com/blog/how-to-install-and-configure-sifr/" title="http://www.3roadsmedia.com/blog/how-to-install-and-configure-sifr/" target="_blank">How to install and configure sIFR</a><br />
  <a href="http://justcoded.com/article/two-colors-sifr3/" title="Two colors in sIFR and useful sIFR3 hints">Two colors in sIFR and useful sIFR3 hints</a><br />
  <a href="http://infodotnet.blogspot.com/2008/03/playing-with-filters-in-sifr3-to-create.html" title="Playing with Filters in sIFR3 to create text effect" target="_blank">Playing with Filters in sIFR3 to create text effect</a><br />
  <a href="http://fortysevenmedia.com/blog/archives/sifr_3_hard_drop_shadows/" title="SIFR 3 HARD DROP SHADOWS" target="_blank">SIFR 3 HARD DROP SHADOWS</a><br />
  <a href="http://blog.andyhume.net/2004/12/24/how-and-when-to-use-sifr/" title="How and when to use sIFR" target="_blank">How and when to use sIFR</a><br />
  <a href="http://webdesign.html.it/articoli/leggi/515/sifr-la-nuova-tipografia-per-il-web/" title="sIFR: la nuova tipografia per il web" target="_blank">sIFR: la nuova tipografia per il web</a><br />
  <a href="http://www.diciottopassi.it/blog/2009/04/12/font-face-replacement-aspettando-font-face/ " title="Font Face Replacement: aspettando @font-face" target="_blank">Font Face Replacement: aspettando @font-face</a><br />
  <a href="http://jorenrapini.com/blog/web-design/font-face-replacement-and-embedding-techniques-and-resources" title="font face replacement and embedding techniques and resources" target="_blank">Web Typography RoundUp: Typeface.js vs Cúfon vs sIFR vs FLIR</a><br />
  <a href="http://plugins.jquery.com/taxonomy/term/2639" title="jQuery plugin: font replace" target="_blank">jQuery plugin: font replace</a><br />
  <a href="http://www.mezzoblue.com/tests/revised-image-replacement/ " title="Revised Image Replacement" target="_blank">Revised Image Replacement</a><br />
  <a href="http://www.yourinspirationweb.com/2009/06/18/tipografia-web-quali-sono-i-limiti-e-quali-le-possibili-soluzioni/ " title="Tipografia web: quali sono i limiti e quali le possibili soluzioni?" target="_blank">Tipografia web: quali sono i limiti e quali le possibili soluzioni?</a>
</p>
</div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.paitadesign.com/blog/sifr-come-installare-e-configurare-correttamente-il-font-replacement/&amp;t=sIFR%3A+come+installare+e+configurare+correttamente+il+font+replacement" rel="nofollow" class="external" title="Condividi su Facebook">Condividi su Facebook</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=sIFR%3A+come+installare+e+configurare+correttamente+il+font+replacement+-+http://b2l.me/gwbmv&amp;source=shareaholic" rel="nofollow" class="external" title="Tweetalo!">Tweetalo!</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.paitadesign.com/blog/sifr-come-installare-e-configurare-correttamente-il-font-replacement/&amp;title=sIFR%3A+come+installare+e+configurare+correttamente+il+font+replacement" rel="nofollow" class="external" title="Condividi su del.icio.us">Condividi su del.icio.us</a>
		</li>
		<li class="shr-mail">
			<a href="mailto:?subject=%22sIFR%3A%20come%20installare%20e%20configurare%20correttamente%20il%20font%20replacement%22&amp;body=Link: http://www.paitadesign.com/blog/sifr-come-installare-e-configurare-correttamente-il-font-replacement/ (inviato con shareaholic)%0D%0A%0D%0A----%0D%0A sIFR3%20%28Javascript%20%2B%20Flash%29%20permette%20di%20visualizzare%20dinamicamente%20il%20testo%20utilizzando%20Flashe%20e%20permette%20di%20essere%20sicuri%20che%20il%20sito%20sia%20visbile%20allo%20stesso%20modo%20sui%20maggiori%20browser%2C%20in%20modo%20morbido%20e%20dettagliato.%20Il%20testo%20poi%20%C3%A8%20selezionabile%20e%20di%20fatto%20rimane%20HTML.%20" rel="nofollow" class="external" title="Vuoi segnalarlo via mail ad un amico?">Vuoi segnalarlo via mail ad un amico?</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.paitadesign.com/blog/sifr-come-installare-e-configurare-correttamente-il-font-replacement/&amp;title=sIFR%3A+come+installare+e+configurare+correttamente+il+font+replacement&amp;summary=sIFR3%20%28Javascript%20%2B%20Flash%29%20permette%20di%20visualizzare%20dinamicamente%20il%20testo%20utilizzando%20Flashe%20e%20permette%20di%20essere%20sicuri%20che%20il%20sito%20sia%20visbile%20allo%20stesso%20modo%20sui%20maggiori%20browser%2C%20in%20modo%20morbido%20e%20dettagliato.%20Il%20testo%20poi%20%C3%A8%20selezionabile%20e%20di%20fatto%20rimane%20HTML.%20&amp;source=paitadesignblog" rel="nofollow" class="external" title="Condividi su LinkedIn">Condividi su LinkedIn</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=sIFR%3A+come+installare+e+configurare+correttamente+il+font+replacement&amp;body=Link: http://www.paitadesign.com/blog/sifr-come-installare-e-configurare-correttamente-il-font-replacement/ (inviato con shareaholic)%0D%0A%0D%0A----%0D%0A sIFR3%20%28Javascript%20%2B%20Flash%29%20permette%20di%20visualizzare%20dinamicamente%20il%20testo%20utilizzando%20Flashe%20e%20permette%20di%20essere%20sicuri%20che%20il%20sito%20sia%20visbile%20allo%20stesso%20modo%20sui%20maggiori%20browser%2C%20in%20modo%20morbido%20e%20dettagliato.%20Il%20testo%20poi%20%C3%A8%20selezionabile%20e%20di%20fatto%20rimane%20HTML.%20" rel="nofollow" class="external" title="Manda email con Gmail">Manda email con Gmail</a>
		</li>
		<li class="shr-comfeed">
			<a href="http://www.paitadesign.com/blog/sifr-come-installare-e-configurare-correttamente-il-font-replacement/feed" rel="nofollow" class="external" title="Vuoi iscriverti ai commenti per questo post?">Vuoi iscriverti ai commenti per questo post?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>



<p>Articoli correlati:</p><ol><li><a href='http://www.paitadesign.com/blog/come-installare-il-font-rendering-del-mac-su-pc/' rel='bookmark' title='Permanent Link: GDI++: come installare il font rendering del Mac su Pc'>GDI++: come installare il font rendering del Mac su Pc</a></li>
<li><a href='http://www.paitadesign.com/blog/convertire-i-file-illustrator-in-html5-canvas/' rel='bookmark' title='Permanent Link: AI to Canvas: utilizzare subito HTML5 Canvas!'>AI to Canvas: utilizzare subito HTML5 Canvas!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.paitadesign.com/blog/sifr-come-installare-e-configurare-correttamente-il-font-replacement/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

