<?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; jQuery</title>
	<atom:link href="http://www.paitadesign.com/blog/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paitadesign.com/blog</link>
	<description>HTML, CSS e tutto il resto</description>
	<lastBuildDate>Tue, 17 Aug 2010 22:24:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<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_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&agrave;</em> e <em>flessibilit&agrave;</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&ugrave; 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 &#038;&#038; $.browser.version <= 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;= &quot;1.8&quot; )
</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(&quot;contextmenu&quot;,function(e){
	return false;
 });</pre>
<h2>Verifichiamo che un elemento esista in jQuery...</h2>
<pre name="codice" class="javascript">if ($('#id').length) {
 // fai questo e quello
 }</pre>
<h2>...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&ograve; impatta sulle prestazioni. <br />
Grazie al metodo <code>$.getScript</code>, ecco una <a href="http://www.kevinleary.net/external-javascript-on-demand-with-getscript/" title="jQuery External JavaScript" target="_blank">soluzione elegante</a> a questo problema.</p>
<pre name="codice" class="javascript">
if ($('a.email').length > 0){
	$.getScript('js/jquery.mailto.js',function(){
		$('a.email').mailto();
	});
}</pre>
<h2>Eseguire solo ci&ograve; che serve veramente</h2>
<p>Ogni programmatore/webdesigner per comodit&agrave; di solito scrive tutto il codice JS per il sito web in un unico file.<br />
jQuery per&ograve; impiega tempo per cercare gli elementi nella pagina, anche se non esistono, e questo rallenta le cose. Ci sono due modi con cui &egrave; possibile aggirare questa situazione terribile. Quella pi&ugrave; semplice &egrave; quello mettere un ID al  tag body (il nome della pagina, ad esempio) ed eseguire il codice necessario per quell'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&igrave; via
});</pre>
<h2>Modalità non conflittuale</h2>
<p>Per evitare conflitti quando si utilizzano pi&ugrave; framework in un sito web, &egrave; 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'icona per link diversi</h2>
<p>Questo trucco &egrave; molto semplice e utile per l'usabilit&agrave;. Se i link portano a siti Web esterni, vogliamo che una immagine venga visualizzata accanto al link, cos&igrave; 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
		$(&quot;a[href$='.pdf']&quot;).addClass(&quot;pdf&quot;);
// Link a documenti (doc, rtf, txt)
		$(&quot;a[href$='.doc'], a[href$='.txt'], a[href$='.rft']&quot;).addClass(&quot;txt&quot;);
// Link ad archivi compressi (zip, rar)
		$(&quot;a[href$='.zip'], a[href$='.rar']&quot;).addClass(&quot;zip&quot;);
// Email link
		$(&quot;a[href^='mailto:']&quot;).addClass(&quot;email&quot;);
//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(&quot;external&quot;);
//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(&quot;external&quot;).attr(&quot;target&quot;, &quot;_blank&quot;);
*/</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&agrave; pi&ugrave; validato!):</p>
<pre name="codice" class="xhtml">&lt;div class=&quot;clickable&quot; url=&quot;http://google.com&quot;&gt;
	Contenuto del div
&lt;/div&gt;</pre>
<p>Ecco come fare:</p>
<pre name="codice" class="javascript">$(&quot;div.clickable&quot;).click(
function()
	{
  window.location = $(this).attr(&quot;url&quot;);
});</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'altro. Quindi, &egrave; 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 &egrave; facile  animare tutte le voci di un men&ugrave; 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({&quot;height&quot;: 100}, &quot;slow&quot;);
});
</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 &egrave; 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({ &quot;width&quot;: 200 }, &quot;slow&quot;);
   $(this).animate({&quot;height&quot;: 200}, &quot;slow&quot;);
});</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&igrave;:</p>
<pre name="codice" class="javascript">
$('#mioBox').mouseover(function() {
	$(this).animate({ &quot;width&quot;: 200, &quot;height&quot;: 200 }, &quot;slow&quot;);
});</pre>
<p>&Egrave; possibile animare qualsiasi propriet&agrave; che sia numerica. &Egrave; per&ograve; possibile scaricare un <a href="http://www.paitadesign.com/examples/jquery-trucchi-e-consigli/jquery.color.js" target="_blank" title="jQuery color plugin">plugin</a> per animare le propriet&agrave; 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'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>...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=&quot;#top&quot;&gt;Torna a inizio pagina&lt;/a&gt;</pre>
<p>...e settiamo l'animazione cos&igrave;:</p>
<pre name="codice" class="javascript">
$('a[href=#top]').click(function(){
	$('html, body').animate({scrollTop:0}, 'slow');
	return false;
});</pre>
<h2>Come personalizzare le liste</h2>
<p>Aggiungiamo a ogni <code>list-item</code> ,per esempio, l'elemento &quot;<code>&raquo;&quot;:</code></p>
<pre name="codice" class="javascript">
$(&quot;ul&quot;).addClass(&quot;Replaced&quot;);
$(&quot;ul &gt; li&quot;).prepend(&quot;&raquo;&quot;);
 </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 &quot;style-switch&quot; in modo che i navigatori del nostro sito possano scegliere, per esempio, tra uno stile ad alto contrasto e uno stile di stampa? E' molto facile da fare: quello che ci serve &egrave; 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=&quot;StyleContrast&quot; href=&quot;#&quot;&gt;Contrast&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a id=&quot;StylePrint&quot; href=&quot;#&quot;&gt;Print&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a id=&quot;StyleNormal&quot; href=&quot;#&quot;&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">
$(&quot;#StyleContrast&quot;).click(function() {
	$(&quot;link[media='screen']&quot;).attr(&quot;href&quot;, &quot;Contrast.css&quot;);
  });
$(&quot;#StylePrint&quot;).click(function() {
	$(&quot;link[media='screen']&quot;).attr(&quot;href&quot;, &quot;Print.css&quot;);
});
$(&quot;#StyleNormal&quot;).click(function() {
	$(&quot;link[@media='screen']&quot;).attr(&quot;href&quot;, &quot;Normal.css&quot;);
});</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'input &egrave; in focus, e ricompare se il focus &egrave; perso senza alcun input:</p>
<pre name="codice" class="xhtml">&lt;form action=&quot;#&quot; method=&quot;post&quot;&gt;
	&lt;input id=&quot;SearchText&quot; name=&quot;text&quot; /&gt;
  &lt;button&gt;Cerca&lt;/button&gt;
&lt;/form&gt;</pre>
<p>Dato che questo compito pu&ograve; essere usato in diverse situazioni, &egrave; una buona idea scrivere una funzione riutilizzabile. Il primo parametro &egrave; un selettore (nel nostro caso &quot;#Testo di ricerca&quot;, ma qualcosa come &quot;input[@name=search]&quot; potrebbe andare bene), il secondo parametro &egrave; il nuovo valore predefinito di tale elemento di input (ad esempio &quot;Inserisci i termini di ricerca qui ..&quot;).</p>
<pre name="codice" class="javascript">function populateElement(selector, defvalue) {
 $(selector).each(function() {
         if($.trim(this.value) == &quot;&quot;) {
                     this.value = defvalue;
         }
})
 $(selector).focus(function() {
        if(this.value == defvalue) {
                    this.value = &quot;&quot;;
         }
});
$(selector).blur(function() {
        if($.trim(this.value) == &quot;&quot;) {
        this.value = defvalue;
        }
      });
}</pre>
<p>Nel nostro caso particolare il codice JavaScript potrebbe apparire cos&igrave;:</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&agrave; in cima alla pagina. La ragione di questo comportamento &egrave; la presenza del simbolo #. </p>
<pre name="codice" class="xhtml">
&lt;a href=&quot;#&quot; id=&quot;chiudi&quot;&gt;&lt;/a&gt;
</pre>
<p>Per risolvere questo problema, &egrave; 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 &egrave; una delle pi&ugrave; usate funzionalit&agrave; in una pagina web, cio&egrave; la possibilit&agrave; di permettere all'utente aumentare/diminuire la dimensione del carattere. <br />
Siamo in grado di specificare l'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');
  $(&quot;.resetFont&quot;).click(function(){
  $(section).css('font-size', originalFontSize);
  });

  //Aumentiamo il font-size
  $(&quot;.increaseFont&quot;).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
  $(&quot;.decreaseFont&quot;).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=&quot;increaseFont&quot;&gt;+&lt;/a&gt; |
		&lt;a class=&quot;decreaseFont&quot;&gt;-&lt;/a&gt; |
		&lt;a class=&quot;resetFont&quot;&gt;=&lt;/a&gt;
&lt;/div&gt;
	&lt;span&gt;Questo font pu&ograve; cambiare di dimensione&lt;/span&gt;
  &lt;div class=&quot;section1&quot;&gt;Questa sezione non cambia il font!&lt;/div&gt;
  &lt;div class=&quot;section2&quot;&gt;Questa invece s&igrave;!&lt;/div&gt;
&nbsp;</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, &quot;&quot;));</pre>
<h2>Ottimizziamo l'uso dei Plugin</h2>
<p>I plugin di jQuery devono essere inclusi nella pagina principale dopo il core <code>jquery.js,</code> cos&igrave;:</p>
<pre name="codice" class="javascript">&lt;script type=&quot;text/javascript&quot; src=&quot;jquery-core.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.plugin-1.0.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.plugin-2.4.js&quot;&gt;&lt;/script&gt;</pre>
<p>Il metodo migliore per&ograve; &egrave; 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 <i>dentro</i> un elemento</h2>
<p>Il metodo <code>.append()</code> inserisce il contenuto specificato come l'<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 &egrave; nella sintassi, in particolare, nel posizionamento dei contenuti e di destinazione.<br />
Con <code>append()</code>, l'espressione che precede il metodo di selezione &egrave; il <strong>contenitore</strong> in cui &egrave; 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 &egrave; inserita nel <strong>contenitore di destinazione</strong>. Ecco cosa scrivere:</p>
<pre name="codice" class="javascript">$('#questoDiv').append(&quot;&lt;b&gt;testo inserito&lt;/b&gt;&quot;);</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 <i>dopo</i> 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&ugrave; effetti in jQuery per animare e rimuovere un elemento dal DOM:</p>
<pre name="codice" class="javascript">$(&quot;#myButton&quot;).click(function() {
        $(&quot;#myDiv&quot;).fadeTo(&quot;slow&quot;, 0.01, function(){ //fade
            $(this).slideUp(&quot;slow&quot;, function() { //slide up
            $(this).remove(); //e rimozione dal DOM
        });
});
});</pre>
<h2>...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&igrave;, se non riusciamo a risalire a che cosa sta causando gli errori, &egrave; possibile utilizzare questo strumento online gratuito: <a href="http://www.jslint.com/" title="The JavaScript Code Quality Tool" target="_blank">JSLint</a></p>
<div class="resources">
<h2>Letture consigliate</h2>
<p><a class="hotLink" href="http://addyosmani.com/blog/50-jquery-snippets-for-developers/" title="50 jQuery Snippets That Will Help You Become A Better JavaScript Developer" target="_blank">http://addyosmani.com/blog/50-jquery-snippets-for-developers/</a><br />
<a class="hotLink" target="_blank" href="http://net.tutsplus.com/tutorials/javascript-ajax/20-helpful-jquery-methods-you-should-be-using/" title="20 Helpful jQuery Methods you Should be Using">20 Helpful jQuery Methods you Should be Using</a><br />
<a target="_blank" href="http://viralpatel.net/blogs/2009/08/20-top-jquery-tips-tricks-for-jquery-programmers.html" title="very useful jQuery Tips and Tricks for all jQuery developers">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 target="_blank" href="http://johannburkard.de/blog/programming/javascript/6-quick-jquery-tips-text-manipulation-timers-and-elements.html">6 quick jQuery tips: Text manipulation, timers and elements</a><br />
<a target="_blank" href="http://www.noupe.com/tutorial/51-best-of-jquery-tutorials-and-examples.html">51+ Best of jQuery Tutorials and Examples</a><br />
<a target="_blank" href="http://www.queness.com/post/172/jquery-tips-and-tricks-ii">jQuery Tips and Tricks II</a><br />
<a target="_blank" href="http://www.learningjquery.com/2007/02/quick-tip-set-hover-class-for-anything">Quick Tip – Set Hover Class for Anything</a><br />
<a target="_blank" href="http://stackoverflow.com/questions/180211/jquery-div-click-with-anchors">jQuery DIV click, with anchors</a><br />
<a target="_blank" href="http://jquery-howto.blogspot.com/">JQuery HowTo</a><br />
<a target="_blank" href="http://www.queness.com/post/237/30-javascript-menu-plugins-and-scripts">30 Javascript Menu Plugins and Scripts</a><br />
<a target="_blank" href="http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx">Improve your jQuery - 25 excellent tips</a><br />
<a target="_blank" href="http://desizntech.info/2009/06/playing-with-jquery-color-plugin-and-color-animation/" class="hotLink">Playing with jQuery Color Plugin and Color Animation</a><br />
<a target="_blank" href="http://www.incg.nl/blog/2008/hover-block-jquery/" title="Animate a hover with jQuery" class="hotLink">Animate a hover with jQuery</a><br />
<a target="_blank" href="http://www.electrictoolbox.com/jquery-scroll-top/">Scroll to the top of a webpage with jQuery</a><br />
<a target="_blank" href="http://docs.jquery.com/Tutorials:5_Quick_jQuery_Tips">Tutorials:5 Quick jQuery Tips</a><br />
<a target="_blank" href="http://www.queness.com/post/126/useful-and-handy-jquery-tips-and-tricks">Useful and Handy jQuery Tips and Tricks</a><br />
<a target="_blank" href="http://johannburkard.de/blog/programming/javascript/6-fast-jQuery-Tips-More-basic-Snippets.html" title="6 fast jQuery Tips: More basic Snippets">6 fast jQuery Tips: More basic Snippets</a><br />
<a target="_blank" href="http://johannburkard.de/blog/programming/javascript/6-quick-jquery-tips-text-manipulation-timers-and-elements.html" title="6 quick jQuery tips: Text manipulation, timers and elements">6 quick jQuery tips: Text manipulation, timers and elements</a><br />
<a target="_blank" href="http://www.myinkblog.com/2009/08/04/10-tips-for-writing-better-jquery-code/" title="10 Tips for Writing Better jQuery Code">10 Tips for Writing Better jQuery Code</a>
</div>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-sexy">
<ul class="socials">
		<li class="sexy-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="" class="external" title="Condividi suFacebook">Condividi suFacebook</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/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="" class="external" title="Condividi sudel.icio.us">Condividi sudel.icio.us</a>
		</li>
		<li class="sexy-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%20si%20dimostra%20molto%20utile%20per%20per%20tutti%20gli%20sviluppatori%20e%20i%20web%20designer%20che%20vogliano%20dare%20maggiore%20usabilit%26agrave%3B%20e%20flessibilit%26agrave%3B%20a%20ogni%20progetto%20web%20che%20stanno%20seguendo.%20Questo%20framework%20si%20rivela%20straordinario%20sia%20per%20i%20progetti%20di%20grosse%20dimensioni%2C%20sia%20per%20i%20siti%20pi%26ugrave%3B%20modest&amp;source=paitadesignblog" rel="" class="external" title="Condividi suLinkedIn">Condividi suLinkedIn</a>
		</li>
		<li class="sexy-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+(via+@paitadesign)" rel="" class="external" title="Tweetalo!">Tweetalo!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22jQuery%20e%20Web%20Designer%3A%2020%2B%20consigli%20utili%20e%20trucchi%20per%20tutti%20i%20siti%21%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22jQuery%20si%20dimostra%20molto%20utile%20per%20per%20tutti%20gli%20sviluppatori%20e%20i%20web%20designer%20che%20vogliano%20dare%20maggiore%20usabilit%26agrave%3B%20e%20flessibilit%26agrave%3B%20a%20ogni%20progetto%20web%20che%20stanno%20seguendo.%20Questo%20framework%20si%20rivela%20straordinario%20sia%20per%20i%20progetti%20di%20grosse%20dimensioni%2C%20sia%20per%20i%20siti%20pi%26ugrave%3B%20modest%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/" rel="" class="external" title="Vuoi segnalarlo via mail ad un amico?">Vuoi segnalarlo via mail ad un amico?</a>
		</li>
		<li class="sexy-myspace">
			<a href="http://www.myspace.com/Modules/PostTo/Pages/?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="" class="external" title="Pubblicalo suMySpace">Pubblicalo suMySpace</a>
		</li>
		<li class="sexy-comfeed">
			<a href="http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/feed" rel="" 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>
<!-- End SexyBookmarks Menu Code -->



<p>Articoli correlati:</p><ol><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>0</slash:comments>
		</item>
		<item>
		<title>CSS3 Columns e jQuery: layout multi-colonne ad altezza pari</title>
		<link>http://www.paitadesign.com/blog/css3-jquery-columns-layout-multi-colonne/</link>
		<comments>http://www.paitadesign.com/blog/css3-jquery-columns-layout-multi-colonne/#comments</comments>
		<pubDate>Sun, 02 May 2010 10:11:00 +0000</pubDate>
		<dc:creator>Giacomo Paita</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[css3]]></category>

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


Articoli correlati:<ol><li><a href='http://www.paitadesign.com/blog/web-design-griglie-grid-layout/' rel='bookmark' title='Permanent Link: Web design e griglie: progettiamo grid layout!'>Web design e griglie: progettiamo grid layout!</a></li>
<li><a href='http://www.paitadesign.com/blog/css-e-float-blocchi-flottanti-e-altezza-del-contenitore-le-soluzioni/' rel='bookmark' title='Permanent Link: CSS e float: blocchi flottanti e altezza del contenitore. Le soluzioni'>CSS e float: blocchi flottanti e altezza del contenitore. Le soluzioni</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>Vi &egrave; mai capitato di voler ottenere tramite CSS un layout che ricordi quello dei <strong>tradizionali quotidiani cartacei</strong>? Per chi volesse cimentarsi con i CSS3, sono gi&agrave; a disposizione alcuni <a href="http://pelfusion.com/tools/7-useful-css3-code-generators/" title="7 Useful CSS3 Code Generators" target="_blank">generatori di CSS3</a> che consentono di testare uno dei <a target="_blank" href="http://www.w3.org/TR/css3-multicol/">nuovi   moduli</a> che <a href="http://www.css3.info/preview/multi-column-layout/" title="Multi-column layout" target="_blank">dispone il testo   su pi&ugrave; colonne</a>: CSS <strong>multi-columns</strong><br />
  Vediamo di seguito come funziona questo modulo e quali sono i <em>browser compatibili con <strong>CSS3 Columns</strong></em>.</p>
<p><span id="more-512"></span></p>
<h2>CSS3 Columns</h2>
<p>Attualmente solo Firefox, Safari e Chrome sono compatibili con il multi-columns. Mozilla utilizza il prefisso speciale <code>moz-</code>, mentre l&#8217;implementazione per Safari utilizza il prefisso <code>-webkit</code>, che abbinati alle regole   ufficiali, permettono di creare <strong>layout multi-columns</strong>:</p>
<pre name="codice" class="css">.columns {
  -moz-column-count: 3;
  -moz-column-gap: 1em;
  -moz-column-rule: 1px solid black;
  -webkit-column-count: 3;
  -webkit-column-gap: 1em;
  -webkit-column-rule: 1px solid black;
  column-count: 3;
  column-gap: 1em;
  column-rule: 1px solid black;
}
</pre>
<p>I browser ad oggi compatibili sono:</p>
<ul class="browserList">
<li id="browserFirefox" >Firefox 1.5+</li>
<li id="browserSafari">Safari 3+</li>
<li id="browserChrome">Chrome</li>
<li id="browserIE9">IE 9</li>
</ul>
<div style="clear:both;"></div>
<p>Di seguito  nel dettaglio ecco cosa abbiamo appena specificato per <a href="http://paitadesign.com/examples/jQuery-e-le-colonne-multi-column-CSS3-e-altezza-uguale/CSS3-Columns-layout-a-colonne-tramite-css.html" target="_blank" title="CSS3 Multi-column Layout Module" >dividere il layout in colonne</a>.</p>
<div id="assetPanel"> <a class="assetCode" title="Scarica tutte le risorse per questo tutorial"href="http://www.paitadesign.com/examples/jQuery-e-le-colonne-multi-column-CSS3-e-altezza-uguale/jQuery-multi-column-CSS3-risorse.zip" target="_blank">Risorse</a><a class="assetDemo" title="Visualizza il risultato finale" href="http://paitadesign.com/examples/jQuery-e-le-colonne-multi-column-CSS3-e-altezza-uguale/CSS3-Columns-layout-a-colonne-tramite-css.html" target="_blank">Demo</a> </div>
<h3>Column-count: come definire il numero di colonne</h3>
<p>Abbiamo impostato <code>column-count:3</code> per dividere il <code>div</code> che contiene il testo in tre colonne di <em>uguale larghezza</em>. Abbiamo inoltre specificato uno spazio tra le colonne, il <code>column-gap:1em</code>, che agisce come la propriet&agrave; <code>padding</code>, aumentando notevolmente la leggibilit&agrave;. Notiamo che l&#8217;<em>altezza delle colonne</em> si adatta al contenuto di testo e che, aumentando il numero dei caratteri o la dimensione del testo, essa si adatter&agrave; per contenerlo. Di seguito il codice CSS3 che dovremo scrivere:</p>
<pre name="codice" class="css">
  column-count: 3;
  column-gap: 1em;
</pre>
<h3>Column-width: impostare la larghezza delle colonne</h3>
<p>Un altro modo per <em>definire le colonne</em> &egrave; impostare solo il <code>column-width</code> (e, come per l&#8217;esempio precedente, il <code>column-gap</code>). Per esempio, defininendo un <code>column-width</code> di 200px, tutte le colonne avranno 200 pixel di larghezza: il browser calcola di conseguenza quante colonne di questa larghezza possono inserirsi nell&#8217;elemento contenitore, e le crea in base a questo valore. Anche in questo caso, l&#8217;altezza delle colonne &egrave; definita dal contenuto testuale. Ecco cosa dobbiamo scrivere:</p>
<pre name="codice" class="css">
  column-width: 200px;
  column-gap: 1em;
</pre>
<h3>Column-rule: dividere le colonne con dei filetti</h3>
<p>La propriet&agrave; <code>column-rule</code> agisce come una sorta di <code>border</code> tra le colonne. Questa regola ha infatti le stesse propriet&agrave; del <code>border</code>: (larghezza, stile e colore), e come per esso, possono essere scritte tramite &quot;shorthand&quot;:</p>
<pre name="codice" class="css">
/*Shorthand per column-rule*/
column-rule:1px solid black;
/*che equivale a:*/
column-rule-color: #000;
column-rule-style: solid;
column-rule-width: 1px;</pre>
<h3 id="link4">Column-span: intestazione su pi&ugrave; colonne</h3>
<p>Questa propriet&agrave; non &egrave; ancora supportata da nessun browser. <br />
  Ecco cosa imposteremo nei fogli di stile con la regola CSS3 per espandere il titolo su pi&ugrave; colonne::</p>
<pre name="codice" class="css">/*Settiamo il numero delle colonne: n | all*/
column-span: all;</pre>
<h2>Colonne CSS3 cross-browser: Columnizer jQuery</h2>
<p>Come abbiamo potuto notare, siamo ancora lontani dal poter utilizzare nella pratica la propriet&agrave; <strong>CSS3 multi-columns</strong>. Il framework jQuery ci mette per&ograve; a disposizione un plugin che fa esattamente quanto abbiamo visto fin&#8217;ora. Ecco cosa dobbiamo fare: scarichiamo <a href="http://www.paitadesign.com/examples/jQuery-e-le-colonne-multi-column-CSS3-e-altezza-uguale/jquery.autocolumn.min.js" title="JavaScript events that were attached to content before it was columnized are now preserved for non-IE browsers." target="_blank">Columnizer jQuery Plugin </a> e colleghiamolo alla nostra <a href="http://www.paitadesign.com/examples/jQuery-e-le-colonne-multi-column-CSS3-e-altezza-uguale/CSS3-e-jQuery-Columns-layout-a-colonne.html" target="_blank">pagina HTML da dividere in colonne</a>, cos&igrave;:</p>
<pre name="codice" class="xhtml">&lt;script type=&quot;text/javascript&quot; src=&quot;script/jquery-1.4.2.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;script/jquery.autocolumn.min.js&quot;&gt;&lt;/script&gt;  </pre>
<p>Scriviamo poi in pagina il nostro contenuto, agganciandovi una classe, per esempio <code>columns</code>:</p>
<pre name="codice" class="xhtml">&lt;h1&gt;CSS3 e jQuery multi-column module&lt;/h1&gt;
&lt;div class=&quot;columns&quot;&gt;
  &lt;p&gt;The Columnizer jQuery Plugin will automatically layout your content
  in newspaper column format. You can specify either column width or a static
  number of columns. And, of course, it&rsquo;s easy to use!&lt;/p&gt;
&lt;/div&gt;  </pre>
<p>Adesso agganciamo il plugin a questa classe, cos&igrave;:</p>
<pre name="codice" class="javascript">$(document).ready (function() {
  $('.columns').columnize({columns:2});
});</pre>
<p>Ecco cosa succede: il plugin suddivide il contenuto in <code>div</code> ai quali assegna una classe <code>column</code>: alla prima aggancia la classe <code>first</code>, all&#8217;ultima la classe <code>last</code>.</p>
<h2>jQuery e le colonne ad altezza uguale</h2>
<p>Terminiamo con un ottima funzione che permette di impostare <a href="http://paitadesign.com/examples/jQuery-e-le-colonne-multi-column-CSS3-e-altezza-uguale/jQuery-colonne-altezza-uguale.html" target="_blank" title="uguale altezza per elementi flottanti">uguale altezza per elementi flottanti</a>, semplicemente includendo questo script e agganciandolo al <code>.mioElementoFloattante</code>:</p>
<pre name="codice" class="javascript">$(document).ready(function(){
function equalHeight(group) {
   tallest = 0;
   group.each(function() {
      thisHeight = $(this).height();
      if(thisHeight &gt; tallest) {
         tallest = thisHeight;
      }
   });
   group.height(tallest);
} ;
equalHeight($(&quot;.mioElementoFloattante&quot;));

});
 </pre>
<p>Di questa funzione &egrave; stato realizzato anche un <a href="http://www.cssnewbie.com/equalheights-jquery-plugin/" title="The EqualHeights jQuery Plugin" target="_blank">plugin</a>.</p>
<div class="resources">
<h3>Letture consigliate</h3>
<p><a href="http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-the-multi-column-css3-module/" title="Quick Tip: The Multi-Column CSS3 Module " target="_blank">NetTuts: Quick Tip: The Multi-Column CSS3 Module </a><br />
  <a href="http://www.stuffandnonsense.co.uk/archives/css3_multi-column_thriller.html">CSS3 Multi-Column Thriller</a> <br />
  <a class="hotLink" href="http://www.quirksmode.org/css/multicolumn.html">CSS3 Multi-column layout module</a><br />
  <a href="http://www.sohtanaka.com/web-design/smart-columns-w-css-jquery/">Smart Columns w/ CSS &amp; jQuery</a> <br />
  <a href="http://www.onsitus.it/css3/multi-column/" title="CSS3 multi-column" target="_blank">CSS3 multi-column: pagina di test</a><br />
  <a href="http://www.css3.info/preview/multi-column-layout/" title="CSS3 Previews" target="_blank">Multi-column layout: CSS3 Previews</a><br />
  <a href="http://www.w3.org/TR/css3-multicol/#cw" title="W3C Candidate Recommendation 17 December 2009" target="_blank">W3C Multi column</a><br />
  <a href="http://www.zenelements.com/blog/css3-multiple-columns/" title="CSS3 multiple columns" target="_blank">CSS3 multiple columns</a><br />
  <a href="http://www.alistapart.com/articles/css3multicolumn" title=" css3 multicolumn" target="_blank">A list apart: css3 multicolumn</a><br />
  <a href="http://www.cssnewbie.com/equal-height-columns-with-jquery/" title="Equal Height Columns with jQuery" target="_blank">Equal Height Columns with jQuery</a><br />
<a href="http://codeasily.com/jquery/multi-column-list-with-jquery" title="Multi Column List with jQuery" target="_blank">Few-column list</a> <br />
<a href="http://css.html.it/articoli/leggi/3000/implementare-i-css3-con-jquery/5/" title="Implementare i CSS3 con jQuery" target="_blank">Implementare i CSS3 con jQuery</a></div>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-sexy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.paitadesign.com/blog/css3-jquery-columns-layout-multi-colonne/&amp;t=CSS3+Columns+e+jQuery%3A+layout+multi-colonne+ad+altezza+pari" rel="" class="external" title="Condividi suFacebook">Condividi suFacebook</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://www.paitadesign.com/blog/css3-jquery-columns-layout-multi-colonne/&amp;title=CSS3+Columns+e+jQuery%3A+layout+multi-colonne+ad+altezza+pari" rel="" class="external" title="Condividi sudel.icio.us">Condividi sudel.icio.us</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.paitadesign.com/blog/css3-jquery-columns-layout-multi-colonne/&amp;title=CSS3+Columns+e+jQuery%3A+layout+multi-colonne+ad+altezza+pari&amp;summary=Vi%20%26egrave%3B%20mai%20capitato%20di%20voler%20ottenere%20tramite%20CSS%20un%20layout%20che%20ricordi%20quello%20dei%20tradizionali%20quotidiani%20cartacei%3F%20Per%20chi%20volesse%20cimentarsi%20con%20i%20CSS3%2C%20sono%20gi%26agrave%3B%20a%20disposizione%20alcuni%20generatori%20di%20CSS3%20che%20consentono%20di%20testare%20uno%20dei%20nuovi%20%20%20moduli%20che%20dispone%20il%20testo%20%20%20su%20pi%26ugra&amp;source=paitadesignblog" rel="" class="external" title="Condividi suLinkedIn">Condividi suLinkedIn</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=CSS3+Columns+e+jQuery%3A+layout+multi-colonne+ad+altezza+pari+-+http://b2l.me/sejnc+(via+@paitadesign)" rel="" class="external" title="Tweetalo!">Tweetalo!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22CSS3%20Columns%20e%20jQuery%3A%20layout%20multi-colonne%20ad%20altezza%20pari%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22Vi%20%26egrave%3B%20mai%20capitato%20di%20voler%20ottenere%20tramite%20CSS%20un%20layout%20che%20ricordi%20quello%20dei%20tradizionali%20quotidiani%20cartacei%3F%20Per%20chi%20volesse%20cimentarsi%20con%20i%20CSS3%2C%20sono%20gi%26agrave%3B%20a%20disposizione%20alcuni%20generatori%20di%20CSS3%20che%20consentono%20di%20testare%20uno%20dei%20nuovi%20%20%20moduli%20che%20dispone%20il%20testo%20%20%20su%20pi%26ugra%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://www.paitadesign.com/blog/css3-jquery-columns-layout-multi-colonne/" rel="" class="external" title="Vuoi segnalarlo via mail ad un amico?">Vuoi segnalarlo via mail ad un amico?</a>
		</li>
		<li class="sexy-myspace">
			<a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http://www.paitadesign.com/blog/css3-jquery-columns-layout-multi-colonne/&amp;t=CSS3+Columns+e+jQuery%3A+layout+multi-colonne+ad+altezza+pari" rel="" class="external" title="Pubblicalo suMySpace">Pubblicalo suMySpace</a>
		</li>
		<li class="sexy-comfeed">
			<a href="http://www.paitadesign.com/blog/css3-jquery-columns-layout-multi-colonne/feed" rel="" 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>
<!-- End SexyBookmarks Menu Code -->



<p>Articoli correlati:</p><ol><li><a href='http://www.paitadesign.com/blog/web-design-griglie-grid-layout/' rel='bookmark' title='Permanent Link: Web design e griglie: progettiamo grid layout!'>Web design e griglie: progettiamo grid layout!</a></li>
<li><a href='http://www.paitadesign.com/blog/css-e-float-blocchi-flottanti-e-altezza-del-contenitore-le-soluzioni/' rel='bookmark' title='Permanent Link: CSS e float: blocchi flottanti e altezza del contenitore. Le soluzioni'>CSS e float: blocchi flottanti e altezza del contenitore. Le soluzioni</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/css3-jquery-columns-layout-multi-colonne/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jQuery: imparare le basi con toggle. Mostra e nascondi con stile!</title>
		<link>http://www.paitadesign.com/blog/jquery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/</link>
		<comments>http://www.paitadesign.com/blog/jquery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 10:31:40 +0000</pubDate>
		<dc:creator>Giacomo Paita</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[toggle]]></category>
		<category><![CDATA[Webdesign]]></category>

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


Articoli correlati:<ol><li><a href='http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/' rel='bookmark' title='Permanent Link: jQuery e Web Designer: 20+ consigli utili e trucchi per tutti i siti!'>jQuery e Web Designer: 20+ consigli utili e trucchi per tutti i siti!</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>
<li><a href='http://www.paitadesign.com/blog/php-e-css-come-evidenziare-la-pagina-corrente-nel-menu-di-navigazione/' rel='bookmark' title='Permanent Link: PHP CSS o jQuery: come evidenziare la pagina corrente nel menù di navigazione'>PHP CSS o jQuery: come evidenziare la pagina corrente nel menù di navigazione</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Le pagine web che siamo abituati a navigare fanno ormai un uso notevole di animazioni e di effetti, resi possibili, anche, dall&#8217;utilizzo del linguaggio <a href="http://it.wikipedia.org/wiki/JavaScript" title="JavaScript è un linguaggio di scripting orientato agli oggetti" target="_blank">JavaScript</a>. <br />
  Dopo anni di cattiva reputazione, perch&egrave; associato all&#8217;idea di popup invasivi e fraudolenti, &egrave; stato   particolarmente rivalutato anche grazie alla   diffusione di tecniche come <acronym title="Asynchronous JavaScript and XML">AJAX</acronym> e alla possibilit&agrave; sempre pi&ugrave; estesa di   riprodurre effetti grafici dinamici senza la necessit&agrave; di plugin come   Flash.</p>
<p><span id="more-327"></span></p>
<p>La caratteristica principale di JavaScript &egrave; quella di essere un <a href="http://it.wikipedia.org/wiki/Linguaggio_interpretato" title="Linguaggio interpretato">linguaggio interpretato</a>. Il codice quindi non viene compilato, bens&igrave; c&#8217;&egrave; un interprete incluso nel browser, e dato che ognuno (ma soprattutto IE) interpreta con specifiche ed eccezioni proprie, &egrave; spesso   impossibile essere certi del funzionamento cross-browser di uno script. <br />
  In risposta a questi problemi sono nati progetti di librerie (o meglio <strong>framework</strong>)   in grado di garantire il funzionamento cross-browser degli script e di   estendere o comunque facilitare le funzioni native di JavaScript. 
</p>
<h2>Cos&#8217;&egrave; jQuery?</h2>
<p> Proprio per &ldquo;facilitare&rdquo; la creazione di pagine web, nel 2006 <a href="http://ejohn.org/about/" title="John Resig is a JavaScript Evangelist for Mozilla and the creator of jQuery" target="_blank">John Resig</a> pubblic&ograve; la prima versione del suo ormai famosissimo framework: <a href="http://jquery.org/" title="jQuery Project" target="_blank">jQuery</a>.<br />
jQuery nasce quindi con lo scopo di risolvere tali problemi e di fornire uno strumento che potesse <strong>velocizzare  la stesura del codice</strong>. Ed &egrave; cos&igrave; che &egrave; diventato il framework pi&ugrave; utilizzato e con il pi&ugrave; alto numero di plugin disponibili. La libreria ha una dimensione inferiore a quella degli <a href="http://javascript.html.it/articoli/leggi/3086/framework-a-confronto-jquery-mootools-prototype/" title="Framework a confronto: jQuery, MooTools, Prototype" target="_blank">altri framework</a>, ha una community estesa ed &egrave; <a href="http://www.learningjquery.com/" title="Learning jQuery - Tips, Techniques, Tutorials" target="_blank">facile da imparare</a>.</p>
<h2>JavaScript: cenni introduttivi</h2>
<p>Per chi inizia da zero, ecco una breve introduzione alle <a href="http://www.smashingmagazine.com/2008/09/16/jquery-examples-and-best-practices/" title="jQuery and JavaScript Coding: Examples and Best Practices" target="_blank"><strong>buone e cattive pratiche</strong></a> da seguire nello scrivere codice JavaScript, quindi valide anche per jQuery. <br />
  Per prima cosa, maggiore &egrave; la <strong>separazione</strong> migliore &egrave; la <strong>qualit&agrave;</strong> del nostro risultato. <br />
  Per ottenere ci&ograve;, &egrave; bene tenere a mente gli scopi per la quale una pagina web &egrave; scritta:</p>
<ul>
<li><em>descrivere</em> il contenuto della pagina (HTML semantico)</li>
<li>specificare la <em>presentazione</em> di tale contenuto (CSS)</li>
<li>controllare il <em>comportamento</em> del contenuto (JavaScript)</li>
</ul>
<p>    Anche se &egrave; possibile agganciare per rapidit&agrave; il codice JavaScript nei tag all&rsquo;interno   degli <em>attributi &ldquo;handlers&rdquo;</em> o all&rsquo;interno dell&rsquo;attributo <code>href</code>, questo rappresenta una cattiva pratica.</p>
<p>Evitare quindi gli <a href="http://javascript.html.it/guide/lezione/831/gli-eventi/" title="Guida JavaScript di base  - Gli eventi" target="_blank">handlers</a>:</p>
<pre name="codice" class="xhtml">&lt;a href=&quot;#&quot; onclick=&quot;alert('Hello World');&quot;&gt;click&lt;/a&gt;</pre>
<p>e il codice javaScript all&#8217;interno dell&#8217;attributo <code>href</code>:</p>
<pre name="codice" class="xhtml">&lt;a href=&quot;javascript:alert('Hello World');&quot;&gt;click&lt;/a&gt;</pre>
<p>&Egrave; poi possibile inserire snippets di codice all&rsquo;interno del tag script:</p>
<pre name="codice" class="xhtml">&lt;script type=&quot;text/javascript&quot;&gt;
	alert(&quot;Ciao mondo!&quot;);
&lt;/script&gt;  </pre>
<p>Sicuramente, a meno che non sia un piccolo esercizio, il codice JavaScript va messo in <em>file esterni</em>:</p>
<pre name="codice" class="xhtml">&lt;script src=&quot;script.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; </pre>
<p>La posizione   migliore per chiarezza &egrave; all&rsquo;<em>interno del tag head, anche se </em>alcuni tipi di js esterni &egrave; meglio metterli al fondo (prima della   chiusura del tag body). Questo perch&egrave; lo scarico del documento viene   bloccato se ci sono problemi nel caricare la risorsa esterna. Se ad   esempio il server di Google Analytics rispondesse per qualche ragione   con tempi di attesa molto lunghi, ritarderebbe lo scaricamento   dell&rsquo;intera pagina web.    Quindi, in generale &egrave; buon uso copiare gli script in locale, e se sono esterni valutare bene il loro scopo. </p>
<p>Lo stile di programmazione cambia a seconda della posizione. O per lo   meno la chiamata (l&rsquo;invocazione) di ci&ograve; che ho programmato dovra   aspettare che il documento sia stato scaricato. </p>
<p>Ecco un&#8217;altra <a href="http://www.yourinspirationweb.com/2010/02/24/quali-sono-i-principali-metodi-per-integrare-javascript-nella-tua-pagina-html/#more-4287" title="Quali sono i principali metodi per integrare JavaScript nella tua pagina html?" target="_blank">risorsa</a> che illustra in modo esauriente questa tematica.</p>
<h2>Iniziare ad usare jQuery</h2>
<p>Per prima cosa occorre scaricare il core di <a href="http://code.jquery.com/jquery-1.4.min.js" title="This is the recommended version of jQuery to use for your application." target="_blank">jQuery</a>, salvarlo in locale (per esempio: root\scripts\) e aggiungere all&rsquo;intenro dell tag <code>head</code> il codice per richiamare   la libreria. Cos&igrave;:</p>
<pre name="codice" class="xhtml">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot; /&gt;
&lt;title&gt;Dove inserire il link al core di jQuery? Qui sotto!&lt;/title&gt;
&lt;meta name=&quot;description&quot; content=&quot;jQuery Tutorial&quot; /&gt;
&lt;script type="text/javascript" src=&quot;scripts/jquery-1.4.1.min.js&quot;&gt;&lt;/script&gt;
</pre>
<p>
  Possiamo poi iniziare a scrivere il codice in un file esterno, che va linkato dentro il tag <code>head</code>, dopo il link al core:</p>
<pre name="codice" class="xhtml">&lt;script type=&rdquo;text/javascript&rdquo; src=&rdquo;scripts/mioScript.js&rdquo;&gt;&lt;/script&gt;</pre>
<p>Il codice di jQuery deve sempre iniziare con il costrutto <code>$(document).ready()</code>, per segnalare alla pagina di eseguire il codice quando tutto il contenuto &egrave; <a href="http://www.learningjquery.com/2006/09/introducing-document-ready" title="Introducing $(document).ready()" target="_blank">caricato</a>:</p>
<pre name="codice" class="javascript">$(document).ready(function(){
	// il codice va qui
});
</pre>
<p>In jQuery sono molto importanti le parentesi, <em>ogni   blocco di istruzioni &egrave; racchiuso in parentesi tonde che a loro volta   inglobano 2 parentesi graffe</em>. <br />
Nel codice sopra c&rsquo;&egrave; una parentesi tonda   che inizia dopo <code>ready</code> e viene chiusa alla fine, seguita dal <code>;)</code>.</p>
<p>Ogni <em>metodo &egrave; seguito dalle parentesi tonde</em> che in alcuni casi   possono non contenere nulla (tecnicamente si dice che <em>non contengono   argomenti</em>), in altri casi invece possono contenere alcuni <strong>parametri   utili al funzionamento</strong>.</p>
<h2>Mostra/Nascondi elementi: toggle</h2>
<p>Vogliamo creare un men&ugrave; in cui ci saimo dei semplici box da mostrare/nascondere al click sul titolo. <br />
  Ecco  tutte le <strong>risorse</strong> per completare il progetto e una <strong>preview</strong> del risultato:</p>
<div id="assetPanel">
        <a class="assetCode" title="Scarica tutte le risorse per questo tutorial"href="http://paitadesign.com/examples/jQuery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/risorse.zip" target="_blank">Risorse</a><a class="assetDemo" title="Visualizza il risultato finale" href="http://paitadesign.com/examples/jQuery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/jquery-toggle-esempio-con-slide.html" target="_blank">Demo</a>
    </div>
<h3>1. Impostiamo la struttura e applichiamo gli stili</h3>
<p>Incominciamo con l&#8217;impostare il men&ugrave;, con il nostro primo contenuto, cio&egrave; il titolo con l&#8217;<code>anchor</code>, seguito dal contenuto vero e proprio, cio&egrave; il titolo <code>h3</code> e un paragrafo di testo:</p>
<pre name="codice" class="xhtml">&lt;div id=&quot;menu&quot;&gt;
	&lt;h2 class=&quot;trigger&quot;&gt;
    &lt;a href=&quot;#&quot;&gt;Prima Voce del Men&ugrave;&lt;/a&gt;
	&lt;/h2&gt;	&lt;div class=&quot;container&quot;&gt;
	 &lt;h3&gt;Title&lt;/h3&gt;
    &lt;p&gt;Lorem ipsum dolor sit amet, consectetur
    congue justo, at ultricies diam mollis non.
    vestibulum libero. Donec consequat elementum
    tincidunt sapien malesuada fringilla.&lt;/p&gt;
	&lt;/div&gt;
&lt;/div&gt;</pre>
<p>Naturalmente possiamo inserire quanti elementi ci occorrono, all&#8217;interno del men&ugrave;. <br />
Applichiamo gli stili al codice, per esempio cos&igrave;:</p>
<pre name="codice" class="css">
body {
 font:normal 12px/14px &quot;Lucida Sans Unicode&quot;,
 &quot;Lucida Grande&quot;, sans-serif;
}
#menu {
 width:351px;
 margin:0 auto;
}
h2 {
 width:298px;
 padding:0 0 0 53px;
 height:40px;
 margin:0;
}
h2 a {
 color:#FFF;
 text-decoration:none;
 font-size:14px;
 line-height:40px;
}
h2.trigger {
 background:url(../gfx/bg_h2.jpg) left top no-repeat;
}
h2.active {
 background:url(../gfx/bg_h2.jpg) left bottom no-repeat;
}
.container {
 padding:20px;
 background:#f3f3f3;
 border:1px solid #999;
 color:#333;
}
h3 {
 margin:0;
 padding:0;
}
.container h3 {
 padding:0 0 20px 0;
 font-size:13px;
}
.container p {
 margin:0;
 padding:0;
}</pre>
<h3>2. Attiviamo il toggle con jQuery</h3>
<p>Attiviamo odesso l&#8217;effetto <code>toggle</code> con jQuery. Per prima cosa nascondiamo tutti gli elementi cui &egrave; applicata la classe <code>container</code>. Selezioniamo poi tutti i titoli che hanno la classe <code>trigger</code>, applichiamo loro lo stile css <code>cursor:pointer</code> e attiviamo il <code>toggle</code> che aggiunge e rimuove la classe <code>active</code>. Per ultimo, agganciamo al <code>click</code> sul titolo il <code>toggle</code>:</p>
<pre name="codice" class="javascript">$(document).ready(function()

  $(&quot;.container&quot;).hide();

  $(&quot;h2.trigger&quot;).css(&quot;cursor&quot;,&quot;pointer&quot;).toggle(function(){
  	$(this).addClass(&quot;active&quot;);
  }, function () {
  $(this).removeClass(&quot;active&quot;);
  });

  $(&quot;h2.trigger&quot;).click(function(){
  $(this).next(&quot;.container&quot;).toggle();
  });

});</pre>
<p>Come si <a title="jquery: esempio toggle"href="http://paitadesign.com/examples/jQuery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/jquery-toggle-esempio.html" target="_blank">può notare</a>, otteniamo un mostra nascondi piuttosto scattoso. Per ottenere un effetto &quot;a tendina&quot;, possiamo utilizzare <code>slideToggle</code>:</p>
<pre name="codice" class="javascript">
$("h2.trigger").click(function(){
	$(this).next(".container").slideToggle("slow");
});
</pre>
<p>e <a title="jquery toggle: esempio con slide" href="http://paitadesign.com/examples/jQuery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/jquery-toggle-esempio-con-slide.html" target="_blank">ottenere una animazione</a> pi&ugrave; fluida.</p>
<div class="resources">
<h3>Letture consigliate</h3>
<p><a href="http://javascript.html.it/articoli/leggi/2440/le-basi-di-jquery/" title="Un'introduzione ai componenti di base del noto framework Javascript" target="_blank">Le basi di JQuery</a><br />
<a href="http://javascript.html.it/guide/leggi/168/guida-jquery/" title="Guida jQuery" target="_blank">Guida a jQuery</a><br />
<a href="http://maxb.net/blog/2008/06/21/imparare-jquery-1-premessa/" title="Tutorial per imparare jQuery" target="_blank">Imparare jQuery</a><br />
<a href="http://www.ibloom.it/blog/2008/10/introduzione-a-jquery-prima-parte/" title="Imparare le basi di jQuery" target="_blank">Introduzione a jQuery – Prima parte</a><br />
<a href="http://www.webair.it/blog/2009/02/13/jquery-tutorial-imparare-ad-usare-jquery-da-zero/" title="Tutorial per coloro che vogliono imparare ad utilizzare jQuery" target="_blank">jQuery Tutorial – imparare ad usare jQuery da zero</a><br />
<a href="http://api.jquery.com/toggle/#toggle2" title="Bind two or more handlers to the matched elements, to be executed on alternate clicks." target="_blank">jQuery API: toggle()</a><br />
<a href="http://www.sohtanaka.com/web-design/easy-toggle-jquery-tutorial/" title="Simple Toggle with CSS &#038; jQuery" target="_blank">Simple Toggle with CSS &#038; jQuerSimple Toggle with CSS &#038; jQuery</a><br />
<a href="http://www.yourinspirationweb.com/2009/10/23/vuoi-imparare-jquery-ma-non-sai-da-dove-iniziare-alternare-le-funzioni-le-variabili-primi-effetti/" title="Alternare le funzioni, le variabili, primi effetti" target="_blank">Imparare jQuery: alternare le funzioni, le variabili, primi effetti</a>
</div>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-sexy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.paitadesign.com/blog/jquery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/&amp;t=jQuery%3A+imparare+le+basi+con+toggle.+Mostra+e+nascondi+con+stile%21" rel="" class="external" title="Condividi suFacebook">Condividi suFacebook</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://www.paitadesign.com/blog/jquery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/&amp;title=jQuery%3A+imparare+le+basi+con+toggle.+Mostra+e+nascondi+con+stile%21" rel="" class="external" title="Condividi sudel.icio.us">Condividi sudel.icio.us</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.paitadesign.com/blog/jquery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/&amp;title=jQuery%3A+imparare+le+basi+con+toggle.+Mostra+e+nascondi+con+stile%21&amp;summary=Le%20pagine%20web%20che%20siamo%20abituati%20a%20navigare%20fanno%20ormai%20un%20uso%20notevole%20di%20animazioni%20e%20di%20effetti%2C%20resi%20possibili%2C%20anche%2C%20dall%27utilizzo%20del%20linguaggio%20JavaScript.%20%0D%0A%20%20Dopo%20anni%20di%20cattiva%20reputazione%2C%20perch%26egrave%3B%20associato%20all%27idea%20di%20popup%20invasivi%20e%20fraudolenti%2C%20%26egrave%3B%20stato%20%20%20particolarmente&amp;source=paitadesignblog" rel="" class="external" title="Condividi suLinkedIn">Condividi suLinkedIn</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=jQuery%3A+imparare+le+basi+con+toggle.+Mostra+e+nascondi+con+stile%21+-+http://b2l.me/fpy3v+(via+@paitadesign)" rel="" class="external" title="Tweetalo!">Tweetalo!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22jQuery%3A%20imparare%20le%20basi%20con%20toggle.%20Mostra%20e%20nascondi%20con%20stile%21%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22Le%20pagine%20web%20che%20siamo%20abituati%20a%20navigare%20fanno%20ormai%20un%20uso%20notevole%20di%20animazioni%20e%20di%20effetti%2C%20resi%20possibili%2C%20anche%2C%20dall%27utilizzo%20del%20linguaggio%20JavaScript.%20%0D%0A%20%20Dopo%20anni%20di%20cattiva%20reputazione%2C%20perch%26egrave%3B%20associato%20all%27idea%20di%20popup%20invasivi%20e%20fraudolenti%2C%20%26egrave%3B%20stato%20%20%20particolarmente%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://www.paitadesign.com/blog/jquery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/" rel="" class="external" title="Vuoi segnalarlo via mail ad un amico?">Vuoi segnalarlo via mail ad un amico?</a>
		</li>
		<li class="sexy-myspace">
			<a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http://www.paitadesign.com/blog/jquery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/&amp;t=jQuery%3A+imparare+le+basi+con+toggle.+Mostra+e+nascondi+con+stile%21" rel="" class="external" title="Pubblicalo suMySpace">Pubblicalo suMySpace</a>
		</li>
		<li class="sexy-comfeed">
			<a href="http://www.paitadesign.com/blog/jquery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/feed" rel="" 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>
<!-- End SexyBookmarks Menu Code -->



<p>Articoli correlati:</p><ol><li><a href='http://www.paitadesign.com/blog/jquery-e-web-designer-20-consigli-utili-e-trucchi-per-tutti-i-siti/' rel='bookmark' title='Permanent Link: jQuery e Web Designer: 20+ consigli utili e trucchi per tutti i siti!'>jQuery e Web Designer: 20+ consigli utili e trucchi per tutti i siti!</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>
<li><a href='http://www.paitadesign.com/blog/php-e-css-come-evidenziare-la-pagina-corrente-nel-menu-di-navigazione/' rel='bookmark' title='Permanent Link: PHP CSS o jQuery: come evidenziare la pagina corrente nel menù di navigazione'>PHP CSS o jQuery: come evidenziare la pagina corrente nel menù di navigazione</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.paitadesign.com/blog/jquery_imparare_le_basi_facilmente_e_velocemente_toggle_mostrare_nascondere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS: immagine di sfondo a tutto schermo</title>
		<link>http://www.paitadesign.com/blog/css-immagine-di-sfondo-a-tutto-schermo/</link>
		<comments>http://www.paitadesign.com/blog/css-immagine-di-sfondo-a-tutto-schermo/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 11:16:05 +0000</pubDate>
		<dc:creator>Giacomo Paita</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[background-image]]></category>
		<category><![CDATA[jQuery]]></category>

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


Articoli correlati:<ol><li><a href='http://www.paitadesign.com/blog/css_bottoni-espandibili-con-una-sola-immagine/' rel='bookmark' title='Permanent Link: CSS: Bottoni espandibili con una sola immagine'>CSS: Bottoni espandibili con una sola immagine</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I siti web con  <a href="http://www.webdesignerwall.com/trends/80-large-background-websites/" title="80 Large Background Websites" target="_blank">immagine di sfondo a tutto schermo</a> sono di sicuro molto eleganti e di grande effetto, perch&egrave; allargano la percezione dello spazio dietro ai contenuti principali, e se le fotografie sono &quot;d&#8217;autore&quot;, il layout pu&ograve; essere minimalista e lasciar parlare solamente le immagini.<br /><span id="more-210"></span><br />
Vediamo di seguito non solo come <a href="http://www.webdesignerwall.com/tutorials/how-to-css-large-background/" title="How to make a large background site with CSS" target="_blank">impostare una immagine di sfondo</a>, ma anche come fare affinch&egrave; l&#8217;immagine si <a href="http://ringvemedia.com/" title="Study-trip to Shanghai and Beijing, made by 17 Norwegian students in February 2008" target="_blank">adatti alla pagina del browser</a>, senza usare <a href="http://www.web-link.it/scripting/E10_sfondoatuttoschermo.htm" title="Immagine di sfondo che si adatta a qualsiasi risoluzione video" target="_blank">javascript</a>, ma solo CSS.</p>
<h2>Immagine di sfondo al 100%</h2>
<p>Sia il corpo della pagina che l&rsquo;immagine (con id=&rdquo;sfondo&rdquo;) hanno larghezza e altezza di 100%, il <code>margin</code> e il <code>padding</code> sono azzerati.<br />
Con la&nbsp;propriet&agrave; <code>overflow</code>&nbsp;evitiamo che vengano visualizzate le barre di scorrimento della finestra del browser. L&rsquo;immagine &egrave; posizionata in&nbsp;modo assoluto&nbsp;per toglierla del flusso naturale della pagina e potere essere ridimensionata correttamente.</p>
<p>Ecco il codice HTML&#8230;</p>
<pre name="codice" class="xhtml">&lt;body&gt;
	&lt;img src=&quot;bg.jpg&quot; id=&quot;sfondo&quot; alt=&quot;&quot; /&gt;
&lt;/body&gt;</pre>
<p>&#8230;a cui associamo queste riche di CSS:</p>
<pre name="codice" class="css">html, body{
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
}

#sfondo{
	position:absolute;
	height:100%;
	width: 100%;
	margin: 0;
	padding: 0;
}</pre>
<p>Ecco come appare il nostro <a href="http://127.0.0.1/paitadesignblog/Articoli/immagine-di-sfondo-a-tutto-schermo/esempio_immagine-di-sfondo-a-100x100.html" title="Immagine di sfondo al 100%" target="_blank">esempio</a>.</p>
<h2>Immagine di sfondo scalabile</h2>
<p>Un limite dell&#8217;esempio precedente &egrave; che l&#8217;immagine, adattandosi alla dimensione della pagina, di fatto si distorce. Vediamo come poter aggirare il problema.<br />
Inseriamo in pagina questo:</p>
<pre name="codice" class="xhtml">&lt;div id=&quot;bg&quot;&gt;
	&lt;div&gt;
		&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
			&lt;tr&gt;
				&lt;td&gt;&lt;img alt=&quot;&quot; src=&quot;bg.jpg&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	&lt;/div&gt;
&lt;/div&gt;</pre>
<p>Ed ecco come impostare il CSS relativo:</p>
<pre name="codice" class="css">html, body, #bg, #bg table, #bg td {
	height:100%;
	overflow:hidden;
	width:100%;
}

#bg div {
	height:200%;
	left:0;
	position:absolute;
	top:0;
	width:200%;
}

#bg img {
	margin:0 auto;
	min-height:50%;
	min-width:50%;
}

#bg td {
	text-align:left;
	vertical-align:top;
}</pre>
<p>Per vedere il risultato, ecco la <a href="http://paitadesign.com/examples/immagine-di-sfondo-a-tutto-schermo/esempio_immagine-di-sfondo-a-tutto-schermo.html" title="Immagine di sfondo a tutto schermo che si adatta a qualsiasi risoluzione" target="_blank">pagina di esempio</a>.</p>
<h2>jQuery: Immagine di sfondo scalabile! </h2>
<p>Ecco un aggiornamento al post con il quale segnalo un semplice <strong>plugin di jQuery</strong> che permette di <a href="http://srobbin.com/blog/jquery-plugins/jquery-backstretch/#demo" target="_blank" title="simple jQuery plugin that allows you to add a dynamically-resized background image to any page">aggiungere un&#8217;immagine di sfondo</a> <em>ridimensionata dinamicamente</em> a una pagina qualsiasi. L&#8217;immagine verr&agrave; allunagata per adattarsi alla pagina, e verr&agrave; automaticamente ridimensionata quando l&#8217;utente cambia la dimensione della finestra. <br />
Il plugin si chiama <a href="http://github.com/srobbin/jquery-backstretch/zipball/1.1.1" title="jQuery Backstretch" target="_blank">jQuery Backstretch</a>, ed ecco come inserirlo:</p>
<pre name="codice" class="javascript">&lt;script type=&quot;text/javascript&quot;&gt;
	$.backstretch(&quot;http://farm3.static.flickr.com/2443/3843020508_5325eaf761.jpg&quot;);
&lt;/script&gt;</pre>
<div class="resources">
<h3>Letture consigliate</h3>
<p><a href="http://css-tricks.com/perfect-full-page-background-image/" title="Fills entire page with image, no white space" target="_blank">Perfect Full Page Background Image</a><br /><a href="http://www.webdesignerwall.com/tutorials/how-to-css-large-background/" title="various CSS examples on how you can create a large background site using either a single or double images" target="_blank">How to: CSS Large Background</a><br />
<a href="http://css.flepstudio.org/en/css-tips/100-percent-background-image.html" title="Apply a background image re-sizable at 100% with the browser’s windows" target="_blank">100 percent background image in css</a><br />
<a href="http://www.webdesignerwall.com/trends/80-large-background-websites/" title="Collection of 80 websites that used large image as the site background" target="_blank">Inspiration: 80 Large Background Websites</a><br />
<a href="http://www.smashingmagazine.com/2009/03/31/backgrounds-in-web-design-examples-and-best-practices-2/" title="Best practices and popular trends of backgrounds in the current stage of innovative Web design" target="_blank">Inspiration: Backgrounds In Web Design: Examples And Best Practices</a>
</div>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-sexy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.paitadesign.com/blog/css-immagine-di-sfondo-a-tutto-schermo/&amp;t=CSS%3A+immagine+di+sfondo+a+tutto+schermo" rel="" class="external" title="Condividi suFacebook">Condividi suFacebook</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://www.paitadesign.com/blog/css-immagine-di-sfondo-a-tutto-schermo/&amp;title=CSS%3A+immagine+di+sfondo+a+tutto+schermo" rel="" class="external" title="Condividi sudel.icio.us">Condividi sudel.icio.us</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.paitadesign.com/blog/css-immagine-di-sfondo-a-tutto-schermo/&amp;title=CSS%3A+immagine+di+sfondo+a+tutto+schermo&amp;summary=I%20siti%20web%20con%20%20immagine%20di%20sfondo%20a%20tutto%20schermo%20sono%20di%20sicuro%20molto%20eleganti%20e%20di%20grande%20effetto%2C%20perch%26egrave%3B%20allargano%20la%20percezione%20dello%20spazio%20dietro%20ai%20contenuti%20principali%2C%20e%20se%20le%20fotografie%20sono%20%26quot%3Bd%27autore%26quot%3B%2C%20il%20layout%20pu%26ograve%3B%20essere%20minimalista%20e%20lasciar%20parlare%20solamente%20l&amp;source=paitadesignblog" rel="" class="external" title="Condividi suLinkedIn">Condividi suLinkedIn</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=CSS%3A+immagine+di+sfondo+a+tutto+schermo+-+http://b2l.me/dqryt+(via+@paitadesign)" rel="" class="external" title="Tweetalo!">Tweetalo!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22CSS%3A%20immagine%20di%20sfondo%20a%20tutto%20schermo%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22I%20siti%20web%20con%20%20immagine%20di%20sfondo%20a%20tutto%20schermo%20sono%20di%20sicuro%20molto%20eleganti%20e%20di%20grande%20effetto%2C%20perch%26egrave%3B%20allargano%20la%20percezione%20dello%20spazio%20dietro%20ai%20contenuti%20principali%2C%20e%20se%20le%20fotografie%20sono%20%26quot%3Bd%27autore%26quot%3B%2C%20il%20layout%20pu%26ograve%3B%20essere%20minimalista%20e%20lasciar%20parlare%20solamente%20l%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://www.paitadesign.com/blog/css-immagine-di-sfondo-a-tutto-schermo/" rel="" class="external" title="Vuoi segnalarlo via mail ad un amico?">Vuoi segnalarlo via mail ad un amico?</a>
		</li>
		<li class="sexy-myspace">
			<a href="http://www.myspace.com/Modules/PostTo/Pages/?u=http://www.paitadesign.com/blog/css-immagine-di-sfondo-a-tutto-schermo/&amp;t=CSS%3A+immagine+di+sfondo+a+tutto+schermo" rel="" class="external" title="Pubblicalo suMySpace">Pubblicalo suMySpace</a>
		</li>
		<li class="sexy-comfeed">
			<a href="http://www.paitadesign.com/blog/css-immagine-di-sfondo-a-tutto-schermo/feed" rel="" 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>
<!-- End SexyBookmarks Menu Code -->



<p>Articoli correlati:</p><ol><li><a href='http://www.paitadesign.com/blog/css_bottoni-espandibili-con-una-sola-immagine/' rel='bookmark' title='Permanent Link: CSS: Bottoni espandibili con una sola immagine'>CSS: Bottoni espandibili con una sola immagine</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.paitadesign.com/blog/css-immagine-di-sfondo-a-tutto-schermo/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
	</channel>
</rss>
