<?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; html</title>
	<atom:link href="http://www.howtoweb.it/tag/html/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>Utilizzare JQuery UI Autocomplete con PHP e Mysql</title>
		<link>http://www.howtoweb.it/articoli/utilizzare-jquery-ui-autocomplete-con-php-e-mysql/</link>
		<comments>http://www.howtoweb.it/articoli/utilizzare-jquery-ui-autocomplete-con-php-e-mysql/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 08:56:36 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=680</guid>
		<description><![CDATA[In questo articolo vedremo come integrare facilmente il widget autocomplete di Jquery UI all&#8217;interno di pagine dinamiche. L&#8217;utilizzo è molto semplice, come prima cosa è necessario scaricare il pacchetto completo di Jquery UI compreso di tema personalizzato o standard e &#8230; <a href="http://www.howtoweb.it/articoli/utilizzare-jquery-ui-autocomplete-con-php-e-mysql/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-687" title="autocomplete" src="http://www.howtoweb.it/wp-content/uploads/2010/06/autocomplete.jpg" alt="" /></p>
<p>In questo articolo vedremo come integrare facilmente il widget autocomplete di Jquery UI all&#8217;interno di pagine dinamiche.</p>
<p>L&#8217;utilizzo è molto semplice, come prima cosa è necessario scaricare il pacchetto completo di Jquery UI compreso di tema personalizzato o standard e collegare i rispettivi files alla pagina dinamica.</p>
<pre>&lt;link rel="stylesheet" href="css/theme/ui.theme.css" type="text/css"/&gt;
&lt;script src="js/jquery.min.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;script src="js/jquery-ui.min.js" type="text/javascript"&gt;&lt;/script&gt;</pre>
<p>Ora possiamo aggiungere l&#8217;elemento input che utilizzero per l&#8217;autocomplete, per comodità di selezione verrà aggiunto un id.</p>
<pre>&lt;input value="Insert your tag here" /&gt;</pre>
<p>Per ciò che riguarda javascript iniziamo applicando un autocomplete base al campo input</p>
<pre>$(function() {var myTags = ["tag1", "tag2", "anotherTag", "simpleTag"];
$("#tags").autocomplete({source: myTags});});</pre>
<p>In questo caso settiamo come opzione &#8220;source&#8221; che specifica come sorgente l&#8217;array &#8220;myTags&#8221;.Per rendere dinamico l&#8217;autocomplete modifichiamo la sorgente con un file dinamico che si occuperà di effettuare la ricerca</p>
<pre> $("#tags").autocomplete({source: "tagSearch.php"});</pre>
<p>Di seguito un esempio per tagSearch.php:</p>
<pre>//creazione di un array vuoto
$return_arr = array();

//dati di accesso a mysql e al db
$dbhost = 'YOUR_SERVER';
$dbuser = 'YOUR_USERNAME';
$dbpass = 'YOUR_PASSWORD';
$dbname = 'YOUR_DATABASE_NAME';

//definisco la variabile di ricerca dell'utente
$term = $_GET("term");

//connessione al a mysql
$conn = mysql_connect($dbhost, $dbuser, $dbpass)
or die ('Impossibile connettersi a Mysql');
//selezione ddb
mysql_select_db($dbname);
//se connesso
if ($conn)
{
//query select
$fetch = mysql_query("SELECT * FROM tags WHERE MATCH(tagName) AGAINST('".$term."*')");
//loop dei dati
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$row_array['value'] = $row['tagName '];
array_push($return_arr,$row_array);
}

}
//chiudo la connessione a mysql
mysql_close($conn);
//restituisco l'array in formato json
echo json_encode($return_arr);</pre>
<p>La variabile $terms viene ricavata dall&#8217;url, l&#8217;autocomplete di Jquery UI richiama infatti il file search.php con la variabile term (es. search.php?term=ciao) ad ogni change nel campo input.Considerato che la variabile term viene aggiornata e inviata ad ogni change del campo ho utilizzato MATCH AGAINST nella query affinchè ad ogni richiesta mysql cerchi l&#8217;input dell&#8217;utente seguito da altro.Il risultato è che a fronte di una ricerca &#8220;a&#8221; verranno restituiti tutti i dati che iniziano per &#8220;a&#8221;, aggiungendo lettere verranno restituiti solo i dati che corrispondono ai criteri della ricerca.</p>
<p>L&#8217;autocomplete di JQuery UI prevede una vasta serie di opzioni con le quali è possibile manipolare i dati prensenti nell&#8217;input e nei risultati, creare una cache dai dati e customizzare aspetto e animazioni dell&#8217;input.Per maggiori informazioni consiglio una lettura della documentazione disponibile sulla <a title="jquery ui autocomplete demo" href="http://jqueryui.com/demos/autocomplete/" target="_blank">pagina dedicata</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/utilizzare-jquery-ui-autocomplete-con-php-e-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lezioni di HTML 5 Lezione 4 &#8211; L&#039;elemento video</title>
		<link>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video/</link>
		<comments>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video/#comments</comments>
		<pubDate>Wed, 19 May 2010 22:19:30 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=635</guid>
		<description><![CDATA[Una delle funzionalità più interessanti dell&#8217;HTML 5 è senza dubbio rappresentata dalla possibilità di inserire filmati video all&#8217;interno della pagina web. Questo elemento cambia notevolmente il modo in cui gli utenti possono usufruire dei video su internet permettendo la visione &#8230; <a href="http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-573" title="html5_lesson1" src="http://www.howtoweb.it/wp-content/uploads/2010/04/html5_lesson11.jpg" alt="" width="580" height="200" /></p>
<p>Una delle funzionalità più interessanti dell&#8217;HTML 5 è senza dubbio rappresentata dalla possibilità di inserire filmati video all&#8217;interno della pagina web.</p>
<p>Questo elemento cambia notevolmente il modo in cui gli utenti possono usufruire dei video su internet permettendo la visione del contenuto senza un player flash.</p>
<p>L&#8217;attuale supporto per questo elemento è riservato alle ultime versioni di firefox, safari e chrome ma la stessa microsoft ha annunciato il supporto per Internet explorer 9 mentre per Opera dalla versione 10 (10.5).</p>
<h3>Per iniziare</h3>
<p>Prima di iniziare con il codice è indispensabile ricordare che non tutti i browser supportano gli stessi contenitori e gli stessi codecs audio/video. Un file video è di fatti composto da un contenitore (mpeg4,flash video, ogg ecc), un codec audio (mpeg1,vorbis, ecc) e un codec video (mpeg4 asp, h.264, theora).<br />
Per portare un po&#8217; di ordine in questa situazione è utile tener presente ciò che è supportato dai browser e preparare due files. Uno con theora,vorbis e ogg e il secondo con h.624,aac e mp4.</p>
<p>Il primo files sarà supportato da firefox, opera e chrome il secondo da chrome, safari, iphone e android.</p>
<p>Per la conversione dei files di questo esempio sono stati utilizzati <a href="http://v2v.cc/~j/ffmpeg2theora/" target="_blank">ffmpeg2theora</a> ed <a href="http://handbrake.fr/" target="_blank">handbrake</a> .</p>
<h3>L&#8217;elemento video</h3>
<p>Per integrare nella pagina web il nostro video utilizziamo l&#8217;elemento video con chiusura esplicita.</p>
<pre>&lt;video&gt;&lt;/video&gt;</pre>
<p>Al suo interno è possibile specificare un contenuto alternativo nel caso il browser non supporti questo elemento.</p>
<pre>&lt;video&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Considerato che l&#8217;elemento video si comporta come l&#8217;elemento immagine necessita sempre di avere un altezza e una larghezza specifica.</p>
<pre>&lt;video width="640" height="480"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Per inserire il video sorgente aggiungiamo l&#8217;attributo src con la path relativa alla risorsa.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Per rendere visibili i controlli del video è sufficiente aggiungere l&#8217;attributo controls.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" controls&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Se desideriamo che il video venga scaricato non appena la pagina è caricata possiamo aggiungere l&#8217;attributo preload.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" preload&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>O in caso contrario specificare &#8220;none&#8221; come valore.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" preload="none"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Un&#8217;ultima opzione viene offerta dall&#8217;attributo autoplay che fa partire automaticamente il filmato.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" autoplay&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Un&#8217;ultima nota va dedicata al fatto che abbiamo due file da inserire e non uno, l&#8217;attributo src non è quindi sufficiente e dobbiamo utilizzare l&#8217;elemento source con l&#8217;attributo src per definire la risorsa.<br />
In aggiunta è necessario specificare il mime del file e i codecs per far sì che il browser sappia a priori cosa andrà a caricare e se è supporta lo specifico file.</p>
<pre>&lt;video  width="640" height="480" autoplay&gt;
&lt;source src="miovideo.m4v" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'&gt;
&lt;source src="miovideo.ogv" type='video/ogg; codecs="theora, vorbis"'&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<h3>In conclusione</h3>
<p>Una volta applicato questo codice con i relativi percorsi ai rispettivi files si ottiene un risultato come in <a href="http://www.howtoweb.it/wp-content/uploads/video" target="_blank">questo esempio</a>.</p>
<p>Il video utilizzato nell&#8217;esempio è  visibile su <a href="http://www.youtube.com/watch?v=XB5qvfE92P8" target="_blank">youtube </a>ed è stato gentilmente fornito da <a href="http://blog.vialemarchinoguido.com/" target="_blank">Guido Viale Marchino</a> che ringrazio per l&#8217;aiuto.</p>
<p>Una funzionalità aggiuntiva per i browser che non supportano il tag video potrebbe essere quella di aggiungere un flash player come contenuto alternativo ma richiede una verifica del supporto dell&#8217;elemento video per il client utilizzato dall&#8217;utente.</p>
<p>Nel prossimo articolo vedremo come verificare il supporto delle varie funzionalità dell&#8217;HTML 5 nel browser dell&#8217;utente. Torna a trovarmi su howtoweb.it per le prossime lezioni di html 5 o <a href="http://www.howtoweb.it/feed/" target="_self">iscriviti agli rss</a> per rimanere sempre aggiornato sui nuovi articoli.</p>
<h3>Nota:</h3>
<p>Ho notato che inizialmente il video non veniva caricato correttamente su firefox e opera, il problema era il fatto che il mime video/ogg non veniva associato da apache al file in formato .ogv</p>
<p>Per risolvere ho aggiunto un file .htaccess nella cartella specificando a quali formati applicare il mime presente nela pagina html.</p>
<p>Nel caso incontriate la stessa problematica è possibile risolvere con questa linea di codice all&#8217;interno del file .htaccess</p>
<pre>AddType video/ogg .ogg .ogv</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lezioni di HTML 5 Lezione 4 &#8211; L&#8217;elemento video</title>
		<link>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video-2/</link>
		<comments>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video-2/#comments</comments>
		<pubDate>Wed, 19 May 2010 22:19:30 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=635</guid>
		<description><![CDATA[Una delle funzionalità più interessanti dell&#8217;HTML 5 è senza dubbio rappresentata dalla possibilità di inserire filmati video all&#8217;interno della pagina web. Questo elemento cambia notevolmente il modo in cui gli utenti possono usufruire dei video su internet permettendo la visione &#8230; <a href="http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video-2/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-573" title="html5_lesson1" src="http://www.howtoweb.it/wp-content/uploads/2010/04/html5_lesson1.jpg" alt="" width="580" height="200" /></p>
<p>Una delle funzionalità più interessanti dell&#8217;HTML 5 è senza dubbio rappresentata dalla possibilità di inserire filmati video all&#8217;interno della pagina web.</p>
<p>Questo elemento cambia notevolmente il modo in cui gli utenti possono usufruire dei video su internet permettendo la visione del contenuto senza un player flash.</p>
<p>L&#8217;attuale supporto per questo elemento è riservato alle ultime versioni di firefox, safari e chrome ma la stessa microsoft ha annunciato il supporto per Internet explorer 9 mentre per Opera dalla versione 10 (10.5).</p>
<h3>Per iniziare</h3>
<p>Prima di iniziare con il codice è indispensabile ricordare che non tutti i browser supportano gli stessi contenitori e gli stessi codecs audio/video. Un file video è di fatti composto da un contenitore (mpeg4,flash video, ogg ecc), un codec audio (mpeg1,vorbis, ecc) e un codec video (mpeg4 asp, h.264, theora).<br />
Per portare un po&#8217; di ordine in questa situazione è utile tener presente ciò che è supportato dai browser e preparare due files. Uno con theora,vorbis e ogg e il secondo con h.624,aac e mp4.</p>
<p>Il primo files sarà supportato da firefox, opera e chrome il secondo da chrome, safari, iphone e android.</p>
<p>Per la conversione dei files di questo esempio sono stati utilizzati <a href="http://v2v.cc/~j/ffmpeg2theora/" target="_blank">ffmpeg2theora</a> ed <a href="http://handbrake.fr/" target="_blank">handbrake</a> .</p>
<h3>L&#8217;elemento video</h3>
<p>Per integrare nella pagina web il nostro video utilizziamo l&#8217;elemento video con chiusura esplicita.</p>
<pre>&lt;video&gt;&lt;/video&gt;</pre>
<p>Al suo interno è possibile specificare un contenuto alternativo nel caso il browser non supporti questo elemento.</p>
<pre>&lt;video&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Considerato che l&#8217;elemento video si comporta come l&#8217;elemento immagine necessita sempre di avere un altezza e una larghezza specifica.</p>
<pre>&lt;video width="640" height="480"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Per inserire il video sorgente aggiungiamo l&#8217;attributo src con la path relativa alla risorsa.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Per rendere visibili i controlli del video è sufficiente aggiungere l&#8217;attributo controls.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" controls&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Se desideriamo che il video venga scaricato non appena la pagina è caricata possiamo aggiungere l&#8217;attributo preload.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" preload&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>O in caso contrario specificare &#8220;none&#8221; come valore.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" preload="none"&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Un&#8217;ultima opzione viene offerta dall&#8217;attributo autoplay che fa partire automaticamente il filmato.</p>
<pre>&lt;video src="miovideo.ogv" width="640" height="480" autoplay&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<p>Un&#8217;ultima nota va dedicata al fatto che abbiamo due file da inserire e non uno, l&#8217;attributo src non è quindi sufficiente e dobbiamo utilizzare l&#8217;elemento source con l&#8217;attributo src per definire la risorsa.<br />
In aggiunta è necessario specificare il mime del file e i codecs per far sì che il browser sappia a priori cosa andrà a caricare e se è supporta lo specifico file.</p>
<pre>&lt;video  width="640" height="480" autoplay&gt;
&lt;source src="miovideo.m4v" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'&gt;
&lt;source src="miovideo.ogv" type='video/ogg; codecs="theora, vorbis"'&gt;
&lt;p&gt;Spiacente il tuo browser non supporta l'elemento video&lt;/p&gt;
&lt;/video&gt;</pre>
<h3>In conclusione</h3>
<p>Una volta applicato questo codice con i relativi percorsi ai rispettivi files si ottiene un risultato come in <a href="http://www.howtoweb.it/wp-content/uploads/video" target="_blank">questo esempio</a>.</p>
<p>Il video utilizzato nell&#8217;esempio è  visibile su <a href="http://www.youtube.com/watch?v=XB5qvfE92P8" target="_blank">youtube </a>ed è stato gentilmente fornito da <a href="http://blog.vialemarchinoguido.com/" target="_blank">Guido Viale Marchino</a> che ringrazio per l&#8217;aiuto.</p>
<p>Una funzionalità aggiuntiva per i browser che non supportano il tag video potrebbe essere quella di aggiungere un flash player come contenuto alternativo ma richiede una verifica del supporto dell&#8217;elemento video per il client utilizzato dall&#8217;utente.</p>
<p>Nel prossimo articolo vedremo come verificare il supporto delle varie funzionalità dell&#8217;HTML 5 nel browser dell&#8217;utente. Torna a trovarmi su howtoweb.it per le prossime lezioni di html 5 o <a href="http://www.howtoweb.it/feed/" target="_self">iscriviti agli rss</a> per rimanere sempre aggiornato sui nuovi articoli.</p>
<h3>Nota:</h3>
<p>Ho notato che inizialmente il video non veniva caricato correttamente su firefox e opera, il problema era il fatto che il mime video/ogg non veniva associato da apache al file in formato .ogv</p>
<p>Per risolvere ho aggiunto un file .htaccess nella cartella specificando a quali formati applicare il mime presente nela pagina html.</p>
<p>Nel caso incontriate la stessa problematica è possibile risolvere con questa linea di codice all&#8217;interno del file .htaccess</p>
<pre>AddType video/ogg .ogg .ogv</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-4-lelemento-video-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lezioni di HTML 5 Lezione 3 &#8211; Semantica</title>
		<link>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-3-semantica/</link>
		<comments>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-3-semantica/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 11:48:50 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html 5]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=615</guid>
		<description><![CDATA[Nel precedente articolo abbiamo visto come utilizzare gli elementi semantici dell&#8217;HTML 5 nella nostra pagina web. Oggi approfondiremo gli aspetti relativi alla semantica di questi tag. Un principale vantaggio derivante dall&#8217;utilizzo di questi elementi è la standarizzazione degli elementi, ovvero &#8230; <a href="http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-3-semantica/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-573" title="html5_lesson1" src="http://www.howtoweb.it/wp-content/uploads/2010/04/html5_lesson11.jpg" alt="" width="580" height="200" /></p>
<p><a title="nuovi tag html 5" href="http://www.howtoweb.it/articoli/lezione-di-html-5-lezione-2-usare-i-nuovi-tag/" target="_self">Nel precedente articolo</a> abbiamo visto come utilizzare gli elementi semantici dell&#8217;HTML 5 nella nostra pagina web.</p>
<p>Oggi approfondiremo gli aspetti relativi alla semantica di questi tag.</p>
<p>Un principale vantaggio derivante dall&#8217;utilizzo di questi elementi è la standarizzazione degli elementi, ovvero a differenza dell&#8217;HTML 4.01 abbiamo una serie di elementi specifici da utilizzare per diverso scopo.</p>
<p>Questo di fatto evita la definizione di div con classi ed id che risultano generici e variano a seconda delle abitudini di chi sviluppa la pagina.</p>
<p>Oltre a questo l&#8217;HTML 5 presenta un nuovo algoritmo per la definizione dell&#8217;outline del documento che modifica il normale modo di definire le intestazioni nel file html.</p>
<p>Facciamo un passo indietro, nell&#8217;HTML 4.01 l&#8217;unico modo per definire l&#8217;outline del documento è quello di utilizzare gli elementi h1/h6 con il rispettivo valore semantico.</p>
<p>Per esempio:</p>
<pre>&lt;h1&gt;Titolo del sito&lt;/h1&gt;
 &lt;h2&gt;sottotitolo del sito&lt;/h2&gt;</pre>
<pre>&lt;h3&gt;Titolo del post&lt;/h3&gt;
 &lt;h4&gt;Sottotitolo del post&lt;/h4&gt;</pre>
<pre>&lt;h3&gt;Titolo del post&lt;/h3&gt;
 &lt;h4&gt;Sottotitolo del post&lt;/h4&gt;</pre>
<p>Notate come h1 sia univoco nella pagina e rappresenti il titolo del sito, il sottotitolo del sito è definito con &lt;h2&gt;, mentre h3 e h4 rappresentano rispettivamente titolo e sottotitolo di una sezione/contenuto della pagina.</p>
<p>In HTML 5 possiamo modificare questa situazione come segue:</p>
<pre>&lt;header&gt;
 &lt;hgroup&gt;
 &lt;h1&gt;Titolo del sito&lt;/h1&gt;
 &lt;h2&gt;sottotitolo del sito&lt;/h2&gt;
 &lt;/hgroup&gt;
 &lt;/header&gt;</pre>
<pre>&lt;article&gt;
 &lt;hgroup&gt;
 &lt;h1&gt;Titolo del post&lt;/h1&gt;
 &lt;h2&gt;Sottotitolo del post&lt;/h2&gt;
 &lt;/hgroup&gt;
 &lt;/article&gt;</pre>
<pre>&lt;article&gt;
 &lt;hgroup&gt;
 &lt;h1&gt;Titolo del post&lt;/h1&gt;
 &lt;h2&gt;Sottotitolo del post&lt;/h2&gt;
 &lt;/hgroup&gt;
 &lt;/article&gt;</pre>
<p>Analizziamo nel dettaglio le differenze.</p>
<h3>L&#8217;elemento h1 si ripete</h3>
<p>Nell&#8217;HTML 5 l&#8217;utilizzo dell&#8217;elemento &lt;article&gt; definisce una sezione indipendente della pagina dove appunto posso riutilizzare l&#8217;elemento h1 dove avrà valore di titolo della sezione/contenuto e non della pagina.</p>
<h3>Utilizzo di hgroup</h3>
<p>L&#8217;utilizzo di hgroup ha lo scopo di raggruppare insieme intestazioni diverse, nel caso del primo elemento all&#8217;interno dell&#8217;header h1 avrà valore di titolo e h2 di sottotitolo, questo permette di utilizzare un&#8217;intestazione con valore associato ad altre intestazioni presenti in quel contesto senza che il significato venga mistificato da elementi uguali presenti sulla pagina.</p>
<p>Come abbiamo visto l&#8217;HTML 5 tratta diversamente la semantica degli elementi da altri linguaggi di markup ma offre indubbiamente una serie di vantaggi che rendono il codice molto più modulare e semantico.</p>
<p>Nel prossimo articolo vedremo come verificare il supporto delle funzionalità più avanzate dell&#8217;HTML5 sul browser dell&#8217;utente.</p>
<p>Passate a trovarmi come sempre su howtoweb.it o abbonatevi ai feed rss per rimanere aggiornati sugli ultimi articoli.</p>
<p>Alla prossima</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/lezioni-di-html-5-lezione-3-semantica/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Lezione di HTML 5 Lezione 2 &#8211; Usare i nuovi tag</title>
		<link>http://www.howtoweb.it/articoli/lezione-di-html-5-lezione-2-usare-i-nuovi-tag/</link>
		<comments>http://www.howtoweb.it/articoli/lezione-di-html-5-lezione-2-usare-i-nuovi-tag/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 05:00:29 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html 5]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=605</guid>
		<description><![CDATA[Nella lezione precedente abbiamo visto come impostare il nostro file in HTML 5 definendo un doctype shorted, un corretto charset e gestendo css e javascript senza enunciazione del mime. Oggi vedremo invece alcuni tag che utilizzeremo per definire il layout &#8230; <a href="http://www.howtoweb.it/articoli/lezione-di-html-5-lezione-2-usare-i-nuovi-tag/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-573" title="html5_lesson1" src="http://www.howtoweb.it/wp-content/uploads/2010/04/html5_lesson11.jpg" alt="" width="580" height="200" /></p>
<p>Nella lezione precedente abbiamo visto come impostare il nostro file in HTML 5 definendo un doctype shorted, un corretto charset e gestendo css e javascript senza enunciazione del mime.</p>
<p>Oggi vedremo invece alcuni tag che utilizzeremo per definire il layout della nostra pagina web.</p>
<p>Prima di procedere, dobbiamo però risolvere un dubbio cruciale.</p>
<h3>I nuovi elementi dell&#8217;HTML 5 sono supportati dai browser attuali?</h3>
<p>La maggior parte dei browser non incontriamo problemi nell&#8217;utilizzo di questi tag, normalmente il browser individua l&#8217;elemento lo aggiunge al DOM della pagina e gli attribuisce dei valori di default in base alle informazioni in suo possesso e nel caso possiamo sovrascrivere stili customizzati con un normale css.</p>
<p>La vera problematica è Internet Explorer che fino alla versione attuale (8) rappresenta l&#8217;elemento sconosciuto nel DOM come un nodo vuoto, rendendo impossibile definire un qualunque stile per l&#8217;elemento.</p>
<h3>La soluzione per Internet Explorer</h3>
<p>Prima di disperarci e tornare ad insultare per l&#8217;ennesima volta il browser di mamma Microsoft sappiate che esiste una soluzione molto semplice al problema.</p>
<p>Possiamo infatti pensare di creare un elemento sconosciuto a Internet Explorer prima della creazione del DOM.</p>
<p>Senza aggiungere l&#8217;elemento a mano nel codice possiamo utilizzare javascript per creare a priori l&#8217;elemento e permetter così di stilizzarlo con i css.</p>
<pre>&lt;script&gt;document.createElement("header");&lt;/script&gt;</pre>
<p>Per fare in modo che il workaround funzioni, è necessario mantenere lo script nell&#8217;head della pagina, una buona norma può essere quella di inserire lo script in un commento condizionale per IE.</p>
<pre>&lt;!--[if IE]&gt;
&lt;script&gt;document.createElement("header");&lt;/script&gt;
&lt;![endif]--&gt;</pre>
<p>Lo script creerà così un elemento &lt;header&gt; prima della creazione del DOM solo per IE, permettendo di stilizzare tale elemento con i css.</p>
<h3>Una scelta migliore,  HTML5 enabling script</h3>
<p>Considerato che i nuovi elementi dell&#8217;HTML 5 sono numerosi potremmo pensare di aggiungerli a mano ma una soluzione sicuramente più comoda e più sicura è rappresentata da questo <a title="HTML 5 Enabling script" href="http://remysharp.com/2009/01/07/html5-enabling-script/" target="_blank">script javascript di Remy Sharp</a> che oltre a velocizzare la realizzazione considera anche problematiche più peculiari come i css per la stampa dove i javascript non vengono eseguiti.</p>
<h3>Al markup!</h3>
<p>Ora che siamo certi di un funzionamento crossbrowser possiamo iniziare ad aggiungere qualche nuovo tag al nostro file.</p>
<h3>Header</h3>
<p>L&#8217;elemento &lt;header&gt; ha come scopo quello di racchiudere una porzione di codice che avrà ruolo di testata della pagina.</p>
<p>Per esempio</p>
<pre>&lt;header&gt;
&lt;!-- il logo ed eventuale intestazione al sito --&gt;
&lt;/header&gt;</pre>
<h3>Hgroup</h3>
<p>L&#8217;elemento &lt;hgroup&gt; racchiude una porzione di codice composta da intestazioni</p>
<pre>&lt;header&gt;
&lt;hgroup&gt;
&lt;h1&gt;Titolo del sito&lt;/h1&gt;
&lt;h2&gt;Sottotitolo&lt;/h2&gt;
&lt;/hgroup&gt;
&lt;/header&gt;</pre>
<h3>Article</h3>
<p>L&#8217;elemento &lt;article&gt; racchiude una porzione di codice semanticamente indipendente dal resto della pagina e sì possiamo utilizzarla al posto del solito &lt;div&gt; di wordpress <img src='http://www.howtoweb.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre>&lt;article&gt;
&lt;header&gt;
&lt;hgroup&gt;
&lt;h1&gt;Titolo del sito&lt;/h1&gt;
&lt;h2&gt;Sottotitolo&lt;/h2&gt;
&lt;/hgroup&gt;
&lt;/header&gt;
&lt;/article&gt;</pre>
<h3>Time</h3>
<p>L&#8217;elemento &lt;time&gt; rappresenta una data di pubblicazione.</p>
<pre>&lt;time datetime="2010-04-21" pubdate&gt;21 Aprile 2009&lt;/time&gt;</pre>
<p>L&#8217;attributo datetime accetta sia date che in aggiunta l&#8217;ora in formato leggibile per la macchina</p>
<p>L&#8217;attributo pubdate determina a scelta la data di pubblicazione di un contenuto specifico (se all&#8217;interno di &lt;article&gt;) o la data di pubblicazione della pagina se lasciato all&#8217;esterno.</p>
<h3>Nav</h3>
<p>L&#8217;elemento &lt;nav&gt; specifica una porzione di codice destinato ala navigazione per esempio la lista di un menu.</p>
<pre>&lt;nav&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;</pre>
<h3>Aside</h3>
<p>L&#8217;elemento &lt;aside&gt; viene utilizzato per definire una porzione di codice destinata correlata al contenuto ma comunque separata come per esempio una sidebar</p>
<h3>Footer</h3>
<p>L&#8217;elemento &lt;footer&gt; definisce una porzione di codice che rappresenta di fatto il piede della pagina o del contenuto specifico.</p>
<pre>&lt;footer&gt;Make with love and HTML5!&lt;/footer&gt;
</pre>
<p>un esempio completo della pagina è il seguente.</p>
<pre>&lt;!doctype html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;titolo della pagina&lt;/title&gt;
&lt;meta charset=utf-8&gt;
&lt;!--[if IE]&gt;
&lt;script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"&gt;
&lt;/script&gt;
&lt;![endif]--&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;header&gt;
&lt;hgroup&gt;
&lt;h1&gt;Titolo del sito&lt;/h1&gt;
&lt;h2&gt;Sottotitolo del sito&lt;/h2&gt;
&lt;/hgroup&gt;
&lt;/header&gt;
&lt;nav&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#"&gt;link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;article&gt;
&lt;header&gt;
&lt;hgroup&gt;
&lt;h1&gt;Titolo dell'articolo&lt;/h1&gt;
&lt;h2&gt;Sottotitolo dell'articolo&lt;/h2&gt;
&lt;/hgroup&gt;
&lt;/header&gt;
&lt;time datetime="2010-04-21" pubdate&gt;21 Aprile 2009&lt;/time&gt;
&lt;p&gt;Testo di prova&lt;/p&gt;
&lt;/article&gt;
&lt;aside&gt;contenuto relazionato ma indipendente&lt;/aside&gt;
&lt;footer&gt;Make with love and HTML 5&lt;/footer&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Un&#8217;ultima nota sui tag visti in questo articolo, la loro funzione è altamente semantica ed è quindi utile sapere come utilizzarli correttamente nel contesto specifico.<br />
Nel prossimo articolo parleremo della semantica nell&#8217;HTML 5 e dei cambiamenti che comporta.</p>
<p>Per oggi è tutto, tornate a trovarmi oppure abonatevi agli RSS per rimane aggornati sulle ultime novità.</p>
<p>Alla prossima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/lezione-di-html-5-lezione-2-usare-i-nuovi-tag/feed/</wfw:commentRss>
		<slash:comments>5</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>Come utilizzare qualunque font nelle pagine web con Cufon</title>
		<link>http://www.howtoweb.it/tutorial/come-utilizzare-qualunque-font-cufon/</link>
		<comments>http://www.howtoweb.it/tutorial/come-utilizzare-qualunque-font-cufon/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 12:46:37 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=497</guid>
		<description><![CDATA[Uno dei più grandi limiti del web per i designer è la ristretta scelta data dai font utilizzabili sul web. Normalmente è possibile definire una o più famiglie di font tramite la proprietà font-family nei css, esprimendo tramite l&#8217;ordine quale &#8230; <a href="http://www.howtoweb.it/tutorial/come-utilizzare-qualunque-font-cufon/">Continua a leggere<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Uno dei più grandi limiti del web per i designer è la ristretta scelta data dai font utilizzabili sul web. Normalmente è possibile definire una o più famiglie di font tramite la proprietà <em>font-family </em>nei css, esprimendo tramite l&#8217;ordine quale famiglia utilizzare nel caso l&#8217;utente non abbia installato un determinato font.</p>
<p>Il grande problema è rappresentato dal fatto che non tutti i sistemi operativi hanno gli stessi font installati e solo poche famiglie di caratteri risultano comuni a tutti gli utenti.</p>
<p>Per far fronte a questo problema ed avere la possibilità di utilizzare un qualunque font su una pagina web è possibile utilizzare una tecnici di font replacement (nota anche come <a title="definizione di sIFR" href="http://en.wikipedia.org/wiki/Scalable_Inman_Flash_Replacement" target="_blank">sIFR</a>).</p>
<p>Esistono numerose tecniche per raggiungere il proprio obiettivo, una delle più recenti e funzionali è <a title="Cufon" href="http://wiki.github.com/sorccu/cufon/about" target="_blank">Cufon</a>.</p>
<p>Cufon permette la sotituzione del normale web font con un altro, tramite uno script Javascript che utilizzando <a title="Vector Markup Language" href="http://en.wikipedia.org/wiki/Vector_Markup_Language" target="_blank">VML</a> e <a title="Cos'è canvas e a cosa serve" href="http://www.howtoweb.it/articoli/cose-canvas-e-a-cosa-serve/" target="_blank">Canvas</a> permette una rapida sostituzione del testo con il carattere desiderato senza modificare il codice html.<span id="more-497"></span></p>
<p>Per iniziare ad utilizzare Cufon, creiamo una pagina html con del testo al quale sostituiremo il font con quello desiderato.</p>
<p>Come secondo step <a title="Cufon script" href="http://cufon.shoqolate.com/js/cufon-yui.js" target="_blank">scarichiamo lo script di cufon, </a>salviamolo in un file .js e colleghiamolo alla pagina html.</p>
<pre>&lt;<span class="start-tag">script</span><span class="attribute-name"> type</span>=<span class="attribute-value">"text/javascript" </span><span class="attribute-name">src</span>=<span class="attribute-value">"javascript/cufon.js"</span>&gt;&lt;/<span class="end-tag">script</span>&gt;</pre>
<p>Ora andiamo a scegliere un font da utilizzare nella pagina (per questa operazione è indispensabile avere il file del font) ed utilizziamo lo <a title="Cufon script generator" href="http://cufon.shoqolate.com/generate/" target="_blank">script generator presente sul sito di Cufon </a>.</p>
<p>Con questo comodo tool otterremo un file .js contenente tutte i dati per sotituire il font originale con quello desiderato.</p>
<p>Vediamo nel dettaglio i campi e a cosa servono:</p>
<p><em>Regular typeface </em>- Campo obbligatorio, qua dovrete selezionare il file del font presente sulla vostra macchina</p>
<p><em>Bold typeface , Italic typeface, Bold Italic typeface &#8211; </em>Campi opzionali, se il vostro font possiede un file per il grassetto, italico e il grassetto italico aggiungete in questi campi i rispettivi files. Questo passaggio è indispensabile per renderizzare il grassetto, l&#8217;italico e il grassetto italico di un font nella pagina web.</p>
<p><em>Use the following value as the <code>font-family</code> of the generated font &#8211; </em>Serve per definire una nomenclatura standard per i diversi files che verranno generati ed evitare errori nei collegamenti.</p>
<p><em>EULA -</em> Campo obbligatorio, con questo checkbox si conferma di avere il diritto di utilizzare un determinato font secondo la legge sulle proprietà d&#8217;intelletto.</p>
<p><em>Glyphs</em> &#8211; I checkbox seguenti richiedono quali caratteri utilizzare dalla famiglia font, come suggerito nel form è sconsigliabile utilizzarli tutti in quanto il file risulterebbe molto pesante. Una buona combinazione è data da &#8220;uppercase&#8221;, &#8220;lowercase&#8221;, &#8220;numerals&#8221;, &#8220;punctation&#8221; e &#8220;basic latin&#8221; che mette a disposizione maiuscole, minuscole, numeri e punteggiatura mantenendo le dimensioni del file contenuto. E&#8217; anche possibile aggiungere caratteri specifici non compresi nei precedenti checkbox tramite il form al termine di questa parte.</p>
<p><em>Security</em> &#8211; In caso di font commerciali può essere obbligatorio limitare l&#8217;utilizzo di un font a uno o più domini, inserire gli url nel campo per limitarne l&#8217;utilizzo.</p>
<p><em>Scale the font to the following size </em>- Permette di scalare il corpo del carattere riducendo così il peso dei singoli caratteri nella pagina. E&#8217; consigliabile mantenere comunque un corpo superiore alle 256 unità per preservarne la qualità.</p>
<p><em>If allowed, optimized paths may differ from the original by at most &#8211; </em>Definisce di quante unità rispetto all&#8217;originale verrà ottimizzato il singolo carattere,  è sconsigliabile utilizzare quest&#8217;opzione per font con corpo ridotto.</p>
<p><em>Include kerning table</em> &#8211; Aumenta la leggibilità del carattere ma anche il peso del javascript generato.</p>
<p>Gli ultimi due campi sono rispettivamente relativi alla condivisione dei dati e all&#8217;accettazione dei termini e delle condizioni del servizio.</p>
<p>Una volta completato cliccate sul pulsante in fondo e verrà generato uno o più  files javascript con il nome del vostro font e il corpo (es.<span class="attribute-value">Marketing_Script_400.font.js</span>), scaricatelo e linkatelo alla pagina html.</p>
<pre>&lt;<span class="start-tag">script</span><span class="attribute-name"> type</span>=<span class="attribute-value">"text/javascript" </span><span class="attribute-name">src</span>=<span class="attribute-value">"javascript/Marketing_Script_400.font.js"</span>&gt;&lt;/<span class="end-tag">script</span>&gt;</pre>
<p>Ora è possibile inserire il codice javascript nella pagina per definire a quale applicare il font replacement</p>
<pre>&lt;<span class="start-tag">script</span><span class="attribute-name"> type</span>=<span class="attribute-value">"text/javascript"</span>&gt;
   Cufon.replace('p');
&lt;/<span class="end-tag">script</span>&gt;</pre>
<p>E&#8217; possibile definire anche più elementi a cui applicare la sostituzione</p>
<pre>&lt;<span class="start-tag">script</span><span class="attribute-name"> type</span>=<span class="attribute-value">"text/javascript"</span>&gt;
  Cufon.replace(['h1','p']);
&lt;/<span class="end-tag">script</span>&gt;</pre>
<p>Esistono inoltre una serie di opzioni aggiuntivi per il funzionamento dell&#8217;hover o per l&#8217;utilizzo di sfumature di colore sul carattere, per una completa lista delle opzioni consultare la <a title="Cufon styling" href="http://wiki.github.com/sorccu/cufon/styling" target="_blank">sezione styling del sito di Cufon</a>.</p>
<p>Per un corretto funzionamento di Cufon la pagina html deve avere un doctype di tipo <em>strict, </em>inoltre per ottimizzare la velocità di rendering su ie si deve aggiungere questo script subito dopo il tag body</p>
<pre>&lt;!--[if IE]&gt;
  &lt;script type="text/javascript"&gt; Cufon.now(); &lt;/script&gt;
&lt;![endif]--&gt;</pre>
<p>Una volta completati questi passaggi potete vedere un risultato simile a <a title="Esempio di text replacement con Cufon" href="http://www.howtoweb.it/wp-content/uploads/cufon/esempio_cufon.html" target="_self">questa demo</a>.</p>
<p>Coma abbiamo visto Cufon richiede poco tempo per l&#8217;implementazione e garantisce un ottimo risultato nonostante ciò ha i suoi limiti, vediamo di fare un bilancio di questa tecnica:</p>
<h3>Vantaggi</h3>
<p>- Semplice implementazione</p>
<p>- Compatibile su tutti i più recenti browser</p>
<p>- Non modifica il codice html</p>
<p>- Mantiene il codice leggibile per i motori di ricerca</p>
<h3>Svantaggi</h3>
<p>- Peso dei file javascript</p>
<p>- Esecuzione lenta su grandi quantità di testo</p>
<p>- Obbligatorio l&#8217;utilizzo di un doctype strict</p>
<h3>Conclusioni</h3>
<p>Nonostante i limiti rimane al momento la miglior tecnica di font replacement per prestazioni e qualità, c&#8217;è da sperare che in immediato futuro tutti i browser supportino le nuove specifiche per l&#8217;html 5 e migliorino i tempi di esecuzione del javascript  in modo da avere migliori prestazioni sul rendering della pagina con questa tecnica.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/come-utilizzare-qualunque-font-cufon/feed/</wfw:commentRss>
		<slash:comments>5</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>
	</channel>
</rss>

