<?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>Laboratorio CSS</title>
	<atom:link href="http://www.laboratoriocss.it/feed" rel="self" type="application/rss+xml" />
	<link>http://www.laboratoriocss.it</link>
	<description>Il laboratorio italiano sul CSS</description>
	<lastBuildDate>Thu, 05 Jan 2012 22:03:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Siti flessibili con il framework 320&amp;Up</title>
		<link>http://www.laboratoriocss.it/siti-flessibili-con-il-framework-320up.html</link>
		<comments>http://www.laboratoriocss.it/siti-flessibili-con-il-framework-320up.html#comments</comments>
		<pubDate>Mon, 26 Dec 2011 06:00:00 +0000</pubDate>
		<dc:creator>Antonio Polese</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[css tool]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://www.laboratoriocss.it/?p=3924</guid>
		<description><![CDATA[Con l&#8217;entrata dell&#8217;html5 e dei css3 possiamo finalmente parlare di siti web che si adattano al dispositivo su cui vengono visualizzati. Grazie ai @mediaquery è possibile agire in base alla risoluzione dello schermo, ciò significa che possiamo avere un set di stili per le diverse risoluzioni. Ecco che entra in gioco 320&#38;Up, un framewrok creato [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.laboratoriocss.it/wp-content/uploads/320.jpg" alt="" title="320andUp" width="608" height="200" class="alignnone size-full wp-image-4062" /><br />
Con l&#8217;entrata dell&#8217;html5 e dei css3 possiamo finalmente parlare di siti web che si <strong>adattano al dispositivo</strong> su cui vengono visualizzati. Grazie ai <strong>@mediaquery</strong> è possibile agire in base alla risoluzione dello schermo, ciò significa che possiamo avere un set di stili per le diverse risoluzioni. Ecco che entra in gioco <strong>320&amp;Up</strong>, un framewrok creato da <strong>Andy Clark</strong> che ci aiuta a realizzare siti partendo dalla risoluzione più piccola. Vediamo di che si tratta:</p>
<h2>Scarichiamo 320&amp;up</h2>
<p>La prima cosa da fare è scaricare il framework a questo indirizzo: <a title="320&amp;Up" href="http://www.stuffandnonsense.co.uk/projects/320andup" target="_blank">http://www.stuffandnonsense.co.uk/projects/320andup</a>. Lo zip contiene due versioni del framework: con un unico foglio di stile e con più css (per le varie risoluzioni). Noi useremo la versione con un unico css, che puoi scaricare direttamente da <a href="http://www.laboratoriocss.it/wp-content/uploads/320_Single_stylesheet.rar" target="_blank"><strong>qui</strong></a>.</p>
<p>Il pacchetto contiene diversi file, i fogli di stile si trovano nella cartella css, le immagini nella cartella img e i file javascript in quella js. Quello che ci occorre è lo <em><strong>style.css</strong></em> ed <em><strong>index.html</strong></em></p>
<h2>index.html</h2>
<p>Il file è popolato da diverse inclusioni di script, ma noi ci soffermiamo sulla parte centrale, ovvero quella composta dalla struttura dove poi andranno situati i contenuti del documento html:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;header role=&quot;banner&quot;&gt;&lt;/header&gt;

&lt;div class=&quot;content clearfix&quot;&gt;
    &lt;div role=&quot;main&quot; class=&quot;content-main&quot;&gt;&lt;/div&gt;
    &lt;div role=&quot;complementary&quot; class=&quot;content-complementary&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;footer role=&quot;contentinfo&quot; class=&quot;clearfix&quot;&gt;&lt;/footer&gt;
</pre>
<p>Come puoi notare non c&#8217;è nulla di complicato, abbiamo la classica struttura di una pagina a due colonne: <strong>Testata </strong>+ <strong>Contenitore Generale</strong> (che racchiude le due colonne) + <strong>Footer</strong></p>
<h2>style.css</h2>
<p>Nel foglio di stile sono elencati tutti i selettori con le rispettive proprietà, che servono ad impostare il documento in uno stato di default, che ovviamente andremo a modificare dove necessario. La parte importante è situata in basso al documento, dove iniziano i media query, qui andremo ad aggiungere gli stili per le <strong>diverse risoluzioni</strong>:</p>
<pre class="brush: css; title: ; notranslate">
@media only screen and (min-width: 480px){}
@media only screen and (min-width: 600px){}
@media only screen and (min-width: 768px){}
@media only screen and (min-width: 992px){}
@media only screen and (min-width: 1382px){}
</pre>
<h2>esempio</h2>
<p>Inseriamo dei contenuti alla pagina html, bastano dei semplici paragrafi e qualche immagine.<br />
Successivamente interveniamo sul css per fare in modo che raggiunta una particolare risoluzione, nel nostro caso la 768px, la colonna <em>.content-complementary</em> risulti visibile (a basse risoluzioni è settata a display:none) e flottante sulla destra:<br />
<a href="http://www.laboratoriocss.it/wp-content/uploads/big2.jpg"><img src="http://www.laboratoriocss.it/wp-content/uploads/big2.jpg" alt="" title="320andup" width="608" height="246" class="alignnone size-full wp-image-4054" /></a><br />
ecco il codice css associato:</p>
<pre class="brush: css; title: ; notranslate">
@media only screen and (min-width: 768px){
    .content-main{width:60%;float:left;}
    .content-complementary{width:35%; float:right; margin-left:5%; display:block;}
}
</pre>
<p>Nella demo in basso potrai sicuramente godere a pieno l&#8217;esempio, basta ridimensionare la finestra del browser e vedrai l&#8217;effetto dei media query. Per concludere posso sicuramente dirti che il framework è <strong>ben organizzato</strong>, puoi gestire diverse risoluzioni come la 480, 600, 768, 992 e 1382px; poi soprattutto hai una struttura html e css <strong>già preimpostata</strong>, insomma può essere di grande aiuto per chi deve sviluppare siti in poco tempo per diversi dispositivi. Prendi un pò di confidenza con il framework e fammi sapere che ne pensi <img src='http://www.laboratoriocss.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div id="demo_download"><a target="_blank" href="http://www.laboratoriocss.it/wp-content/demo/320andup/"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/live_demo.jpg" alt="Live Demo" /></a><a target="_blank" href="http://www.laboratoriocss.it/wp-content/uploads/320_Single_stylesheet.rar"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/download_zip.jpg" alt="Download ZIP" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.laboratoriocss.it/siti-flessibili-con-il-framework-320up.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Auguri di Buon Natale e Buone Feste</title>
		<link>http://www.laboratoriocss.it/auguri-di-buon-natale-e-buone-feste.html</link>
		<comments>http://www.laboratoriocss.it/auguri-di-buon-natale-e-buone-feste.html#comments</comments>
		<pubDate>Sun, 25 Dec 2011 12:04:31 +0000</pubDate>
		<dc:creator>Team LaboratorioCSS</dc:creator>
				<category><![CDATA[Senza categoria]]></category>

		<guid isPermaLink="false">http://www.laboratoriocss.it/?p=4082</guid>
		<description><![CDATA[Laboratorio Css augura Buon Natale e Buone Feste a tutti i lettori, che questi giorni di festa vi portino tanta serenità. Grazie di cuore a chi contribuisce alla crescita di questo blog, cercheremo di fare sempre del nostro meglio.]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-4086" title="auguri" src="http://www.laboratoriocss.it/wp-content/uploads/auguri.jpg" alt="" width="608" height="200" /></p>
<p>Laboratorio Css augura <strong>Buon Natale</strong> e <strong>Buone Feste</strong> a tutti i lettori, che questi giorni di festa vi portino tanta serenità. <strong>Grazie di cuore</strong> a chi contribuisce alla crescita di questo blog, cercheremo di fare sempre del nostro meglio.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laboratoriocss.it/auguri-di-buon-natale-e-buone-feste.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bisquits.net&#8230; Coming soon</title>
		<link>http://www.laboratoriocss.it/bisquits-net-coming-soon.html</link>
		<comments>http://www.laboratoriocss.it/bisquits-net-coming-soon.html#comments</comments>
		<pubDate>Wed, 21 Dec 2011 02:00:45 +0000</pubDate>
		<dc:creator>Stefano Vollono</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.laboratoriocss.it/?p=3990</guid>
		<description><![CDATA[Queste che seguono sono alcune righe ti testo scritte da Vittorio Grimaldi, Developer della Startup Bisquits, durante una qualunque notte di lavoro, mentre le linee di codice scorrono veloci come le lancette e l&#8217;alba fa presto ad arrivare. Sono parole sincere e vere di chi ha visto, come me, nascere questo progetto dal nulla. L&#8217;idea [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.laboratoriocss.it/wp-content/uploads/bisquits.png" alt="" title="bisquits" width="608" height="200" class="alignnone size-full wp-image-3993" /></p>
<p>Queste che seguono sono alcune righe ti testo scritte da Vittorio Grimaldi, Developer della Startup Bisquits, durante una qualunque notte di lavoro, mentre le linee di codice scorrono veloci come le lancette e l&#8217;alba fa presto ad arrivare. Sono parole sincere e vere di chi ha visto, come me, nascere questo progetto dal nulla.</p>
<blockquote><p><em>L&#8217;idea ci piaceva e ci sembrava quasi impossibile che nessuno avesse fatto una cosa del genere. Intravedevamo qualcosa di utile per la comunità e ci rendevamo conto che le basi di quello che stavamo facendo avrebbero portato a qualcosa di molto solido e ben strutturato. Un susseguirsi di script da implementare e tantissime idee si infilavano nella testa, alcune poco utili ed altre essenziali per il corretto funzionamento del progetto. Proseguivamo ogni giorno con il giusto spirito fino a che non si è palesato, un giorno, qualcosa che io stesso non riesco a fare a meno di usare e lo utilizzo tutt&#8217;ora che è in fase di beta-test. </p>
<p>Mi auguro che questa community possa aiutare e piacere a tutti, in fondo il nostro intento è quello di dare a te utente la possibilità di condividere codici sul web e di rendere allo stesso tempo il tutto, piacevolmente sociale.</p>
<p><a href="http://www.bisquits.net" target="_blank">Ti aspettiamo su Bisquits!</a></em></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.laboratoriocss.it/bisquits-net-coming-soon.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pseudo-classe dinamica :active</title>
		<link>http://www.laboratoriocss.it/pseudo-classe-dinamica-active.html</link>
		<comments>http://www.laboratoriocss.it/pseudo-classe-dinamica-active.html#comments</comments>
		<pubDate>Tue, 20 Dec 2011 02:00:59 +0000</pubDate>
		<dc:creator>Stefano Vollono</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[override]]></category>
		<category><![CDATA[pseudo classi]]></category>
		<category><![CDATA[Specificità]]></category>

		<guid isPermaLink="false">http://www.laboratoriocss.it/?p=3685</guid>
		<description><![CDATA[Di cosa stiamo parlando Come recitano le specifiche del W3c la pseudoclasse active si applica mentre un elemento viene attivato dall&#8217;utente. Per esempio, nell&#8217;arco temporale in cui l&#8217;utente preme il pulsante del mouse e lo rilascia. Un pò di teoria Sebbene le pseudoclassi dinamiche in generale possano essere associate a qualsiasi tipo di elemento, come [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-3953" title="active" src="http://www.laboratoriocss.it/wp-content/uploads/active.png" alt="" width="608" height="200" /></p>
<h2>Di cosa stiamo parlando</h2>
<p>Come recitano <a href="http://www.w3.org/TR/CSS2/selector.html#dynamic-pseudo-classes" target="_blank">le specifiche del W3c</a> la pseudoclasse active si applica mentre un elemento viene attivato dall&#8217;utente. Per esempio, nell&#8217;arco temporale in cui l&#8217;utente preme il pulsante del mouse e lo rilascia.</p>
<h2>Un pò di teoria</h2>
<p>Sebbene le pseudoclassi dinamiche in generale possano essere associate a qualsiasi tipo di elemento, come un paragrafo o un input, IE6 le supporta solo quando applicate ai collegamenti. Affinchè tutto funzioni correttamente, è necessario che la pseudo classe :active venga definita dopo :hover per avere effetto sugli elementi. Esattamente in questo ordine:</p>
<ol>
<li>:link</li>
<li>:visited</li>
<li>:focus</li>
<li>:hover</li>
<li>:active</li>
</ol>
<p>Il motivo è molto semplice e viene ricondotto al concetto di specificità e di organizzazione a cascata di cui abbiamo già discusso in un <a href="http://www.laboratoriocss.it/specificita-ereditarieta-e-override-dei-css-vediamoli-in-azione-con-il-plugin-page-style.html" title="Specificità, ereditarietà e override dei css, vediamoli in azione con il plugin Page Style">precedente articolo</a>. Rileggi con me la parte che ci interessa:</p>
<blockquote><p><em>&#8220;Le regole che gestiscono l’organizzazione a cascata sono abbastanza semplici: l’interprete prende in considerazione tutti i selettori comuni ad un determinato elemento. Vengono quindi controllate tutte le dichiarazioni comuni in base al loro peso; le regole marcate come !important avranno un peso maggiore. Se per uno stesso elemento abbiamo dichiarazioni in conflitto ma tutte hanno lo steso peso, si valuta la specificità delle stesse scartando quelle che hanno una specificità minore. Infine se due o piu regole relative ad uno stesso elemento hanno lo stesso peso e specificità, si prende in considerazione l’ordine con cui vengono elencate. Quella che viene dopo prevale sempre (a parità di condizioni ovviamente).&#8221;</em></p></blockquote>
<p>Sappiamo, dal calcolo della specificità di ognuno di loro, che il loro valore è uguale per tutti (0,0,0,1). Dal momento che hanno tutti lo stesso peso, origine e specificità, l&#8217;ultimo è quello che prevarrà sugli altri. La selezione per ordine è quindi la ragione per cui le pseudoclassi andrebbero elencate secondo l&#8217;ordine LVHA, ordine che è stato consigliato anche nelle specifiche del W3C come quello da adottare. Inoltre l&#8217;espressione inglese LoVe-HA! ha riscosso un grande successo come metodo per ricordarsi il corretto ordine di scrittura di tali pseudoclassi. <img src='http://www.laboratoriocss.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Applicazioni pratiche</h2>
<p>Le applicazioni pratiche possono essere molteplici. Dal semplice cambio di colore, ad effetti un pò più ricercati come l&#8217;elminiazione dello shadow o dello spostamento verso il basso e il cambio di un gradiente per simulare la pressione. Di seguito vi propongo un esempio pratico di come potrebbe tornarci utile lo stato :active inserito nel contesto più globale delle pseudoclassi.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;a class=&quot;link&quot; href=&quot;#&quot;&gt;Sono un Link!&lt;/a&gt;
</pre>
<pre class="brush: css; title: ; notranslate">
a.link:link,a.link:visited{
    display:inline-block;
    font-size: 16px;
    font-family:arial;
    line-height: 34px;
    padding: 0 7px 0 7px;
    text-decoration: none;
    text-transform: uppercase;
    text-shadow: 1px 1px 0 white;
    border: 1px solid #ddd;
    border-radius: 3px 3px 3px 3px;
    box-shadow: 0 -1px 1px #FFFFFF inset,0 0 3px #333;
    color:#333;
    background: -moz-linear-gradient(top,  #fbfbfb 0%, #e5e5e3 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fbfbfb), color-stop(100%,#e5e5e3));
    background: -webkit-linear-gradient(top,  #fbfbfb 0%,#e5e5e3 100%);
    background: -o-linear-gradient(top,  #fbfbfb 0%,#e5e5e3 100%);
    background: -ms-linear-gradient(top,  #fbfbfb 0%,#e5e5e3 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fbfbfb', endColorstr='#e5e5e3',GradientType=0 );
    background: linear-gradient(top,#fbfbfb 0%,#e5e5e3 100%);
}
a.link:hover{
    box-shadow: 0 1px 1px #FFFFFF inset,0 0 3px #333;
    background: -moz-linear-gradient(top,  #e5e5e3 0%, #fbfbfb 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e5e5e3), color-stop(100%,#fbfbfb));
    background: -webkit-linear-gradient(top,  #e5e5e3 0%,#fbfbfb 100%);
    background: -o-linear-gradient(top,  #e5e5e3 0%,#fbfbfb 100%);
    background: -ms-linear-gradient(top,  #e5e5e3 0%,#fbfbfb 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e5e5e3', endColorstr='#fbfbfb',GradientType=0 );
    background: linear-gradient(top,#e5e5e3 0%,#fbfbfb 100%);
}
a.link:active{
    position:relative;
    top:1px;
    box-shadow: 0 1px 1px #FFFFFF inset,0 0 1px #333;
}
</pre>
<div id="demo_download"><a href="http://www.laboratoriocss.it/wp-content/demo/active.html" target="_blank"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/live_demo.jpg" alt="Live Demo" /></a><a href="http://www.laboratoriocss.it/wp-content/uploads/active.zip" target="_black"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/download_zip.jpg" alt="Download ZIP" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.laboratoriocss.it/pseudo-classe-dinamica-active.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS background-size per differenziare l&#8217;esperienza utente su mobile</title>
		<link>http://www.laboratoriocss.it/css-background-size-per-differenziare-lesperienza-utente-su-mobile.html</link>
		<comments>http://www.laboratoriocss.it/css-background-size-per-differenziare-lesperienza-utente-su-mobile.html#comments</comments>
		<pubDate>Sat, 17 Dec 2011 02:00:09 +0000</pubDate>
		<dc:creator>Stefano Vollono</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[css sprite]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[Media Queries]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://www.laboratoriocss.it/?p=3846</guid>
		<description><![CDATA[Introduzione Gli ingegneri Apple hanno creato pixel larghi appena 78 micrometri, riuscendo così a quadruplicarne il numero nel display da 3,5 pollici di iPhone 4S e iPhone 4. È proprio grazie alla densità dei pixel (326 per pollice) se testo e grafica hanno un aspetto nitido e uniforme a qualsiasi dimensione. Ti ho introdotto a [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.laboratoriocss.it/wp-content/uploads/articolo.png" alt="icon hd" title="icon hd" width="608" height="200" class="alignnone size-full wp-image-3934" /></p>
<h2>Introduzione</h2>
<p><em style="text-align:center;">Gli ingegneri Apple hanno creato pixel larghi appena 78 micrometri, riuscendo così a quadruplicarne il numero nel display da 3,5 pollici di iPhone 4S e iPhone 4. È proprio grazie alla densità dei pixel (326 per pollice) se testo e grafica hanno un aspetto nitido e uniforme a qualsiasi dimensione.</em></p>
<p>Ti ho introdotto a questo nuovo articolo con un paragrafo prelevato dal sito apple. I nuovi smartphone, come iphone 4 o 4s, ma anche htc samsung e molti altri, stanno raggiungendo risoluzioni impressionanti e ognuno di loro chiama le proprie tecnologie a modo suo. Retina e Amoled ne sono un chiaro esempio. </p>
<h2>L&#8217;obiettivo di questo articolo</h2>
<p>La profondità di pixel e le risoluzioni nettamente superiori ai precedenti modelli di smartphone hanno creato non pochi problemi di visualizzazione e di resa grafica delle immagini di layout. E&#8217; necesario per forza di cose differenziare l&#8217;esperienza utente e crearne due diverse versioni. Una prima versione dedicata agli smartphone con risoluzioni normali ed una variante per risoluzioni in HD. Come? Vediamolo insieme!</p>
<h2>La soluzione al problema</h2>
<p>Se siamo abituati a gestire le immagini di layout tramite sprite, possiamo risolvere il problema in due modi:<br />
1. Creando due varianti di sprite.<br />
2. All&#8217;interno di un unico sprite, inserire entrambe le versioni di icone. </p>
<p>L&#8217;importante è mantenere le stesse proporzioni in entrambi i casi affinchè non ci siano diseguaglianze di visualizzazione. Nel caso concreto che andremo ad analizzare verranno create due sprite differenti.</p>
<h2>La tecnica da utilizzare</h2>
<p>Non rimane altro da fare che illustrare le tecniche CSS coinvolte. Utilizzeremo la tecnica del mediaqueries e del background-size. La prima per differenziare la visualizzazione dello sprite in relazione alla risoluzione del device in uso. La seconda per ridurre le dimensioni dello sprite in alta risoluzione alle giuste dimensioni. In realtà non cambierà nulla tra uno sprite ed un altro durante il rendering del browser, poichè le icone dello sprite in HD risulteranno essere, dopo aver applicato le due regole css viste poc&#8217;anzi, delle stesse dimensioni di quelle in versione normale. Per facilitare le cose il secondo sprite lo creeremo esattamente il doppio del primo; con mediaqueries, mi ripeto, mostreremo uno piuttosto che l&#8217;altro in realzione alla risoluzione e infine con la regola del background-resize renderemo il secondo sprite (quello in HD) di uguale dimensioni rispetto al primo. Mettiamoci all&#8217;opera!</p>
<h2>L&#8217;esempio concreto</h2>
<p>L&#8217;esempio si basa su un semplicissimo menù. Ad ogni voce di menu sono state affiancate delle icone decorative. Questo è il classico caso che necessita di questo accorgimento. Se non ricordi bene in cosa consiste uno sprite CSS ti consiglio di rileggerti <a href="http://www.laboratoriocss.it/css-sprite.html" title="CSS Sprite" target="_blank">questo articolo</a>. Ecco il codice html e css relativo all&#8217;esempio.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;ul id=&quot;mainmenu&quot;&gt;
    &lt;li class=&quot;home&quot;&gt;&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;Home Page&lt;/li&gt;
    &lt;li class=&quot;contact&quot;&gt;&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;Contact&lt;/li&gt;
&lt;/ul&gt;
</pre>
<pre class="brush: css; title: ; notranslate">
/* Dichiarazioni comuni */
#mainmenu li{
    width:auto;
    height:35px;
    line-height:35px;
    background-color:#464646;
    border-bottom:1px solid #6e6e6e;
    position:relative;
    padding-left: 40px;
    color:#f0f0f0;
    font-family:arial;
}
#mainmenu li span{
    width: 20px;
    height: 20px;
    position:absolute;
    top: 7px;
    left: 10px;
    background-image: url(sprite.png);
    background-repeat: no-repeat;
}

/* Sprite per le risoluzioni in HD */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
       only screen and (min--moz-device-pixel-ratio: 1.5),
       only screen and (min-resolution: 240dpi) {
    #mainmenu li span{
        -moz-background-size: 20px 50px;
        -o-background-size: 20px 50px;
        -webkit-background-size: 20px 50px;
        background-size: 20px 50px;
        background-image: url(&quot;spriteHD.png&quot;);
    }
}

/* Dichiarazioni relative ad ogni singola voce di menu */
#mainmenu li.home .icon{
    background-position: left top;
}
#mainmenu li.contact .icon{
    background-position: left bottom;
}
</pre>
<p>Per prima cosa definiamo le caratteristiche generiche del menu e dello span che farà da contenitore delle immagini, definendo in questa fase anche il background sprite contente le icone per le risoluzioni &#8220;normali&#8221;. Immediatamente dopo definiamo, tramite il mediaqueries, l&#8217;eccezione per le risoluzioni in HD; agendo sulla risoluzione, andiamo a definire un nuovo background (spriteHD.png) e ad esso gli andiamo a settare, tramite il background-size, larghezza e altezza pari alle dimensioni dello sprite standard, cosi che non ci siano differenze alcune. La proprietà in questione, introdotta con i CSS3, consente di definire la larghezza e l&#8217;altezza di un background, ed è proprio quello che ci serve.</p>
<h2>Conclusioni</h2>
<p>Senza questo accorgimento, tutte le immagini risulterebbero sfocate e poco ben definite. Porta via un pò di tempo in più e qualche riga di codice, ma ne vale veramente la pena! Per testare la demo, avrete bisogno di due device differenti, come ad esempio un iphone 3g e un iphone 4. Per notare la reale differenza, disattivate nella demo il mediaqueries e vi renderete conto da soli della qualità delle immagini su iphone 4 o 4s.</p>
<p>Spero che questo articolo possa esserti stato utile e come al solito, per dubbi o perplessità lascia pure i tuoi commenti qui di seguito o sulla bacheca di facebook.</p>
<div id="demo_download"><a href="http://www.laboratoriocss.it/wp-content/demo/spriteHD/index.html" target="_blank"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/live_demo.jpg" alt="Live Demo" /></a><a href="http://www.laboratoriocss.it/wp-content/uploads/spriteHD.zip" target="_black"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/download_zip.jpg" alt="Download ZIP" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.laboratoriocss.it/css-background-size-per-differenziare-lesperienza-utente-su-mobile.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Form Html5</title>
		<link>http://www.laboratoriocss.it/form-html5.html</link>
		<comments>http://www.laboratoriocss.it/form-html5.html#comments</comments>
		<pubDate>Fri, 02 Dec 2011 06:30:25 +0000</pubDate>
		<dc:creator>Antonio Polese</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.laboratoriocss.it/?p=3826</guid>
		<description><![CDATA[Ormai tutti siamo coscienti che l&#8217; html5 ha dato una svolta incredibile alla semantica degli elementi e sul modo di strutturare l&#8217;intero documento html. Meritano sicuramente attenzione i nuovi form, ci sono oltre una decina di nuovi tipi di input da usare, senza bisogno di trucchi o soluzioni indirette. Testo Segnaposto Il testo segnaposto è [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-3908" title="html5form" src="http://www.laboratoriocss.it/wp-content/uploads/html5form.jpg" alt="Form html 5" width="608" height="200" /></p>
<p>Ormai tutti siamo coscienti che l&#8217; <strong>html5</strong> ha dato una svolta incredibile alla semantica degli elementi e sul modo di strutturare l&#8217;intero documento html. Meritano sicuramente attenzione i nuovi <strong>form</strong>, ci sono oltre una decina di nuovi tipi di input da usare, senza bisogno di trucchi o soluzioni indirette.</p>
<h2>Testo Segnaposto</h2>
<p>Il testo <strong>segnaposto</strong> è quel testo visibile nell&#8217;input, e rimane attivo finchè non viene compilato o attivato il campo.</p>
<p>Compatibile con: Firefox 3.7, Safari 4.0+, Chrome 4.0+</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input placeholder=&quot;Cerca nei bookmarks&quot; /&gt;
</pre>
<h2>Autofocus dei campi</h2>
<p>L&#8217;attributo <strong>autofocus</strong> attiva un determinato campo input al caricamento di una pagina.</p>
<p>Un esempio lo trovi in google, nella homepage del noto motore di ricerca viene automaticamente attivato il campo input, in modo che si possa digitare la parola da cercare senza posizionare il cursore.</p>
<p>Compatibile con: Firefox 8.0, Safari 4.0+, Chrome 3.0+, Opera 10.0+, Iphone, Android</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input autofocus /&gt;
</pre>
<h2>Indirizzi email</h2>
<p>Da più di dieci anni i form sono composti dalle solite tipologie di input. L&#8217;html5 definisce alcuni nuovi tipi di campi, tra questi il campo <strong>email</strong>:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input type=&quot;email&quot; /&gt;
</pre>
<p>Il campo email non ha problemi di compatibilità, o meglio i browser che non leggono <em>type=&#8221;email&#8221;</em> lo interpretano come un semplice <em>type=&#8221;text&#8221;</em>, anche IE 6.</p>
<p>In sostanza il campo email al momento non ha un tipo di visualizzazione nei browser. La differenza puoi notarla da un iphone, ad esempio all&#8217;attivazione del campo email viene caricata la tastiera con <strong>@</strong> e il <strong>.</strong> (punto).</p>
<h2>Indirizzi web</h2>
<p>Gli <strong>indirizzi web</strong> sono un&#8217;altra novità delle tipologie di input. Anche questo lo si può notare da un iphone,  in questo caso offre una tastiera contenente i tre simboli principali di un indirizzo web:  <strong>.</strong> (punto)  <strong> /</strong>  e  <strong>.com</strong>.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input type=&quot;url&quot; /&gt;
</pre>
<h2>Intervalli di numeri</h2>
<p>Eccoci arrivati ai numeri. Il <em>type=&#8221;number&#8221;</em> specifica ovviamente che si tratta di un campo numerico, ma con alcune caratteristiche:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input type=&quot;number&quot; min=&quot;0&quot; max=&quot;10&quot; step=&quot;2&quot; value=&quot;6&quot; /&gt;
</pre>
<p>Come puoi notare sopra, oltre alla tipologia del campo ci sono altri parametri:</p>
<p><strong>min</strong> specifica il valore minimo accettabile in questo campo;<br />
<strong>max</strong> pecifica il valore massimo accettabile in questo campo;<br />
<strong>step</strong> definisce i numeri nell&#8217;intervallo del click;<br />
<strong>value</strong> è il valore iniziale presente nel campo.</p>
<p>Compatibile con le ultime versioni di Chrome, Opera e Safari (testato sulle ultime versioni).</p>
<h2>Cursori</h2>
<p>Oltre alla visualizzazione a spinbox vista sopra, gli input numerici possono essere rappresentati anche sotto forma di <strong>cursori</strong>. Il markup è molto simile a quello visto poco fa, ecco come si presenta:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input type=&quot;range&quot; min=&quot;0&quot; max=&quot;10&quot; step=&quot;2&quot; value=&quot;6&quot; /&gt;
</pre>
<p>Compatibile con le ultime versioni di Chrome, Opera e Safari (testato sulle ultime versioni).</p>
<h2>Selettori di data</h2>
<p>Fino a poco tempo fa per includere un controllo di <strong>selezione date</strong> abbiamo fatto ricorso sempre a librerie esterne. Finalmente l&#8217;html5 include un controllo nativo all&#8217;interno dei form senza uso di javascript. Vediamo le diverse tipologie:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input type=&quot;date&quot; /&gt; Semplice selezione di una data
&lt;input type=&quot;datetime&quot; /&gt; Se oltre alla data si vuole associare l'ora
&lt;input type=&quot;month&quot; /&gt; Se si vuole indicare solo il mese e l'anno
&lt;input type=&quot;week&quot; /&gt; Se si vuole indicare solo una settimana
&lt;input type=&quot;time&quot; /&gt; Se si vuole indicare un'ora in particolare
</pre>
<p>Compatibile con: Opera 9.0+</p>
<h2>Caselle di ricerca</h2>
<p>Questa è molto carina <img src='http://www.laboratoriocss.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Il tipo di campo <strong>search</strong> permette la visualizzazione di una <strong>&#8220;x&#8221;</strong> alla fine dell&#8217;input. In pratica permette di cancellare in un solo click l&#8217;intero contenuto scritto nel campo.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;input type=&quot;search&quot; /&gt;
</pre>
<p>Compatibile con: Chrome e Safari (testato sulle ultime versioni).</p>
<h2>Selettori di colore</h2>
<p>L&#8217;html5 permette anche di scegliere un colore e di restitiurne il corrispettivo esadecimale. Purtroppo questa tipologia di input non è ancora supportata da nessun browser, speriamo in un giorno non molto lontano.</p>
<p>Purtroppo tutte queste belle funzionalità possiamo goderle in alcuni dei browser moderni, sperando al più presto in una completa compatibilità. Se hai altre informazioni riguardo ai form html5 puoi scriverci nei commenti o condividerle sulla <a title="Laboratorio Css" href="http://it-it.facebook.com/pages/Laboratorio-CSS/111783862202396" target="_blank">fanpage di laboratoriocss</a>.</p>
<p>Per usufruire dell&#8217;utilità dei form ti consiglio di visualizzare la demo con Opera o Chrome.</p>
<div id="demo_download"><a href="http://www.laboratoriocss.it/wp-content/demo/formhtml5/form_html5.html" target="_blank"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/live_demo.jpg" alt="Live Demo" /></a><a href="http://www.laboratoriocss.it/wp-content/uploads/formhtml5.rar" target="_blank"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/download_zip.jpg" alt="Download ZIP" /></a></div>
<p>Compatibile con le ultime versioni di Chrome, Opera e Safari.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laboratoriocss.it/form-html5.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Una thumbnail gallery in HTML, CSS e jQuery</title>
		<link>http://www.laboratoriocss.it/una-thumbnail-gallery-in-html-css-e-jquery.html</link>
		<comments>http://www.laboratoriocss.it/una-thumbnail-gallery-in-html-css-e-jquery.html#comments</comments>
		<pubDate>Wed, 23 Nov 2011 02:00:42 +0000</pubDate>
		<dc:creator>Stefano Vollono</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[clip]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://www.laboratoriocss.it/?p=3730</guid>
		<description><![CDATA[L&#8217;obiettivo L&#8217;obiettivo di questo articolo è quello di aiutarti a creare una thumbnail gallery composta da miniature che occupano tutto lo spazio a disposizione quasiasi sia la risuluzione video o la dimensione del parent. Questa gallery è ottimale per essere utilizzata in tutti quei casi nei quali la dimensione del parent non ha un valore [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.laboratoriocss.it/wp-content/uploads/thumbnail.png" alt="thumbnail" title="thumbnail" width="608" height="200" class="alignnone size-full wp-image-3726" /></p>
<h2>L&#8217;obiettivo</h2>
<p>L&#8217;obiettivo di questo articolo è quello di aiutarti a creare una thumbnail gallery composta da miniature che occupano tutto lo spazio a disposizione quasiasi sia la risuluzione video o la dimensione del parent. Questa gallery è ottimale per essere utilizzata in tutti quei casi nei quali la dimensione del parent non ha un valore definito, come ad esempio i layout liquidi <strong>oppure le versioni mobile degli stessi!</strong> </p>
<p>Per avere un quadro completo <a href="http://www.laboratoriocss.it/wp-content/demo/thumbnail/thumbnail.html" target="_blank">guarda subito la demo</a> che abbiamo preparato per te, ti aiuterà a capire meglio di cosa stiamo parlando.</p>
<h2>La parte html</h2>
<p>L&#8217;html consiste in una semplice lista contente immagini.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;#&quot;&gt;&lt;img src=&quot;image01.jpg&quot; alt=&quot;image01&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;#&quot;&gt;&lt;img src=&quot;image02.jpg&quot; alt=&quot;image02&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;#&quot;&gt;&lt;img src=&quot;imageN.jpg&quot; alt=&quot;imageN&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
<h2>La parte CSS</h2>
<p>Per loro natura gli elementi di una lista sono di tipo blocco. A te la scelta se formattarli con il classsico metodo float, <a href="http://www.laboratoriocss.it/proprieta-clip-e-thumb-image-css.html" target="_blank">utilizzando la proprietà clip</a> per ottenere immagini tutte della stessa altezza, oppure modificando il valore della proprietà display da block a inline block; modifica che ti consetirà di manternere le diverse altezze delle immagini ma al contempo di ottenere il controllo sul loro allineamento; al rigurado ti consiglio di rileggere <a href="http://www.laboratoriocss.it/affiancare-elementi-blocco-con-altezze-differenti.html" target="_blank">questo</a> e <a href="http://www.laboratoriocss.it/display-inline-block-cross-browser.html" target="_blank">quest&#8217;altro</a> articolo.</p>
<p>Nel nostro esempio abbiamo utilizzato il classico metodo del float, senza complicare ulteriormente il codice CSS per gestire immagini con altezze differenti. Avremmo per puro semplicismo accademico, immagini ritagliate e della stessa altezza. Starà a voi impiegare questo o quel metodo in base alle vostre esigenze grafiche! Il CSS seguente setta le prorietà di margini &#8211; padding e bordi per tutti gli &#8220;li&#8221; tralasciando volutamente il valore di width, che verrà iniettato dinamicamente tramite jquery in relazione allo spazio disponibile. Le immagini invece hanno impostato come valore di width il 100% del proprio parent.</p>
<pre class="brush: css; title: ; notranslate">
ul { /* Easy Clear */
    width:auto;
    overflow:hidden
}
ul li {
    float: left;
    margin: 0 5px 5px;
    border: 1px solid #ccc;
    padding: 4px;
}
ul li img {
    display: block;
    width: 100%;
}
</pre>
<p>Prima di passare alla parte js, ti consiglio di andarti a rileggere l&#8217;articolo <a href="http://www.laboratoriocss.it/formattazione-degli-elementi-di-blocco.html" target="_blank">sulla formattazione degli elementi di blocco e il boxmodel.</a> </p>
<h2>Introduzione alla parte jQuery</h2>
<p>Lo script di per se non è complesso. E&#8217; un sistema composto da alcune costanti e da un&#8217;unica variabile (la width degli &#8220;li&#8221;). Se hai riletto <a href="http://www.laboratoriocss.it/formattazione-degli-elementi-di-blocco.html" target="_blank">l&#8217;articolo sul boxmodel</a> ricorderai bene che il valore del &#8220;riquadro elemento&#8221; è dato della somma delle 7 proprietà della formattazione orizzontale (o verticale). Nel nostro sistema abbiamo come definiti tutti i (6) valori del riquadro elemento degli &#8220;li&#8221; tranne la width che è la nostra incognita. <strong>Il seguente script ci fornirà, tramite un algoritmo scritto da Manuel Kanah (responsabile area tech <a href="http://www.sitonline.it/it/index.php" target="_blank">Sitonline</a>, azienda per la quale lavoro) il valore dinamico della width.</strong> Per cui adesso lascio la parola a lui, che saprà meglio di me illustrare lo script che lui stesso ha scritto.</p>
<h2>Lo script a cura di Manuel Kanah</h2>
<p>Lo script, come pocanzi detto, necessita di valorizzare alcune variabili affinchè il calcolo della larghezza dei singoli elementi sia effettuato correttamente. Prima di tutto imposto il valore massimo di width che ogni singolo elemento può avere. Nel nostro caso,ma avrei potuto scegliere qualsiasi altro valore, ogni singolo &#8220;li&#8221; può raggiungere massimo 100px di larghezza (elementWidth = 100). Il valore della seconda variabile, &#8220;elementWidthDelta&#8221;, è ottenuto facendo la diferenza tra la width del &#8220;li&#8221; e l&#8217;outerWidth dello stesso e rappresenta la somma di padding, border e margin. Infine il valore della variabile &#8220;parentWidth&#8221; che rappresenta la width del parent (ul) dei singoli elementi.</p>
<p><strong>La stringa di riproporzionamento prende i tre valori prima descritti e fa quanto segue: </strong></p>
<ol>
<li>Divide lo spazio a disposizione per il valore di &#8220;elementWidth&#8221; più il valore di &#8220;elementWidthDelta&#8221; (precedentemente ricavato dal css).</li>
<li>Il risultato di questa operazione viene arrotondato per eccesso. Questo valore viene usato per ridividere la width del &#8220;ul&#8221; per trovare quale sarà la quantità massima di elementi per linea, ricavando così il valore in pixel della larghezza di ognuno di essi.</li>
<li>Eseguo infine una proporzione per trasformare il valore da pixel in percentuale, valore che sarà poi assegnato alla width dei nostri elementi. <em>Su questo punto leggi la nota a fondo pagina riguardante il browser Opera</em>.</li>
</ol>
<p><strong>Lo stesso calcolo di riproporzionamento verrà fatto girare in due casi: </strong></p>
<ol>
<li>Nel primo, quando la pagina è già caricata (load) e le immagini hanno già occupato il loro spazio in modo che non compaia lo scroll dopo il calcolo della larghezza (problema riscontrato su chrome e fixato).</li>
<li>Nel secondo, ogni qual volta venga ridimensionato il browser(resize).</li>
</ol>
<pre class="brush: jscript; title: ; notranslate">
$(document).ready(function() {
    elementWidth = 100; // larghezza massima degli elementi in pixel
    gallery = $('#gallery');
    elementWidthDelta = $('li:first', gallery).outerWidth(true)-$('li:first', gallery).width();
    scaleImages = function() {
	var parentWidth = gallery.width();
	$('li', gallery).css('width',(((parentWidth/(Math.ceil(parentWidth/(elementWidth+elementWidthDelta))))-elementWidthDelta)*100/parentWidth)+'%');
    };
});

$(window).load(function(){
    scaleImages();
});

$(window).resize(function() {
    scaleImages();
});
</pre>
<h2>Conclusioni</h2>
<p>L&#8217;html utilizzato per realizzare la gallery è come sempre, completamente customizzabile, facendo attenzione a modificare di conseguenza il css e lo script. L&#8217;unico appunto da fare è che il browser Opera, arrotonda per eccesso la larghezza degli elementi, causando a volte degli scompensi e disallineamenti. Come al solito, per qualsiasi chiarimento o semplicemente per farci sapere se ti è piaciuto l&#8217;articolo, utilizzate i commenti o <a href="https://www.facebook.com/pages/Laboratorio-CSS/111783862202396" target="_blank">la bacheca di facebook della fanpage</a>!</p>
<div id="demo_download"><a href="http://www.laboratoriocss.it/wp-content/demo/thumbnail/thumbnail.html" target="_blank"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/live_demo.jpg" alt="Live Demo" /></a><a href="http://www.laboratoriocss.it/wp-content/uploads/thumbnail.zip" target="_black"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/download_zip.jpg" alt="Download ZIP" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.laboratoriocss.it/una-thumbnail-gallery-in-html-css-e-jquery.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Affiancare elementi blocco con altezze differenti</title>
		<link>http://www.laboratoriocss.it/affiancare-elementi-blocco-con-altezze-differenti.html</link>
		<comments>http://www.laboratoriocss.it/affiancare-elementi-blocco-con-altezze-differenti.html#comments</comments>
		<pubDate>Mon, 21 Nov 2011 02:00:12 +0000</pubDate>
		<dc:creator>Stefano Vollono</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[Box model]]></category>
		<category><![CDATA[float]]></category>

		<guid isPermaLink="false">http://www.laboratoriocss.it/?p=3608</guid>
		<description><![CDATA[Il problema! Uno dei grandi problemi di noi WebDesigner è sempre stato quello di dover affiancare elementi blocco di differenti altezza. L&#8217;esempio potrebbe essere quello di una normalissima lista nella quale si susseguono più elementi affiancati l&#8217;uno all&#8217;altro. L&#8217;unica proprietà (a parte il position) che consente di affiancare due elementi blocco estraendoli dal normale flusso [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.laboratoriocss.it/wp-content/uploads/inlineblock1.png" alt="inlineblock1" title="inlineblock1" width="608" height="200" class="alignnone size-full wp-image-3753" /></p>
<h2>Il problema!</h2>
<p>Uno dei grandi problemi di noi WebDesigner è sempre stato quello di dover affiancare elementi blocco di differenti altezza. L&#8217;esempio potrebbe essere quello di una normalissima lista nella quale si susseguono più elementi affiancati l&#8217;uno all&#8217;altro. L&#8217;unica proprietà (a parte il position) che consente di affiancare due elementi blocco estraendoli dal normale flusso del documento è proprio il float, che però, come in questo caso, comporta non pochi problemi. <strong>Per capire subito di cosa sto parlando dai un occhio alla demo prima di proseguire nella lettura!</strong>.</p>
<h2>Un esempio concreto da analizzare</h2>
<p>Per concretizzare più nel dettaglio, osserviamo il comportamente di alcuni elementi flottanti rappresentati graficamente nell&#8217;immagine seguente e poniamoci insieme qualche domanda!</p>
<p><a rel="lightbox" href="http://www.laboratoriocss.it/wp-content/uploads/floating1.png"><img src="http://www.laboratoriocss.it/wp-content/uploads/floating1-300x268.png" alt="floating" title="floating" width="300" height="268" class="aligncenter size-medium wp-image-3706" /></a></p>
<h2>Analisi della metodologia float per affiacare elementi blocco.</h2>
<p><strong>Perchè il terzo elemento della lista cade?</strong><br />
Come da precedente figura l&#8217;elemento padre non è abbastanza ampio da poter contenere tutti gli elementi della nostra lista. Un elemento flottante non puà mai sporgere al di la del limite sinistro o destro del suo elemento contenitore (regola che è stata aggiunta solo nel livello 2) per fare in modo che automaticamente un box flottante vada a capo in assenza di spazio.</p>
<p><strong>Perchè il terzo elemento, cadendo, si posiziona come in figura e non sotto il primo elemento?</strong><br />
Considerando i nostri 3 elementi, devi sempre ricordare che il limite esterno sinistro di un elemento che flotta (3) si troverà sempre a destra del limite esterno destro di un elemento fluttuante che si trova gia li (1) a meno che la parte superiore di (3) si trovi sotto la parte inferiore del (2). In poche parole un elemento fluttuante non può mai sovrapporsi ad un altro elemento fluttuante che si trova li gia in precedenza ed ecco perchè il terzo elemento, non avendo più spazio va a cadere e si va a posizionare affianco al primo elemento. In piu ricorda che un elemento fluttuante si posiziona sempre nel punto piu alto possibile ed in questo caso il punto piu alto possibile, considerando il precedente enunciato è proprio in corrispondenza del limite inferiore del secondo elemento. Se sei confuso, rileggi il tutto aiutandoti con carta e penna. E&#8217; un metodo infallibili che utilizzo sempre anche io per capire meglio cosa sto leggendo!</p>
<h2>La soluzione al problema</h2>
<p><strong>La proprietà Inline-Block</strong><br />
Vuoi mantenere l&#8217;altezza originale di ogni &#8220;li&#8221; per non tagliare via nulla ma garantendo al contempo un allineamento corretto? La soluzione è senza dubbio quella di non ricorrere al float ma di settare il display degli elementi su inline-block. Cosi facendo, potrai gestire facilmente anche l&#8217;allineamento verticale che in questo caso conviene, per motivi estetici, impostare su top.</p>
<pre class="brush: css; title: ; notranslate">
.elements{
    display:inline-block;
    vertical-align:top;
    width:300px;

    /* Cross Browsing. Fix per IE6 e IE7 */
    *display:inline;
    zoom:1;
}
</pre>
<h2>Nota bene&#8230;</h2>
<p><strong>Abbiamo deciso, dietro osservazione di Gabriele nei commenti, di aggiungere la porzione di CSS  per rendere lo script cross-browser (la demo già lo era).</strong> Effettivamente il tutto non era chiarissimo e non saltava bene all&#8217;occhio il link che avevo riportato che comunque ti spiegava nel dettaglio in cosa consista la proprietà inline-block. Ti rimando lo stesso a <a href="http://www.laboratoriocss.it/display-inline-block-cross-browser.html" target="_blank">quest&#8217;articolo per un&#8217;analisi più approfondita.</a>! </p>
<p>Grazie per la collaborazione e scusate per la poca chiarezza!</p>
<div id="demo_download"><a href="http://www.laboratoriocss.it/wp-content/demo/inlineblock1.html" target="_blank"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/live_demo.jpg" alt="Live Demo" /></a><a href="http://www.laboratoriocss.it/wp-content/uploads/inlineblock1.zip" target="_black"><img src="http://www.laboratoriocss.it/wp-content/themes/zbench/images/download_zip.jpg" alt="Download ZIP" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.laboratoriocss.it/affiancare-elementi-blocco-con-altezze-differenti.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tutte le novità sui CSS di livello 4</title>
		<link>http://www.laboratoriocss.it/tutte-le-novita-sui-css-di-livello-4.html</link>
		<comments>http://www.laboratoriocss.it/tutte-le-novita-sui-css-di-livello-4.html#comments</comments>
		<pubDate>Sat, 12 Nov 2011 07:00:40 +0000</pubDate>
		<dc:creator>Stefano Vollono</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[css4]]></category>

		<guid isPermaLink="false">http://www.laboratoriocss.it/?p=3581</guid>
		<description><![CDATA[I CSS4 sono tra Noi!!! Ebbene si, il futuro è tra noi. Come hai detto? Non hai ancora imparato tutto quello che c&#8217;è da sapere sui CSS3 che già spunta fuori il working draft dei CSS livello4? Non preoccuparti più di tanto, come gia ti abbiamo detto molte volte i CSS di livello 3 sono [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-3588" title="css4" src="http://www.laboratoriocss.it/wp-content/uploads/css4.png" alt="" width="608" height="200" /></p>
<h2>I CSS4 sono tra Noi!!!</h2>
<p>Ebbene si, il futuro è tra noi. Come hai detto? Non hai ancora imparato tutto quello che c&#8217;è da sapere sui CSS3 che già spunta fuori il working draft dei CSS livello4? Non preoccuparti più di tanto, come gia ti abbiamo detto molte volte i CSS di livello 3 sono da considerarsi quasi come una camera stagna, composti infatti da moduli, essi vivono in autonomia a prescindere dall&#8217;implementazione di nuovi selettori o regole portanti.</p>
<h2>Documentazione</h2>
<p><a href="http://www.w3.org/TR/2011/WD-selectors4-20110929/" target="_blank">La documentazione</a> parla chiaro: &#8220;This module is an early-stage Working Draft. If you are looking for a stable Selectors specification, use Selectors 3&#8243;. Questa è solo una bozza, se sei in cerca di specifiche stabili utilizza quelle inerenti ai selettori di terzo livello. Quindi non preoccupatevi, ne passerà di acqua sotto i ponti prima che il Livello 4 divenga stabile e utilizzabile.</p>
<h2>Le novità</h2>
<p>Di novità ce ne sono. All&#8217;interno della documentazione ufficiale è presente una comoda tabella riassuntiva di tutti i selettori con affianco specificato il livello di appartenenza! Ti ripropongo l&#8217;elenco della documentazione con esempi concreti.</p>
<p><strong>Negation pseudo-class</strong></p>
<pre class="brush: css; title: ; notranslate">
/* Il seguente selettore intercetta nel documento html
tutti i pulsanti che non hanno come attributo &quot;disable&quot; */
button:not([DISABLED])
</pre>
<p><strong>Matches-any pseudo-class</strong></p>
<pre class="brush: css; title: ; notranslate">
/* Il seguente selettore intercetta nel documento html
qualsiasi ancora appartenente ad un li che sia in stato hover o focus */
li a:matches(:hover, :focus)
</pre>
<p><strong>Attribute selectors: Case-sensitivity</strong></p>
<pre class="brush: css; title: ; notranslate">
/* La seguente regola CSS andrà a stilizzare l'attributo frame
quando questo ha come valore &quot;hsides&quot; in tutte le sue forme
( HSIDES, hSides... etc ) */
[frame=hsides i] { border-style: solid none; }
</pre>
<p><strong>The local link pseudo-class</strong></p>
<pre class="brush: css; title: ; notranslate">
/* La seguente regola previene i link che puntano alla pagina
corrente dall'essere sottolineati se e solo se fanno parte di nav.
La pseudo calsse in questione accetta un valore numerico non negativo
come argomento che indica il numero dei path level da intercettare. */
nav :local-link { text-decoration: none; }
</pre>
<p><strong>Time-dimensional Pseudo-classes (current / past / future)</strong></p>
<pre class="brush: css; title: ; notranslate">
/* Il seguente selettore renderà gialli tutti gli elementi html indicati
tra parentesi durante il rendering del documento tramite sintesi vocale. */
:current(p, li, dt, dd){background: yellow;}
</pre>
<p><strong>The indeterminate-value pseudo-class</strong></p>
<pre class="brush: css; title: ; notranslate">
/* Questo particolare selettore consente di agire sugli elementi della
user interface come ad esempio radiobutton o checkbox quando il loro
stato non si trova nella condizione di indeterminato, come nei casi di
pre-scelta di un gruppo di radio. */
:indeterminate{display:block;}
</pre>
<p><strong>Structural pseudo-classes</strong></p>
<pre class="brush: css; title: ; notranslate">
/* E' molto simile a nth-child ma ha in più l'aggiunta della keyword &quot;of&quot;
che specifica maggiormente la selezione. In questo caso verranno intercettati
tutti i paragrafi dispari che hanno la classe text associata. */
p:nth-match(even of .text)
</pre>
<p><strong>Grid-Structural pseudo-classes</strong></p>
<pre class="brush: css; title: ; notranslate">
/* Il selettore :column che ha come parametri uno o più selettori,
intercetta tutte le celle che soddisfano quella condizione. Accetta
inoltre anche valori interi e la notazione sia nella forma an+b
che even/odd. Il seguente esempio intercetta tutte le celle appartenenti
alle colonne con classe selected. */
:column(col.selected){background: yellow; }
E:nth-column(n)
E:nth-last-column(n)
</pre>
<p><strong>Reference combinator</strong></p>
<pre class="brush: css; title: ; notranslate">
/* Questo selettore identifica le label(quando è in stato :hover
oppure :focus) per tutti gli input associati /for/ */
label:matches(:hover, :focus) /for/ input {color:red;}
</pre>
<p><strong>Determining the subject of a selector</strong></p>
<pre class="brush: css; title: ; notranslate">
/* Con il simbolo $ si può identificare l'oggetto del selettore.
In questo caso il bordo verrà applicato all'elemento UL solo se avrà
al suo interno child li con classe &quot;click&quot; */
$ul li.click {border:1px solid red}
</pre>
<h2>Conclusioni</h2>
<p>Di novità ce ne sono, è tutto ancora in stato draft, quindi tieni d&#8217;occhio la documentazione per restare aggiornato su nuove implementazioni.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laboratoriocss.it/tutte-le-novita-sui-css-di-livello-4.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>TechnologyBIZ 2011</title>
		<link>http://www.laboratoriocss.it/technologybiz-2011.html</link>
		<comments>http://www.laboratoriocss.it/technologybiz-2011.html#comments</comments>
		<pubDate>Fri, 11 Nov 2011 04:00:27 +0000</pubDate>
		<dc:creator>Antonio Polese</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://www.laboratoriocss.it/?p=3610</guid>
		<description><![CDATA[Il TechnologyBIZ si è svolto a Napoli martedì 8 e mercoledì 9 novembre 2011. È un&#8217;iniziativa euro-mediterranea dedicata all&#8217;ICT e all&#8217;innovazione, dove istituzioni, associazioni, grandi aziende e piccole imprese del Sud propongono creazioni per aggiudicarsi il premio dell’ Innovazione Applicata. Noi c&#8217;eravamo, o meglio, non eravamo in gara, ma grazie a Fabio Lalli abbiamo avuto [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-3649" title="tbiz" src="http://www.laboratoriocss.it/wp-content/uploads/tbiz.jpg" alt="TechnologyBIZ" width="608" height="200" /></p>
<p>Il <a title="TechnologyBIZ" href="http://www.technologybiz.it" target="_blank">TechnologyBIZ</a> si è svolto a Napoli martedì 8 e mercoledì 9 novembre 2011. È un&#8217;iniziativa euro-mediterranea dedicata all&#8217;ICT e all&#8217;innovazione, dove istituzioni, associazioni, grandi aziende e piccole imprese del Sud propongono creazioni per aggiudicarsi il premio dell’ Innovazione Applicata.</p>
<p>Noi c&#8217;eravamo, o meglio, non eravamo in gara, ma grazie a <a href="http://fabiolalli.com/" target="_blank">Fabio Lalli</a> abbiamo avuto la possibilità di presentare comunque i nostri progetti in ottica della partnership con <a title="Indigeni Digitali" href="http://blog.indigenidigitali.com/" target="_blank">Indigeni Digitali</a>.</p>
<p>I progetti sono <strong><a title="Bookzingr" href="http://www.bookzingr.com/" target="_blank">Bookzingr</a></strong> (di cui faccio parte) ideato da <a title="Emawebdesign" href="http://www.emawebdesign.com" target="_blank">Emanuele Calì</a>, e <strong><a title="Bisquits" href="http://www.bisquits.net/" target="_blank">Bisquits</a></strong>, di <a title="Alessandro Canessa" href="http://www.alessandrocanessa.it" target="_blank">Alessandro Canessa</a> (anche collaboratore su laboratoriocss) e <a title="Vittorio Grimaldi" href="http://twitter.com/#!/vitgrimm" target="_blank">Vittorio Grimaldi</a>.</p>
<h2>Bookzingr</h2>
<p>Bookzingr è una piattaforma di <strong>social bookmarking</strong> che ti permette di gestire in modo semplice e veloce i tuoi bookmarks.</p>
<p>Oltre ad averli sempre a disposizione, i media (foto e video) presenti nelle pagine web che salvi con Bookzingr vengono automaticamente embeddati nel riepilogo dei tuoi bookmarks.</p>
<p>Puoi creare categorie per organizzare al meglio i tuoi bookmarks, puoi seguire quelli dei tuoi contatti e viceversa, li puoi taggare e condividere sui principali social network come Facebook, Twitter e Google Plus.</p>
<p>beta: <a title="Bookzingr" href="http://www.bookzingr.com/" target="_blank">www.bookzingr.com</a></p>
<p>Di seguito le slide della presentazione:</p>
<p><iframe style="margin-top: 5px;" src="http://www.slideshare.net/slideshow/embed_code/10110848" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="620" height="355"></iframe></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/emawebdesign" target="_blank">emanuele calì</a></div>
<h2>Bisquits</h2>
<p>Bisquits è un<strong> social network per coder</strong>, che ti permette di creare la tua libreria personale di codici di programmazione e di condividerla all&#8217;interno di una community.</p>
<p>Nella tua libreria è anche possibile includere i codici scritti da altri utenti, codici che possono essere votati, condivisi e commentati.</p>
<p>Bisquits include anche <strong>Qloud</strong>, la piattaforma che ti consente il salvataggio delle tua libreria in remoto e l&#8217;accesso tramite un comodo sistema basato su CDN.</p>
<p>beta: <a title="Bisquits" href="http://www.bisquits.net/" target="_blank">www.bisquits.net</a></p>
<p>Di seguito le slide della presentazione:</p>
<p><object style="margin-top:15px" id="__sse10115669" width="620" height="355" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bisquits-111111032818-phpapp01&amp;stripped_title=bisquits&amp;userName=alexcanessa" /><param name="allowscriptaccess" value="always" /><param name="allowfullscreen" value="true" /><embed id="__sse10115669" width="620" height="355" type="application/x-shockwave-flash" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bisquits-111111032818-phpapp01&amp;stripped_title=bisquits&amp;userName=alexcanessa" allowFullScreen="true" allowScriptAccess="always" allowscriptaccess="always" allowfullscreen="true" /></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/alexcanessa">alexcanessa</a>.</div>
<p>I progetti hanno fatto la loro bella figura, tanto che siamo stati invitati anche l&#8217;anno prossimo con uno stand tutto nostro. <img src='http://www.laboratoriocss.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>E&#8217; stato tutto molto bello, davvero una bella esperienza, soprattutto quando vedi che i sacrifici cominciano a prendere forma. Ringrazio vivamente Fabio Lalli per questo.</p>
<p>Come ci ha detto uno degli organizzatori:<em> &#8220;siate affamati, siate folli e visto che vi trovate a Napoli, siate anche incazzati&#8221;</em>.</p>
<p>Alla prossima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laboratoriocss.it/technologybiz-2011.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

