<?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>Howtoweb.it &#187; css</title>
	<atom:link href="http://www.howtoweb.it/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.howtoweb.it</link>
	<description>Tutorial e risorse per chi lavora sul web</description>
	<lastBuildDate>Mon, 14 Mar 2011 16:57:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Rotazioni crossbrowser con CSS3</title>
		<link>http://www.howtoweb.it/tutorial/rotazioni-crossbrowser-con-css3/</link>
		<comments>http://www.howtoweb.it/tutorial/rotazioni-crossbrowser-con-css3/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 12:00:22 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=777</guid>
		<description><![CDATA[In questo articolo vediamo come ottenere rotazioni compatibili con la maggior parte dei browser, su questa pagina è presente una demo della soluzione proposta. Rotazione con CSS3 Grazie alla proprietà transform che si occupa delle trasformazioni bidimensionali è possibile definire &#8230; <a href="http://www.howtoweb.it/tutorial/rotazioni-crossbrowser-con-css3/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.howtoweb.it/wp-content/uploads/2011/03/rotate1.jpg"><img class="alignnone size-full wp-image-788" title="rotate" src="http://www.howtoweb.it/wp-content/uploads/2011/03/rotate1.jpg" alt="" width="580" height="200" /></a></p>
<p>In questo articolo vediamo come ottenere rotazioni compatibili con la maggior parte dei browser, su questa pagina è presente una <a href="http://www.howtoweb.it/wp-content/uploads/rotate_css/rotate_css.html" target="_blank">demo della soluzione proposta</a>.</p>
<h3>Rotazione con CSS3</h3>
<p>Grazie alla proprietà transform che si occupa delle trasformazioni  bidimensionali è possibile definire rotazioni customizzate per i vari  elementi della pagina.</p>
<pre>transform: rotate(7.5deg)</pre>
<p>La sintassi è molto semplice:</p>
<pre>proprietà: funzione(valore)</pre>
<p>come eneunciato nelle <a href="http://www.w3.org/TR/css3-2d-transforms/" target="_blank">specifiche di trasformazione bisimensionale dei CSS3</a> presenti sul sito del W3C.</p>
<h3>Ampliare il supporto ai vari browser</h3>
<p>Per ampliare il supporto di questa proprietà è possibile utilizzare la stessa sintassi ma dedicata ai singoli browser/motori di rendering.</p>
<pre>transform: rotate(7.5deg);
/*generica*/
-webkit-transform: rotate(7.5deg);
/* CHROME/SAFARI*/
-moz-transform: rotate(7.5deg);
/* FIREFOX/MOZILLA */
-o-transform: rotate(7.5deg);
/* OPERA */
-ms-transform: rotate(7.5deg);
/* IE 9 */</pre>
<h3>Ampliare il supporto a Internet Explorer precendenti al 9</h3>
<p>Come notiamo manca un supporto per Internet Explorer precedenti alla versione 9, per colmare questa lacuna è possibile utilizzare due filter predisposti da Microsoft a questo scopo: <a href="http://msdn.microsoft.com/en-us/library/ms532972%28v=vs.85%29.aspx" target="_blank">Basic Image</a> e <a href="http://msdn.microsoft.com/en-us/library/ms533014%28v=vs.85%29.aspx" target="_blank">Matrix</a>.</p>
<h3>Basic Image</h3>
<p>Con il <a href="http://msdn.microsoft.com/en-us/library/ms532972%28v=vs.85%29.aspx" target="_blank">filter Basic Image</a> è possibile definire 3 tipi di rotazione per un elemento: 90°,180° e 270° settando la proprietà rotation rispettivamente a 1, 2 o 3.</p>
<pre>filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);/*ie5.5/7*/
-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=0)';/*ie8*/
/* nessuna rotazione*/
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);/*ie5.5/7*/
-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)';/*ie8*/
/* rotazione di 90°*/
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);/*ie5.5/7*/
-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2)';/*ie8*/
/* rotazione di 180°*/
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);/*ie5.5/7*/
-ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)';/*ie8*/
/* rotazione di 270°*/</pre>
<h3>Matrix</h3>
<p>Il limite della poprietà Basic Image è rappresentato dal fatto di offrire solo 3 tipi di rotazione e nessun tipo di rotazione custom. Per ottenere un maggiore controllo è allora possibile utilizzare il <a href="http://msdn.microsoft.com/en-us/library/ms533014%28v=vs.85%29.aspx" target="_blank">filter Matrix</a>, che si occupa della trasformazione bidimensionale di un elemento (come la proprietà transform dei css3).</p>
<pre>filter: progid:DXImageTransform.Microsoft.Matrix(
       M11=0.9914448613738104,
       M12=-0.13052619222005157,
       M21=0.13052619222005157,
       M22=0.9914448613738104, sizingMethod='auto expand');
       zoom: 1;   /* IE 5.5-7*/
-ms-filter: 'progid:DXImageTransform.Microsoft.Matrix(
       M11=0.9914448613738104,
       M12=-0.13052619222005157,
       M21=0.13052619222005157,
       M22=0.9914448613738104, sizingMethod='auto expand');
       zoom: 1'; /* IE8 */
       /*rotazione di 7.5 gradi*/</pre>
<p>Il filter Matrix si occupa di ridefinire l&#8217;elemento in base ai 4 angoli dell&#8217;elemento, per calcolare questi 4 punti è necessaria un po&#8217; di matematica per disporre correttamente le coordinate, nello specifico i 4 valori inseriti (m11,m12,m21,m22) saranno uguali alle seguenti formule.</p>
<p>m11 = cos((gradi)*3,14159265*2/360)<br />
m12 = -sen((gradi)*3,14159265*2/360)<br />
m21 = sen((gradi)*3,14159265*2/360)<br />
m22 = cos((gradi)*3,14159265*2/360)</p>
<p>La proprietà sizingMethod definisce invece se l&#8217;elemento contenitore dovrà adattarsi o meno all&#8217;immagine generata grazie al valore &#8220;auto expand&#8221;.</p>
<p>Su questa pagina è possibile vedere una <a href="http://www.howtoweb.it/wp-content/uploads/rotate_css/rotate_css.html" target="_blank">demo della soluzione proposta</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/rotazioni-crossbrowser-con-css3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creare sfumature crossbrowser con i CSS</title>
		<link>http://www.howtoweb.it/tutorial/sfumature-crossbrowser-con-css/</link>
		<comments>http://www.howtoweb.it/tutorial/sfumature-crossbrowser-con-css/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 07:00:23 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=727</guid>
		<description><![CDATA[La definizione di sfumature attraverso i css  offre una valida alternativa all&#8217;utilizzo di immagini, riducendo così tempi di caricamento. Nonostante questa tecnica non sia totalmente crossbrowser ricopre i browser maggiormente utilizzati in un numero considerevole di versioni portando così un &#8230; <a href="http://www.howtoweb.it/tutorial/sfumature-crossbrowser-con-css/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.howtoweb.it/wp-content/uploads/2011/02/sfumature_crossbrowser_css.jpg"><img class="alignnone size-full wp-image-775" title="sfumature_crossbrowser_css" src="http://www.howtoweb.it/wp-content/uploads/2011/02/sfumature_crossbrowser_css.jpg" alt="" width="580" height="200" /></a></p>
<p>La definizione di sfumature attraverso i css  offre una valida alternativa all&#8217;utilizzo di immagini, riducendo così tempi di caricamento. Nonostante questa tecnica non sia totalmente crossbrowser ricopre i browser maggiormente utilizzati in un numero considerevole di versioni portando così un ampio numero di utenti a risparmiare tempo e banda ad ogni richiesta per le pagine web.</p>
<p>La creazione di sfumature attraverso i css è un tipo di immagine generata, non una proprietà. Questo significa che possono essere utilizzate all&#8217;interno di altre proprietà come avviene per rgb() o rgba().</p>
<p>Nei CSS3 esistono due metodi per la definizione di sfumature, in particolare uno per le sfumature lineari (linear-gradient) e uno per le sfumature radiali (radial-gradient). Da questi sono ricavati i rispettivi per firefox, google chrome e safari con uguali sintassi ma differente premessa.</p>
<p><a href="http://www.howtoweb.it/wp-content/uploads/gradient_css/gradient_css.html" target="_blank">Qui un esempio delle soluzioni proposte</a>, di seguito la spiegazione nel dettaglio.</p>
<h3>Sfumature lineari</h3>
<p>La sintassi della sfumatura lineare richiede un minimo di tre parametri:</p>
<ul>
<li>posizione iniziale (valore numerico, percentuale o gradi)</li>
<li>colore iniziale (colore in valore esadecimale, rgb o rgba)</li>
<li>colore finale (colore in valore esadecimale, rgb o rgba)</li>
</ul>
<pre>-webkit-linear-gradient(top, #ccc, #000);
-moz-linear-gradient(top, #ccc, #000);
linear-gradient(top, #ccc, #000);</pre>
<p>E&#8217; possibile aggiungere più colori ad una singola sfumatura definendo la porzione occupata dal colore attraverso un valore in percentuale tra 0% e 100%. Per i colori per cui non viene specificata una percentuale la larghezza della sfumatura viene definita in automatico.</p>
<pre>-webkit-linear-gradient(top, #ccc 20%, #000);
 -moz-linear-gradient(top, #ccc 20%, #000);
 linear-gradient(top, #ccc 20%, #000);</pre>
<p>E&#8217; inoltre possibile definire sfumature con più colori aggiungendoli nell&#8217;ordine desiderato</p>
<pre>-webkit-linear-gradient(top, #ccc 20%, #000, #c00);
 -moz-linear-gradient(top, #ccc 20%, #000, #c00);
 linear-gradient(top, #ccc 20%, #000, #c00);</pre>
<h3>Ampliare il supporto per google chrome e webkit</h3>
<p>Oltre alla definizione di sfumature con i CSS3 è possibile utilizzare webkit-gradient per ampliare il supporto a safari 4 e superiori e google chrome inferiori alla 10.</p>
<p>La sintassi della sfumatura lineare per webkit richiede un minimo di cinque parametri:</p>
<ul>
<li>tipo di sfumature (linear o radial)</li>
<li>posizione iniziale (valore numerico, percentuale o gradi)</li>
<li>posizione finale (valore numerico, percentuale o gradi)</li>
<li>colore iniziale (colore in valore esadecimale)</li>
<li>colore finale (colore in valore esadecimale)</li>
</ul>
<pre>-webkit-gradient(linear, left top, right top, from(#ccc), to(#000));</pre>
<p>Si sconsiglia di definire i colori in rgb o rgba considerato che la dichiarazione serve per ampliare il supporto su browser meno recenti che potrebbero non supportare i colori in rgb essendo parte dei CSS3.</p>
<p>E&#8217; possibile aggiungere più colori ad una singola sfumatura definendo la porzione occupata dal colore attraverso un valore in percentuale tra 0% e 100%. Per i colori per cui non viene specificata una percentuale la larghezza della sfumatura viene definita in automatico.</p>
<pre>-webkit-gradient(linear, left top, right top, from(40%, #ccc), to(#000));</pre>
<p>E&#8217; inoltre possibile definire sfumature con più colori aggiungendoli attraverso la dichiarazone color-stop.</p>
<pre>-webkit-gradient(linear, left top, left bottom, from(#ccc), to(#000),
color-stop(40%, #c00))</pre>
<h3>Sfumature lineari su  Internet explorer</h3>
<p>Le soluzioni viste fino ad ora non trovano supporto su Internet Explorer in versioni precedenti alla 9, bisogna quindi ricorrere al gradient filter.</p>
<p>Questo filtro per Internet Explorer permette sfumature lineari verticali ed orizzontali di due colori.</p>
<p>Per questo filtro sono necessari tre parametri:</p>
<ul>
<li>gradienttype (definisce una sfumatura verticale (0) o orizzontale (1))</li>
<li>colore iniziale (in valore esadecimale)</li>
<li>colore finale (in valore esadecimale)</li>
</ul>
<pre>filter: progid:DXImageTransform.Microsoft.gradient(GradientType = 0,
startColorstr='#cccccc', endColorstr='#000000');</pre>
<p>Per ampliare il supporto a più versioni di Internet Explorer occorre ricordare la diversa definizione di filters:</p>
<pre>//per ie 5.5 e successivi
filter: progid:DXImageTransform.Microsoft.filtername(sProperties)
//per ie 8
-ms-filter: 'progid:DXImageTransform.Microsoft.filtername(sProperties)'</pre>
<p>In questo modo è possibile creare sfumature con i css compatibili con Firefox 3.6+, Safari 4+, google chrome e internet explorer 7+. Purtroppo opera non offre un supporto per le sfumature da css e ricade nella soluzione di callback con la definizione di un colore o di un&#8217;immagine di sfondo.</p>
<h3>Sfumature Radiali</h3>
<p>E&#8217; inoltre possibile definire sfumature radiali attraverso radial-gradient, le derivate per webkit e mozilla -webkit-radial-gradient e -moz-radial-gradient e la definizione webkit-gradient (con tipologia radial).</p>
<p>Per questa soluzione con i css3 può essere utile inserire un parametro di definizione sulla larghezza delle sfumature che definisce forma ed estensione.</p>
<p>I valori definibili sono:<br />
Circle (per sfumature circolari)<br />
Ellipse (per sfumature ad ellisse)</p>
<p>In aggiunta si possono definire ulteriori parametri per il comportamento della sfumatura:</p>
<p>closest-side (sfumatura al lato più vicino)<br />
farthest-side  (sfumatura al lato più distante)<br />
closest-corner (sfumatura all&#8217;angolo più vicino)<br />
farthest-corner (sfumatura all&#8217;angolo più lontano)</p>
<p><a href="http://www.howtoweb.it/wp-content/uploads/gradient_css/gradient_css.html" target="_blank">Qui un esempio delle soluzioni descritte</a>.</p>
<p><strong>Per maggiori informazioni sull&#8217;utilizzo delle sfumature ecco alcuni link:</strong></p>
<p><a href="https://developer.mozilla.org/en/Using_gradients" target="_blank">sfumature con CSS3 in firefox</a> (https://developer.mozilla.org/en/Using_gradients)<br />
<a href="http://www.webkit.org/blog/1424/css3-gradients">sfumature con CSS3 in webkit</a> (http://www.webkit.org/blog/1424/css3-gradients)<br />
<a href="http://www.webkit.org/blog/175/introducing-css-gradients" target="_blank">sfumature con webkit-gradient</a> (http://www.webkit.org/blog/175/introducing-css-gradients)<br />
<a href="http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx" target="_blank">sfumature con filter per internet explorer</a> (http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx)<br />
<a href="https://developer.mozilla.org/en/CSS/-moz-radial-gradient#Size_constants" target="_blank">definizioni della posizione della sfumatura</a> (https://developer.mozilla.org/en/CSS/-moz-radial-gradient#Size_constants)<br />
<a href="http://msdn.microsoft.com/en-us/library/ms532847%28v=vs.85%29.aspx" target="_blank">utilizzo di filters in Internet explorer</a> (http://msdn.microsoft.com/en-us/library/ms532847%28v=vs.85%29.aspx)</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 3103px; width: 1px; height: 1px; overflow: hidden;">
<p>La definizione di sfumature attraverso i css permette di offrire una  valida alternativa all’utilizzo di immagini, permettendo così tempi di  caricamento più brevi. Benchè questa tecnica non possa essere totalmente  crossbrowser ricopre i browser maggiormente utilizzati in un numero  considerevole di versioni portando così un ampio numero di utenti a  risparmiare tempo e banda ad ogni richiesta per le pagine web.</p>
<p>La creazione di sfumature attraverso i css è un tipo di immagine  generata, non una proprietà, possono quindi essere utilizzate  all’interno di altre proprietà come avviene per rgb() o rgba().</p>
<p>Nei CSS3 esistono due metodi per la definizione di sfumature, in  particolare una per le sfumature lineari (linear-gradient) e una per le  sfumature radiali (radial-gradient). Da queste due versioni sono  ricavati i rispettivi per firefox, google chrome e safari con uguali  sintassi ma differente premessa.</p>
<h3>Sfumature lineari</h3>
<p>La sintassi della sfumatura lineare richiede un minimo di tre parametri:</p>
<ul>
<li>posizione iniziale (valore numerico, percentuale o gradi)</li>
<li>colore iniziale (colore in valore esadecimale, rgb o rgba)</li>
<li>colore finale (colore in valore esadecimale, rgb o rgba)</li>
</ul>
<pre>-webkit-linear-gradient(top, #ccc, #000);
-moz-linear-gradient(top, #ccc, #000);
linear-gradient(top, #ccc, #000);</pre>
<p>E’ possibile aggiungere più colori ad una singola sfumatura definendo  la porzione occupata dal colore attraverso un valore in percentuale tra  0% e 100%. Per i colori per cui non viene specificata una percentuale  la larghezza della sfumatura viene definita in automatico.</p>
<pre>-webkit-linear-gradient(top, #ccc 20%, #000);
 -moz-linear-gradient(top, #ccc 20%, #000);
 linear-gradient(top, #ccc 20%, #000);</pre>
<p>E’ inoltre possibile definire sfumature con più colori aggiungendoli nell’ordine desiderato</p>
<pre>-webkit-linear-gradient(top, #ccc 20%, #000, #c00);
 -moz-linear-gradient(top, #ccc 20%, #000, #c00);
 linear-gradient(top, #ccc 20%, #000, #c00);</pre>
<h3>Ampliare il supporto per google chrome e webkit</h3>
<p>Oltre alla definizione di sfumature con i CSS3 è possibile utilizzare  webkit-gradient per ampliare il supporto a safari 4 e superiori e  google chrome inferiori alla 10.</p>
<p>La sintassi della sfumatura lineare per webkit richiede un minimo di cinque parametri:</p>
<ul>
<li>tipo di sfumature (linear o radial)</li>
<li>posizione iniziale (valore numerico, percentuale o gradi)</li>
<li>posizione finale (valore numerico, percentuale o gradi)</li>
<li>colore iniziale (colore in valore esadecimale)</li>
<li>colore finale (colore in valore esadecimale)</li>
</ul>
<pre>-webkit-gradient(linear, left top, right top, from(#ccc), to(#000));</pre>
<p>Si sconsiglia di definire i colori in rgb o rgba considerato che la  dichiarazione serve per ampliare il supporto su browser meno recenti che  potrebbero non supportare i colori in rgb essendo parte dei CSS3.</p>
<p>E’ possibile aggiungere più colori ad una singola sfumatura definendo  la porzione occupata dal colore attraverso un valore in percentuale tra  0% e 100%. Per i colori per cui non viene specificata una percentuale  la larghezza della sfumatura viene definita in automatico.</p>
<pre>-webkit-gradient(linear, left top, right top, from(40%, #ccc), to(#000));</pre>
<p>E’ inoltre possibile definire sfumature con più colori aggiungendoli attraverso la dichiarazone color-stop.</p>
<pre>-webkit-gradient(linear, left top, left bottom, from(#ccc), to(#000),
color-stop(40%, #c00))</pre>
<h3>Sfumature lineari su  Internet explorer</h3>
<p>Le soluzioni viste fino ad ora non trovano supporto su Internet  Explorer in versioni precendenti alla 9, bisogna quindi ricorrere al  gradient filter.</p>
<p>Questo filtro per Internet Explorer permette sfumature lineari verticali ed orizzontali di due colori.</p>
<p>Per questo filtro sono necessari tre parametri:</p>
<ul>
<li>gradienttype (definisce una sfumatura verticale (0) o orizzontale (1))</li>
<li>colore iniziale (in valore esadecimale)</li>
<li>colore finale (in valore esadecimale)</li>
</ul>
<pre>filter: progid:DXImageTransform.Microsoft.gradient(GradientType = 0,
startColorstr='#cccccc', endColorstr='#000000');</pre>
<p>Per ampliare il supporto a più versioni di Internet Explorer occorre ricordare la diversa definizione di filters:</p>
<pre>//per ie 5.5 e successivi
filter: progid:DXImageTransform.Microsoft.filtername(sProperties)
//per ie 8
-ms-filter: 'progid:DXImageTransform.Microsoft.filtername(sProperties)'</pre>
<p>In questo modo è possibile creare sfumature con i css compatibili con  Firefox 3.6+, Safari 4+, google chrome e internet explorer 7+.  Purtroppo opera non offre un supporto per le sfumature da css e ricade  nella soluzione di callback con la definizione di un colore o di  un’immagine di sfondo.</p>
<h3>Sfumature Radiali</h3>
<p>E’ inoltre possibile definire sfumature radiali attraverso la  proprietà radial-gradient, le derivate per webkit e mozilla  -webkit-radial-gradient e -moz-radial-gradient e la definizione  webkit-gradient (con tipologia radial).</p>
<p>Per questa soluzione con i css3 può essere utile inserire un  parametro di definizione sulla larghezza delle sfumature che definisce  forma ed estensione.</p>
<p>I valori definibili sono:<br />
Circle (per sfumature cricolari)<br />
Ellipse (per sfumature ad ellisse)</p>
<p>In aggiunta si possono definire ulteriori parametri per il comportamento della sfumatura:</p>
<p>closest-side (sfumatura al lato più vicino)<br />
farthest-side  (sfumatura al lato più distante)<br />
closest-corner (sfumatura all’angolo più vicino)<br />
farthest-corner (sfumatura all’angolo più lontano)</p>
<p><strong>Per maggiori informazioni sull’utilizzo delle sfumature ecco alcuni link:</strong></p>
<p><a href="https://developer.mozilla.org/en/Using_gradients" target="_blank">sfumature con CSS3 in firefox</a> (https://developer.mozilla.org/en/Using_gradients)<br />
<a href="http://www.webkit.org/blog/1424/css3-gradients">sfumature con CSS3 in webkit</a> (http://www.webkit.org/blog/1424/css3-gradients)<br />
<a href="http://www.webkit.org/blog/175/introducing-css-gradients" target="_blank">sfumature con webkit-gradient</a> (http://www.webkit.org/blog/175/introducing-css-gradients)<br />
<a href="http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx" target="_blank">sfumature con filter per internet explorer</a> (http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx)<br />
<a href="https://developer.mozilla.org/en/CSS/-moz-radial-gradient#Size_constants" target="_blank">definizioni della posizione della sfumatura</a> (https://developer.mozilla.org/en/CSS/-moz-radial-gradient#Size_constants)<br />
<a href="http://msdn.microsoft.com/en-us/library/ms532847%28v=vs.85%29.aspx" target="_blank">utilizzo di filters in Internet explorer</a> (http://msdn.microsoft.com/en-us/library/ms532847%28v=vs.85%29.aspx)</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/sfumature-crossbrowser-con-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrare le API di Youtube con PrettyPhoto</title>
		<link>http://www.howtoweb.it/tutorial/integrare-api-di-youtube-prettyphoto/</link>
		<comments>http://www.howtoweb.it/tutorial/integrare-api-di-youtube-prettyphoto/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 05:00:34 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=510</guid>
		<description><![CDATA[L&#8217;integrazione del video nei siti web è ormai diventata una pratica comune, l&#8217;inserimento in una pagina web è molto semplice soprattutto se supportato da un servizio che ospita e gestisce i contenuti video come Youtube. Nell&#8217;articolo di oggi mostrerò una &#8230; <a href="http://www.howtoweb.it/tutorial/integrare-api-di-youtube-prettyphoto/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-515" title="esempio_youtube_api" src="http://www.howtoweb.it/wp-content/uploads/2009/08/esempio_youtube_api1.jpg" alt="esempio_youtube_api" width="580" height="250" /></p>
<p>L&#8217;integrazione del video nei siti web è ormai diventata una pratica comune, l&#8217;inserimento in una pagina web è molto semplice soprattutto se supportato da un servizio che ospita e gestisce i contenuti video come Youtube.</p>
<p>Nell&#8217;articolo di oggi mostrerò una semplice integrazione tra le Youtube API e il plugin per JQuery Prettyphoto per ottenere una galleria di video in stile Youtube da inserire nella pagina del proprio sito.</p>
<p>Le Youtube API non sono altro che librerie messe a disposizione degli sviluppatori per gestire con semplicità i contenuti di Youtube su un sito esterno. E&#8217; possibile integrarle con diversi linguaggi e tecnologie, nell&#8217;esempio di oggi vedremo com&#8217;è possibile utilizzarle con javascript. Per ulteriori informazioni è possibile consultare la relativa <a title="Youtupe API" href="http://code.google.com/apis/youtube/getting_started.html" target="_blank">documentazione</a>.</p>
<p>PrettyPhoto è un plugin per jquery simile in tutto e per tutto a Lightbox (per prototype e scriptaculus) ulteriori informazioni sono disponibili sul sito ufficiale di <a title="PrettyPhoto" href="http://www.no-margin-for-errors.com/projects/prettyPhoto-jquery-lightbox-clone/" target="_blank">PrettyPhoto.</a></p>
<p><span id="more-510"></span></p>
<p>Per questa soluzione sono partito dall&#8217;<a title="Youtube API Example" href="http://gdata.ops.demo.googlepages.com/yt_json_codelab.html#attractive" target="_blank">esempio fornito da Youtube</a> nella rispettiva documentazione. Lo script proposto carica dal canale desiderato le thumbnails dei video e il rispettivo titolo, caricando inoltre il player che esegue il filmato sul quale viene cliccato.</p>
<p>Nel nostro caso desidero mantenere le thumbnails e i titoli ma preferisco evitare che il player occupi spazio nella pagina, modificherò quindi lo script per permettere l&#8217;apertura del video in un div grazie al plugin PrettyPhoto.</p>
<p>Per iniziare creiamo la nostra pagina html, avendo l&#8217;accortezza di lasciare un div con id nel quale verranno caricate le thumbnails dei video.</p>
<h3>Caricare i dati da Youtube</h3>
<p>Ora possiamo iniziare a creare il javascript che richiamerà i dati necessari da Youtube.</p>
<p>Per prima cosa inseriamo un link alle api di youtube, dove specificheremo che cosa selezionare (nel nostra caso andremo a prelevare tutti i video del canale di GoogleDevelopers).</p>
<pre>&lt;script type="text/javascript"
src="http://gdata.youtube.com/feeds/users/GoogleDevelopers/uploads?alt=json-in-script&amp;callback=getVideos"&gt;
&lt;/script&gt;</pre>
<p>Questo link ci permette di selezionare tutti i feed di un determinato utente (GoogleDevelopers) esenguendo una funzione javascript di callback (getVideos).</p>
<p>Andiamo quindi a definire la nostra funzione nella pagina.</p>
<pre>&lt;script type="text/javascript"&gt;
function getVideos(data) {

}
&lt;/script&gt;</pre>
<p>All&#8217;interno di questa funzione filtreremo i dati e li utilizzeremo per ottenere l&#8217;output desiderato.</p>
<p>Per prima cosa definiamo un array per i dati ottenuti</p>
<pre>var feed = data.feed;
var entries = feed.entry || [];</pre>
<p>Ora possiamo estrarre i dati utilizzando un ciclo for</p>
<pre>for (var i = 0; i &lt; entries.length; i++) {
}</pre>
<p>All&#8217;interno del quale ricaviamo i dati che ci servono</p>
<pre>var entry = entries[i];
var title = entry.title.$t.substr(0, 35);
var thumbnailUrl = entries[i].media$group.media$thumbnail[0].url;
var videoUrl = entries[i].media$group.media$player[0].url;</pre>
<p>Per gestire in maniera corretta l&#8217;output salviamo i dati relativi ai feed all&#8217;interno delle rispettive vairabili, in seguito raggruppiamo i dati con il codice html necessario all&#8217;impaginazione.</p>
<pre>html.push('&lt;div class="singleVideo"&gt;&lt;a rel="prettyPhoto[flash]" href="',videoUrl,'" title="',title,'"&gt;',
'&lt;img src="', thumbnailUrl, '"/&gt;','&lt;/a&gt;',
'&lt;a rel="prettyPhoto[flash]" href="',videoUrl,'" title="',title,'"&gt;&lt;span&gt;',title,'...&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;');</pre>
<p>Il risultato per ogni output del ciclo nell&#8217;html  sarà:</p>
<pre>&lt;div class="singleVideo"&gt;
&lt;a rel="prettyPhoto[flash]" href="[URLVIDEO]" title="[TITOLO VIDEO]"&gt;
&lt;img src="[THUMBNAILVIDEO]"/&gt;
&lt;/a&gt;
&lt;a rel="prettyPhoto[flash]" href="[URLVIDEO]" title="[TITOLO VIDEO]"&gt;
&lt;span&gt;[TITOLO VIDEO]...&lt;/span&gt;&lt;/a&gt;
&lt;/div&gt;</pre>
<p>L&#8217;ultima riga stamperà il risultato nell&#8217;elemento con l&#8217;id specificato</p>
<pre>document.getElementById('videoContainer').innerHTML = html.join('');</pre>
<h3>Aggiungiamo PrettyPhoto</h3>
<p>Avendo già inserito gli attributi <em>rel </em>per i link non resta che aggiungere Jquery e il plugin PrettyPhoto nella pagina</p>
<pre>&lt;script type="text/javascript" src="javascript/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="javascript/prettyPhoto.js"&gt;&lt;/script&gt;</pre>
<p>ed inserire le opzioni per il desiderato funzionamento di PrettyPhoto</p>
<pre>$(function() {
$("a[rel^='prettyPhoto']").prettyPhoto({
animationSpeed: 'normal',
padding: 40,
opacity: 0.35,
showTitle: true,
allowresize: true,
counter_separator_label: ' di ',
theme: 'light_square',
callback: function(){}
});
});</pre>
<p>Il risultato è visibile in questa <a title="Esempio di integrazione di API di Youtube con PrettyPhoto" href="http://www.howtoweb.it/wp-content/uploads/esempio_youtube/esempio_youtube.html" target="_self">demo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/integrare-api-di-youtube-prettyphoto/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Realizzare slideshow complessi con jquery cycle</title>
		<link>http://www.howtoweb.it/tutorial/realizzare-slideshow-complessi-con-jquery-cycle/</link>
		<comments>http://www.howtoweb.it/tutorial/realizzare-slideshow-complessi-con-jquery-cycle/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 12:10:44 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=467</guid>
		<description><![CDATA[Tempo fa avevamo parlato di come realizzare un semplice slideshow con jquery, oggi vediamo come creare in poco tempo uno slideshow completamente customizzabile e compatibile grazie a jquery e jquery cycle. Cos&#8217;è jquery cycle? Jquery cycle è una libreria per &#8230; <a href="http://www.howtoweb.it/tutorial/realizzare-slideshow-complessi-con-jquery-cycle/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-488" title="jquerycycle" src="http://www.howtoweb.it/wp-content/uploads/2009/07/jquerycycle1.jpg" alt="jquerycycle" width="580" height="201" /></p>
<p>Tempo fa avevamo parlato di <a title="Realizzare una semplice galleria immagini con jquery" href="http://www.howtoweb.it/tutorial/realizzare-una-semplice-galleria-immagini-con-jquery/" target="_self">come realizzare un semplice slideshow con jquery</a>, oggi vediamo come creare in poco tempo uno slideshow completamente customizzabile e compatibile grazie a jquery e jquery cycle.</p>
<h3>Cos&#8217;è jquery cycle?</h3>
<p>Jquery cycle è una libreria per jquery che permette la realizzazione di slideshow con molteplici effetti di transizione garantendo una buona customizzazione a livello funzionale tramite le opzioni messe a disposizione dagli sviluppatori.</p>
<p>Jquery cycle è scaricabile da <a title="Jquery cycle" href="http://malsup.com/jquery/cycle/" target="_blank">qui</a>.</p>
<h3><span id="more-467"></span>Come funziona?</h3>
<p>Per iniziare creiamo una pagina html ed inseririamo le immagini della nostra galleria all&#8217;interno di un div, al quale daremo delle regole css per dimensioni e stile.</p>
<pre>&lt;div id="photos"&gt;
&lt;img src="images/sample1.jpg" alt="Questa è la prima foto"/&gt;
&lt;img src="images/sample2.jpg" alt="Questa è la seconda foto"/&gt;
&lt;img src="images/sample3.jpg" alt="Questa è la terza foto"/&gt;
&lt;img src="images/sample1.jpg" alt="Questa è la quarta foto"/&gt;
&lt;img src="images/sample2.jpg" alt="Questa è la quinta foto"/&gt;
&lt;img src="images/sample3.jpg" alt="Questa è la sesta foto"/&gt;
&lt;img src="images/sample1.jpg" alt="Questa è la settima foto"/&gt;
&lt;/div&gt;</pre>
<p>Fatto questo colleghiamo la nostra pagina html alla libreria di jquery e al plugin di jquery cycle.</p>
<pre>&lt;script type="text/javascript" src="javascript/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="javascript/jquery_cycle.js"&gt;&lt;/script&gt;</pre>
<p>(ovviamente i percorsi andranno definiti in base alla struttura della cartella)</p>
<p>A questo punto inseriamo la funzione <em>cycle</em> che farà funzionare il nostro slideshow</p>
<pre>&lt;script type="text/javascript"&gt;
$(document).ready(function() {
  $('#photos').cycle({
    fx:'fade',
    speed:  1000,
    timeout: 2000
  });
});
&lt;/script&gt;</pre>
<p>In questo codice applichiamo la funzione <em>cycle </em>al div <em>#photos </em>definendo un effetto di transizione <em>fade</em>, una velocità di transizione di un secondo (<em>speed: 1000</em>) ed un timeout di due secondi (<em>timeout:2000).</em></p>
<p>Per vedere la demo clicca <a title="Esempio di slideshow semplice con Jquery cycle" href="http://www.howtoweb.it/wp-content/uploads/jquery_cycle/jquery_cycle.html" target="_self">qui</a>.</p>
<h3>Come aggiungere le thumbnails delle immagini</h3>
<p>Per aggiungere le thumbnails delle immagini possiamo utilizzare l&#8217;opzione <em>pager </em>per ottenere una paginazione numerica delle immagini e la funzione di callback <em>pagerAnchorBuilder </em>per sostituire i numeri alle rispettive thumbnails.</p>
<p>Creiamo quindi un div <em>#thumbnails </em>dove andremo a collocare le immagini</p>
<pre>&lt;div id="thumbnails"&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;</pre>
<p>Aggiungiamo quindi l&#8217;opzione <em>pager </em>per dichiarare a jquery cycle dove desideriamo collocare le anteprime</p>
<pre>$('#photos').cycle({
  fx:     'fade',
  speed:  1000,
  timeout: 2000,
  pager:  '#thumbnails ul',
});</pre>
<p>Per alleggerire l&#8217;esecuzione di javascript ho preferito aggiungere manualmente i tag <em>&lt;ul&gt;&lt;/ul&gt; </em>ma è possibile aggiungere questi tag attraverso jquery nel funzione <em>pagerAnchorBuilder </em>che andiamo ad aggiungere.</p>
<pre>$('#photos').cycle({
fx:     'fade',
speed:  1000,
timeout: 2000,
pager:  '#thumbnails ul',

pagerAnchorBuilder: function(idx, slide) {
return '&lt;li&gt;&lt;a href="#" title="Thumbnail"&gt;&lt;img src="' + slide.src + '"/&gt;&lt;/a&gt;&lt;/li&gt;';
}
});</pre>
<p>La funzione <em>pagerAnchorBuilder </em>la normale paginazione di jquery cycle con le immagini contenute nello slide show.</p>
<p>Questo permette di visualizzare l&#8217;immagine scelta cliccando sulla thumbnail, viene inoltre messa a disposizione la classe <em>.activeSlide </em>presente sull&#8217;immagine attualmente visualizzata.</p>
<p>Questa soluzione molto comoda renderizza però due volte la stessa immagine, appesantendo notevolmente la pagina, in un contesto dinamico sarebbe opportuno gestire le thumbnails lato server per evitare ridimensionamenti da css che non riducono il peso dell&#8217;immagine.</p>
<p>Per vedere la demo clicca <a title="Esempio di slideshow semplice con thumbnails realizzato con Jquery cycle" href="http://www.howtoweb.it/wp-content/uploads/jquery_cycle/jquery_cycle_thumbs.html" target="_self">qui</a></p>
<h3>Aggiungere una navigazione direzionale</h3>
<p>Oltre alle thumbnails potrebbe essere utile aggiungere la possibilità all&#8217;utente di passare alla foto successiva o di tornare a quella precedente.</p>
<p>Per farè ciò è sufficiente creare due link con id da associare a jquery cycle</p>
<pre>&lt;div id="navPhotos"&gt;
&lt;a id="prev" href=""&gt;&lt;img src="images/button_prev.png" alt="Prev photo"&gt;&lt;/a&gt;
&lt;a id="next" href=""&gt;&lt;img src="images/button_next.png" alt="Next photo"&gt;&lt;/a&gt;
&lt;/div&gt;</pre>
<p>e aggiungere le opzioni <em>prev </em>e <em>next</em> al nostro script</p>
<pre>[...]
next:   '#next',
prev:   '#prev',
[...]</pre>
<p>In questo modo i due link porteranno sempre all&#8217;immagine precedente o successiva.</p>
<p>Da notare che entrambi i link sono contenuti nel div <em>#navPhotos </em>a questo viene assegnato un posizionamento assoluto e uno z-index elevato poichè jquery cycle utilizza la proprietà z-index per mostrare le immagini. Diventa dunque indispensabile settare uno z-index che sia sempre superiore al numero di immagini per poszionare i due link sopra lo slideshow.</p>
<p>Per vedere la demo clicca <a title="Esempio di slideshow semplice con navigazione realizzato con Jquery cycle" href="http://www.howtoweb.it/wp-content/uploads/jquery_cycle/jquery_cycle_arrow.html" target="_self">qui</a></p>
<h3>Aggiungere una descrizione alle immagini</h3>
<p>Per aggiungere una descrizione alle immagini è possibile sfruttare l&#8217;attributo <em>alt </em>del tag <em>&lt;img&gt;.</em></p>
<p>Con l&#8217;aiuto dell opzioni <em>before </em>e <em>after </em>è possibile richiamare delle funzioni prima e dopo il caricamento dell&#8217;immagine.</p>
<p>Definiamo quindi una div <em>#description </em>dove andremo ad inserire le descrizioni</p>
<pre>&lt;div id="description"&gt;
&lt;/div&gt;</pre>
<p>E aggiungiamo al nostro script le opzioni <em>after </em>e <em>before </em>che richiameranno le funzioni <em>onAfter </em>e <em>onBefore</em></p>
<pre>[...]
before:  onBefore,
after:   onAfter,
[...]</pre>
<p>Ora definiamo le funzioni <em>onBefore </em>e <em>onAfter </em>per caricare il testo contenuto nell&#8217;attributo <em>alt </em>del tag <em>&lt;img&gt;</em></p>
<pre><em>function onBefore() {
  $('#description p').fadeOut('1000');
}
function onAfter() {
  $('#description p').fadeIn('1000');
  $('#description').html('&lt;p&gt;' + this.alt + '&lt;/p&gt;');
}

</em></pre>
<p>Queste due funzioni andranno definite al di fuori della funzione <em>cycle </em>poichè vengono valutate ad ogni caricamento della singola immagine.</p>
<p>Per il div <em>#description </em>è stata creata una regola css simile a <em>#navPhotos</em> in modo che la descrizione sia posta sopra lo slideshow con uno z-index superiore al numero di immagini presenti.</p>
<p>Per vedere una demo clicca <a title="Esempio di slideshow semplice con descrizione delle immagini realizzato con Jquery cycle" href="http://www.howtoweb.it/wp-content/uploads/jquery_cycle/jquery_cycle_description.html" target="_self">qui</a></p>
<h3>In conclusione</h3>
<p>Come abbiamo visto jquery cycle mette a disposizione un numero elevato di opzioni per realizzare slideshow, è possibile inoltre aggiungere dei pulsanti per mettere in pausa o far ripartire lo slideshow, caricare contenuto diverso da immagini, settare un tempo di delay per sincronizzare più slideshow e customizzare i numerosi effetti presenti.</p>
<p>Per maggiori informazioni sulle possibilità di customizzazione esiste una sezione <a title="jquery cycle demo and examples" href="http://malsup.com/jquery/cycle/" target="_blank">demo ed esempi</a> sul sito di jquery cycle sicuramente molto utile.</p>
<p>Inoltre grazie alla gestione dello stile da css e al semplice markup è possibile creare valide alternative senza javascript per migliorarne l&#8217;accessibilità rendenfo questa una delle migliori soluzioni per realizzare slideshow in contesti statici e dinamici.</p>
<p><em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/realizzare-slideshow-complessi-con-jquery-cycle/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Realizzare layout al 100% di altezza con i css</title>
		<link>http://www.howtoweb.it/tutorial/realizzare-layout-altezza-fluida-con-i-css/</link>
		<comments>http://www.howtoweb.it/tutorial/realizzare-layout-altezza-fluida-con-i-css/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 18:07:18 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=449</guid>
		<description><![CDATA[Molto spesso capita di dover realizzare layout fluidi, che a causa del molto contenuto debbano adattarsi in larghezza alle dimensioni del browser. In un precedente articolo abbiamo visto quanto sia semplice realizzare layout fluidi con una buona compatibilità tra browser. &#8230; <a href="http://www.howtoweb.it/tutorial/realizzare-layout-altezza-fluida-con-i-css/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Molto spesso capita di dover realizzare layout fluidi, che a causa del molto contenuto debbano adattarsi in larghezza alle dimensioni del browser. In un precedente articolo abbiamo visto quanto sia semplice realizzare layout fluidi con una buona compatibilità tra browser.</p>
<p>Obbiettivo più complesso è invece realizzare un layout con altezza che si adatti al browser. Questa operazione sicuramente non troppo comune ha il pregio (e soprattutto il difetto) di limitare il contenuto nell&#8217;altezza della finestra del browser.</p>
<p>Diventa quindi una scelta poco consigliata per garatire l&#8217;accessibilità dei contenuto, tuttavia può tornare utile per specifiche richieste che richiedono di emulare un full screen tipico dei siti in flash.</p>
<p>Per raggiungere in nostro obbiettivo è indispensabile far sì che il div contenitore della pagina mantenga un&#8217;altezza pari all&#8217;altezza della finestra del browser.</p>
<p>Cosa non fattibile settando semplicemente l&#8217;altezza dell&#8217;elemento al 100%, ma richiede che l&#8217;elemento genitore abbia settata un&#8217;altezza e che l&#8217;elemento in questione abbia un posizionamento assoluto.</p>
<pre>body{
margin:0;
padding:0;
height:100%;
}

#content{
height:100%;
width:100%;
position:absolute;
top:0;
left:0;
overflow:hidden;
}</pre>
<p>Grazie a questi parametri l&#8217;elemento si estende su tutta l&#8217;altezza della pagina rimanendo fuori dal flusso tradizionale con un posizionamento assoluto. <a title="Layout ad altezza 100%" href="http://www.howtoweb.it/wp-content/uploads/height/height.html" target="_self">Vedi l&#8217;esempio</a>.</p>
<p>Per aggiungere un footer al nostro layout sarà sufficiente ridurre l&#8217;altezza dell&#8217;elemento precedente di pari valore all&#8217;altezza del footer ricordando di settare un posizionamento assoluto con <em>bottom </em>uguale a 0.</p>
<pre>#footer{
height:10%;
width:100%;
position:absolute;
bottom:0;
left:0;
overflow:hidden;
}</pre>
<p>In questo modo il footer rimarrà attaccato al fondo della finestra del browser anche al resize da parte dell&#8217;utente. <a title="Layout ad altezza 100%" href="http://www.howtoweb.it/wp-content/uploads/height/height2.html" target="_self">Vedi esempio</a>.</p>
<p>Come ultimo esempio vediamo come rendere centrato e a larghezza fissa il nostro layout.</p>
<p>Iniziamo settando delle larghezze a larghezza fissa mentre per centrare gli elementi non utilizziamo i margini laterali settati su auto bensì la proprietà <em>left:50% </em>in aggiunta ad un margine sinistro negativo pari alla metà della larghezza dell&#8217;elemento.</p>
<pre>#content{
height:90%;
width:960px;
position:absolute;
top:0;
left:50%;
margin-left:-480px;
overflow:hidden;
}

#footer{
height:10%;
width:960px;
position:absolute;
bottom:0;
left:50%;
margin-left:-480px;
overflow:hidden;
}</pre>
<p>In questo modo otteniamo un layout a larghezza fissa centrato con altezza al 100% e footer adiacente al margine inferiore della finestra del browser. <a title="Layout ad altezza 100%" href="http://www.howtoweb.it/wp-content/uploads/height/height3.html" target="_self">Vedi l&#8217;esempio</a>.</p>
<h3>Note:</h3>
<p>Questa soluzione non è consigliata per siti complessi in quanto il posizionamente assoluto rende maggiormente complessa l&#8217;impaginazione dei contenuti e come detto all&#8217;inizio mette a repentaglio l&#8217;accessibilità dei contenuti a risoluzioni ridotte.</p>
<p>La proprietà <em>overflow:hidden; </em>è stata inserita negli elementi per evitare che al ridimensionamento della finestra del browser l&#8217;altezza del contenuto comprometta il layout  ma non è indispensabile per rendere l&#8217;altezza fluida.</p>
<p>Per far sì che il footer della pagina sia sempre adiacente al margine inferiore della pagina è possibile utilizzare solo il posizionamento assoluto con la proprietà <em>bottom:0; </em>senza ricorrere ad altezze in percentuale.</p>
<p>Le altezze in percentuale come le larghezze vengono renderizzate convertendo la dimensione in percentuale dell&#8217;elemento in pixel, può quindi accadere di avere uno spazio bianco tra due elementi (come #content e #footer) dato da un arrotondamento approssimativo, per risolvere questo problema è possibile utilizzare il background del body per non rendere visibile questo spazio. Nell&#8217;esempio si è settato volontariamente un sfondo bianco per rendere visibile questa problematica.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/realizzare-layout-altezza-fluida-con-i-css/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>44 esempi di layout a larghezza fissa da non perdere</title>
		<link>http://www.howtoweb.it/articoli/44-esempi-layout-a-larghezza-fissa/</link>
		<comments>http://www.howtoweb.it/articoli/44-esempi-layout-a-larghezza-fissa/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 20:40:03 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[grafica]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Risorse]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=441</guid>
		<description><![CDATA[Uno dei primi passi nella realizzazione di un buon sito web è la progettazione del layout. Normalmente questa è influenzata dalla quantità di contenuti di un sito, dal design della pagina e dall&#8217;usabilità dei vari elementi presenti. Una volta definiti &#8230; <a href="http://www.howtoweb.it/articoli/44-esempi-layout-a-larghezza-fissa/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Uno dei primi passi nella realizzazione di un buon sito web è la progettazione del layout. Normalmente questa è influenzata dalla quantità di contenuti di un sito, dal design della pagina e dall&#8217;usabilità dei vari elementi presenti.</p>
<p>Una volta definiti questi aspetti si può partire definendo una griglia per il nostro layout. Questo permettà di mantenere ordine e conformità grafica nelle varie pagine.</p>
<p>Per realizzare una griglia è necessario definire almeno tre dimensioni:</p>
<p>-<em>Larghezza della pagina</em></p>
<p>-<em>Numero di colonne</em></p>
<p>-<em>Spaziatura tra i vari elementi</em></p>
<h3>Larghezza della pagina</h3>
<p>Per questa dimensione è consigliabile utilizzare una misura uguale o inferiore ai 960px che rappresenta l&#8217;area visibile dall&#8217;utente ad una risoluzione di 1024x768px con i diversi browser. La misura in realtà è di 968px ma viene arrotondata per comodità. Essendo la risoluzione minima più usata dagli utenti di 1024x768px garantisce un ottima compatibilità con i monitor degli utenti.</p>
<h3>Numero di colonne</h3>
<p>Il numero di colonne deve essere definito in base alla quantità e alla varietà di contenuti del sito. E&#8217; utile ricordare che un minor numero di colonne lascerà più spazio per immagini e grafiche mentre un numero eccessivo renderà il contenuto difficilmente leggibile. Bisogna sempre valutare a priori quale soluzione sia opportuna per un determinato contesto.</p>
<h3>Spaziatura tra gli elementi</h3>
<p>In qualunque contesto grafico è utile lasciare un minimo di spazio tra i contenuti per migliorare la leggibilità e soprattutto definire aree differenti con diversi elementi. Facendo attenzione che lo spazio sia proporzionale ai contenuti e non faccia prevalere il &#8220;vuoto&#8221; che porterebbe solo disturbo e confusione nella pagina. E&#8217; utile ricordare che una volta definita una spaziatura è opportuno mantenerla su tutto il sito per garantire una migliore leggibilità all&#8217;utente.</p>
<p>Viste queste premesse ho creato 44 esempi di layout a larghezza fissa da 960px con differente numero di colonne e differenti spaziature. Gli esempi sono visibili su <a title="44 esempi di layout a larghezza fissa" href="http://www.howtoweb.it/wp-content/uploads/layout_fissi/layout_fissi.php" target="_self">questa pagina</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/44-esempi-layout-a-larghezza-fissa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Realizzare una semplice galleria immagini con jquery</title>
		<link>http://www.howtoweb.it/tutorial/realizzare-una-semplice-galleria-immagini-con-jquery/</link>
		<comments>http://www.howtoweb.it/tutorial/realizzare-una-semplice-galleria-immagini-con-jquery/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 05:00:52 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=437</guid>
		<description><![CDATA[Realizzare una galleria immagine è un&#8217;operazione abbastanza comune per il buon web designer, di norma la sfida più grande consiste nel rinnovarsi e nell&#8217;aggiungere un approccio creativo ai vari progetti. Per trovare una facile applicazione alle soluzioni più creative ci &#8230; <a href="http://www.howtoweb.it/tutorial/realizzare-una-semplice-galleria-immagini-con-jquery/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Realizzare una galleria immagine è un&#8217;operazione abbastanza comune per il buon web designer, di norma la sfida più grande consiste nel rinnovarsi e nell&#8217;aggiungere un approccio creativo ai vari progetti.</p>
<p>Per trovare una facile applicazione alle soluzioni più creative ci viene incontro jquery che mette a disposizione numerosi effetti e semplifica notevolemente l&#8217;utilizzo di javascript.</p>
<p>Vediamo come realizzare una semplice galleria di immagini in pochi passi.</p>
<p>Per prima cosa creiamo la nostra pagina html ed inseriamo all&#8217;interno un div con i relativi contenuti (nel nostro caso le immagini della galleria).</p>
<pre>&lt;div id="contenitore"&gt;
 &lt;div&gt;&lt;img src="images/1.jpg" alt="Immagine 1" /&gt;&lt;/div&gt;
 &lt;div&gt;&lt;img src="images/2.jpg" alt="Immagine 2" /&gt;&lt;/div&gt;
 &lt;div&gt;&lt;img src="images/3.jpg" alt="Immagine 3" /&gt;&lt;/div&gt;
&lt;/div&gt;</pre>
<p>Una struttura così semplice ci permetterà in seguito di creare alternative accessibili o per media che non supportano questa soluzione.</p>
<p>Fatto questo partiamo con jquery, come sempre iniziamo definendo la partenza dello script al caricamento della pagina con la funzione <em>ready.</em></p>
<pre>$(document).ready(function(){

});</pre>
<p>Come seconda mossa definiamo un evento che porterà l&#8217;utente a vedere l&#8217;immagine successiva. Nel nostro caso il click sul div (o meglio sulla prima immagine visualizzata).</p>
<pre>$(document).ready(function(){
$('div#contenitore div').click(function () {

});
});</pre>
<p>Ora possiamo definire il codice che farà scomparire l&#8217;immagine attuale e mostrerà l&#8217;immagine successiva</p>
<pre>$(this).fadeOut(200, function() {$(this).next().fadeIn( 200);});</pre>
<p>In questo modo definiamo un fadeOut sul div contenitore dell&#8217;immagine su cui abbiamo appena cliccato e definiamo come funzione di callback un fadeIn sull&#8217;immagine successiva.</p>
<p>Rimane un unico problema da risolvere, quando si arriva all&#8217;ultima immagine questa deve scomparire e far apparire la prima. Per risolvere utilizziamo un semplice <em>if </em>che valuterà se l&#8217;elemento cliccato è l&#8217;ultimo del div oppure no.</p>
<pre>if ($(this).is(":last-child")) {
}else{
}</pre>
<p>Per vedere lo script in funzione guarda <a title="Galleria immagini con jquery" href="http://www.howtoweb.it/wp-content/uploads/jquerygallery/gallery_jquery.html" target="_self">questo esempio</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/realizzare-una-semplice-galleria-immagini-con-jquery/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Quanto sono ottimizzate le pagine del tuo sito web?</title>
		<link>http://www.howtoweb.it/articoli/quanto-sono-ottimizzate-pagine-sito-web/</link>
		<comments>http://www.howtoweb.it/articoli/quanto-sono-ottimizzate-pagine-sito-web/#comments</comments>
		<pubDate>Fri, 22 May 2009 14:15:14 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=434</guid>
		<description><![CDATA[Lavorando su un sito web quanto tempo dedichi all&#8217;ottimizzazione? Definisci una fase del progetto dedicata a quest&#8217;operazione oppure crei il sito seguendo a priori determinati standard di produzione per garantire un buon risultato? In entrambi i casi dovresti pensare al &#8230; <a href="http://www.howtoweb.it/articoli/quanto-sono-ottimizzate-pagine-sito-web/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lavorando su un sito web quanto tempo dedichi all&#8217;ottimizzazione? Definisci una fase del progetto dedicata a quest&#8217;operazione oppure crei il sito seguendo a priori determinati standard di produzione per garantire un buon risultato?</p>
<p>In entrambi i casi dovresti pensare al fatto che prima o poi dovrai accertarti di tempi di caricamento, peso delle pagine e numero di elementi presenti.</p>
<p>Per fare questo ti occorrono stime certe da poter confrontare con il tuo target di utenti e valutare le possibili soluzioni.</p>
<p><span id="more-434"></span></p>
<p>Una soluzione rapida, precisa e molto dettagliata ce la fornisce <a title="Web test page" href="http://www.webpagetest.org/" target="_blank">webtestpage</a> che mette a disposizione un comodo tool che restituisce dati molto precisi su tempi di caricamento, peso delle pagine e possibili ottimizzazioni.</p>
<p>Il sito offre anche la possibilità di vedere i rapporti di altri siti salvati in precedenza senza dover richiedere nuovamente l&#8217;analisi.</p>
<p>Se avete il dubbio che il vostro sito possa essere più veloce e più leggero allora vi conviene spendere qualche minuto su questo comodo servizio gratuito per valutare eventuali interventi in tempi brevi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/quanto-sono-ottimizzate-pagine-sito-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>5 ottimi links sui css che non puoi perderti</title>
		<link>http://www.howtoweb.it/articoli/5-ottimi-links-sui-css-che-non-puoi-perderti/</link>
		<comments>http://www.howtoweb.it/articoli/5-ottimi-links-sui-css-che-non-puoi-perderti/#comments</comments>
		<pubDate>Sun, 17 May 2009 05:00:57 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[Risorse]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[statistiche]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=421</guid>
		<description><![CDATA[La domenica è un buon giorno da dedicare alla lettura di tutto ciò che ci è passato sotto al naso ma non si è potuto leggere a causa del poco tempo durante la settimana. Per oggi ti propongo 5 spunti &#8230; <a href="http://www.howtoweb.it/articoli/5-ottimi-links-sui-css-che-non-puoi-perderti/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>La domenica è un buon giorno da dedicare alla lettura di tutto ciò che ci è passato sotto al naso ma non si è potuto leggere a causa del poco tempo durante la settimana.</p>
<p>Per oggi ti propongo 5 spunti interessanti sui css che penso possano interessarti:</p>
<h3><span id="more-421"></span><a title="Valori di default per i fogli di stile nell'html 4" href="http://www.w3.org/TR/CSS21/sample.html" target="_blank">Regole css applicate di default agli elementi delle pagine html<br />
</a></h3>
<p>Senza dubbio non è una nuova risorsa ma questa settimana ho scoperto che sono in molti a non leggere i documenti del w3c, nel caso ti sei mai chiesto quali sono le proprietà di default sugli elementi html questo documento riassume per ogni elemento le varie regole che gli sono attribuite di default.</p>
<h3><a title="10 proprietà css utili ma non supportatew da Internet explorer" href="http://www.impressivewebs.com/10-useful-css-properties-not-supported-by-internet-explorer/" target="_blank">10 proprietà css molto utili ma non supportate da internet explorer<br />
</a></h3>
<p>Il titolo dice tutto, nel caso non ti bastasse questo articolo per abbandonare Internet Explorer <a title="Perchè gli utente abbandoneranno Internet Explorer nei prossimi anni" href="http://www.howtoweb.it/articoli/perch-utenti-abbandoneranno-internet-explorer-nei-prossimi-anni/" target="_self">leggi questo articolo</a>, se invece hai già abbandonato da tempo il browser microsoft ti consiglio <a title="Too cool for Internet Explorer" href="http://www.w3junkies.com/toocool/" target="_blank">questa iniziativa</a> molto simpatica.</p>
<h3><a title="Creare thumbnail grazie alla proprietà clip" href="http://www.seifi.org/css/creating-thumbnails-using-the-css-clip-property.html" target="_blank">Creare thumbnail grazie alla proprrietà clip</a></h3>
<p>Un bel tutorial, che spiega come realizzare semplici thumbnail da immagini più grandi grazie alla proprietà clip dei css, in alternativa ripropongo questo articolo sulla <a title="Gestire le thumbanail con i css" href="http://www.howtoweb.it/tutorial/come-gestire-thumbnail-con-css/" target="_self">gestione delle thumbnail con i css</a> e questo su <a title="cos'è canvas e a cosa serve" href="http://www.howtoweb.it/articoli/cose-canvas-e-a-cosa-serve/">come realizzare una thumbnail grazie a canvas</a>.</p>
<h3><a title="Esempi di animazione con i css" href="http://www.ferretarmy.com/css-animation-examples/" target="_blank">Esempi di animazione con i css</a></h3>
<p>Alcuni interessanti esempi di animazione creati con solo css, attualmente funzionano solo su Chrome e Safari, vi consiglio quindi di utilizzare uno di questi browser per capire il potenziale ancora inespresso dei css.</p>
<h3><a title="Statistiche sul supporto dei selettori css sui vari browser" href="http://centricle.com/ref/css/filters/" target="_blank">Statistiche sul supporto dei selettori css sui vari browser</a></h3>
<p>Un ottimo riassunto di tutti i selettori css e del supporto fornito da ogni browser con rispettivo sistema operativo, un utile memento quando utilizziamo molti css hacks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/5-ottimi-links-sui-css-che-non-puoi-perderti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come posizionare gli elementi in una pagina html con i css</title>
		<link>http://www.howtoweb.it/articoli/come-posizionare-elementi-con-css/</link>
		<comments>http://www.howtoweb.it/articoli/come-posizionare-elementi-con-css/#comments</comments>
		<pubDate>Thu, 14 May 2009 05:00:28 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=391</guid>
		<description><![CDATA[La proprietà position per gli elementi html è stata introdotta nella versione 2 dei CSS dal w3c, il loro utilizzo è molto semplice e spesso vengono utilizzati impropriamente da utenti poco esperti per la realizzazione del layout. Come vedremo in &#8230; <a href="http://www.howtoweb.it/articoli/come-posizionare-elementi-con-css/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>La proprietà <em>position</em> per gli elementi html è stata introdotta nella versione 2 dei CSS dal w3c, il loro utilizzo è molto semplice e spesso vengono utilizzati impropriamente da utenti poco esperti per la realizzazione del layout.</p>
<p>Come vedremo in questo tutorial il posizionamento dei vari elementi richiede qualche competenza per non compromette la compatibilità del layout nei vari browser.</p>
<h3>La proprietà position</h3>
<p>La proprietà position ammette quattro valori: <em> static, relative, absolute e </em><em>fixed</em><em>. </em>Esistono grandi differenze tra questi quattro valori che occorre capire per utilizzarli al meglio.</p>
<h3>Posizionamento statico</h3>
<p>Il valore <em>static </em>è attribuito di default ad ogni elemento ed ignora qualunque tipo di offset attribuito all&#8217;elemento come <em>top, left, bottom e </em><em>right</em>. Questo tipo di posizionamento non altera la posizione dell&#8217;elemento e viene implicitamente attribuito ad ogni elemento della pagina com&#8217;è possibile vedere in <a title="esempio di posizionamento statico" href="http://www.howtoweb.it/wp-content/uploads/position/esempio_posizionamento_statico.html" target="_self">questo esempio</a>.</p>
<h3>Posizionamento relativo</h3>
<p>Il valore <em>relative </em>altera il posizionamento di un elemento tramite un offset impostato con le proprietà <em>top, left, bottom e </em><em>right.</em> Gli altri elementi della pagina non mutano il proprio posizionamento in quanto il posizionamento relativo non estrae dal flusso l&#8217;elemento ma lo colloca su un livello superiore.</p>
<p>In <a title="esempio di posizionamento relativo" href="http://www.howtoweb.it/wp-content/uploads/position/esempio_posizionamento_relativo.html" target="_self">questo esempio</a> possiamo notare come il posizionamento relativo collochi l&#8217;elemento sopra un elemento con posizionamento statico. Per gestire la sovrapposizione degli elementi è possibile utilizzare z-index con un valore inferiore a 0 (avendo gli elementi della pagina z-index con valore 0 di default) come in <a title="esempio di posizionamento relativo con z-index" href="http://www.howtoweb.it/wp-content/uploads/position/esempio_posizionamento_relativo_zindex.html" target="_self">questo esempio</a>.</p>
<h3>Posizionamento assoluto</h3>
<p>Il valore <em>absolute </em>posiziona un elemento in relazione all&#8217;elemento html o all&#8217;elemento genitore che ha un posizionamento diverso da statico. Bisogna ricordare che a differenza del posizionamento relativo quello assoluto colloca l&#8217;elemento al di fuori del tradizionale flusso della pagina influenzando quindi il layout.</p>
<p>In <a title="esempio di posizionamento assoluto" href="http://www.howtoweb.it/wp-content/uploads/position/esempio_posizionamento_assoluto.html" target="_self">questo esempio</a> vediamo come due elementi con posizionamento assoluto si comportino in maniera diversa a causa del riferimento per la posizione.</p>
<p>Il primo div infatti calcola l&#8217;offset partendo dall&#8217;elemento genitore (con id <em>relativo</em>) mentre il secondo non avendo un elemento genitore con posizionamento diverso da statico prende come riferimento l&#8217;elemento <em>html.</em></p>
<p>Occorre ricordare che Internet Explorer 6 e versioni precedenti presentano numerosi bug sul posizionamento assoluto. Una buona soluzione per risolvere queste problematiche è quello di settare un&#8217;altezza dell&#8217;elemento contenitore a 0 solo per Internet Explorer 6 e precedenti.</p>
<pre>&lt;!--[if lte IE 6]&gt;
div{height:0;}
&lt;![endif]--&gt;</pre>
<h3>Posizionamento fisso</h3>
<p>Il valore <em>fixed</em> estrae un elemento dal flusso e lo posiziona in base all&#8217;offset (specificato con <em>top, left, bottom e </em><em>right</em>) in relazione all&#8217;elemento html.</p>
<p>Il posizionamento fisso può sembrare simile al posizionamento assoluto, ma non rispetta la regola del genitore con posizionamento diverso da statico, infatti utilizza sempre come riferimento l&#8217;elemento <em>html, </em><a title="esempio di posizionamento fisso" href="http://www.howtoweb.it/wp-content/uploads/position/esempio_posizionamento_fisso.html" target="_self">utilizzando il precedente esempio con questo tipo di posizionamento</a> notiamo che i due div si sovrappongo in cima alla pagina.</p>
<p>Un&#8217;altra differenza rispetto al posizionamento assoluto è che  ignora lo scroll nelle pagine con contenuto più alto dell&#8217;area visibile nel browser e mantiene la posizione definita in relazione alla finestra del browser.</p>
<p>In <a title="esempio di posizionamento fisso con scroll" href="http://www.howtoweb.it/wp-content/uploads/position/esempio_posizionamento_fisso_noscroll.html" target="_self">questo esempio</a> vediamo come si comporta un elemento con posizionamento assoluto ed uno con posizionamento fisso in una pagina con molto contenuto.</p>
<p>Occorre inoltre ricordare che il valore <em>fixed </em>per la proprietà position non è supprtato da Internet Explorer 6 e versioni precedenti.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/come-posizionare-elementi-con-css/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

