<?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>Francesco Gavello - Blog Marketing Tips, Web &#38; Blogosfera&#187; xHTML &amp; CSS</title>
	<atom:link href="http://francescogavello.it/category/xhtml-css/feed" rel="self" type="application/rss+xml" />
	<link>http://francescogavello.it</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 03:30:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Progressive Enhancement (4): ottimizzare per iPhone</title>
		<link>http://francescogavello.it/progressive-enhancement-4-ottimizzare-per-iphone</link>
		<comments>http://francescogavello.it/progressive-enhancement-4-ottimizzare-per-iphone#comments</comments>
		<pubDate>Wed, 05 Nov 2008 04:30:24 +0000</pubDate>
		<dc:creator>Francesco Gavello</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[xHTML & CSS]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[progressive enhancement]]></category>

		<guid isPermaLink="false">http://francescogavello.it/?p=376</guid>
		<description><![CDATA[Questo articolo fa parte della serie &#8220;Progressive Enhancement: migliorare l’esperienza utente per i browser moderni&#8220;. La prima, seconda e terza parte hanno già visto analizzati i più interessanti selettori CSS3 che possono esssere utilizzati sin da oggi in maniera proficua.
Oggi invece parliamo di iPhone.
Un oggettino estremamente controverso che nonostante le ...<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/progressive-enhancement-4-ottimizzare-per-iphone">Progressive Enhancement (4): ottimizzare per iPhone</a></p>
</div></p>
]]></description>
			<content:encoded><![CDATA[<p><img src="http://francescogavello.it/wp-content/uploads/iphone.jpg" alt="iphone" title="iphone" width="270" height="350" class="alignnone size-full wp-image-377" /><em>Questo articolo fa parte della serie &#8220;<a href="http://francescogavello.it/progressive-enhancement-migliorare-esperienza-utente-per-i-browser-moderni">Progressive Enhancement: migliorare l’esperienza utente per i browser moderni</a>&#8220;. La <a href="http://francescogavello.it/progressive-enhancement-1-selettori-di-attributo-selettori-adiacenti-e-bordi-arrotondati">prima</a>, <a href="http://francescogavello.it/progressive-enhancement-2-pseudo-elementi-ombre-e-elementi-not">seconda</a> e <a href="http://francescogavello.it/progressive-enhancement-3-colonne-effetti-su-testo-e-background-multipli">terza</a> parte hanno già visto analizzati i più interessanti selettori CSS3 che possono esssere utilizzati sin da oggi in maniera proficua.</em></p>
<p>Oggi invece parliamo di iPhone.<br />
Un oggettino estremamente controverso che nonostante le differenti opinioni a riguardo è riuscito a finire in una notevole quantità di tasche italiane, e per via delle sue innovative potenzialità a livello di browsing merita sicuramente un&#8217;analisi più approfondita.</p>
<p><strong>Come possiamo dunque rendere migliori i nostri layout agli utenti iPhone?</strong></p>
<p>Diciamo che sviluppare con un occhio ad iPhone è in qualche modo possibile anche senza averne acquistato uno. E&#8217; sufficiente basarsi su Safari (in versione desktop), da qualche tempo <a href="http://www.apple.com/safari/">disponibile anche per Windows</a> e attenersi ad alcune basilari regole di buona scrittura durante la costruzione dei nostri layout (ah, gli standard).</p>
<p>Tuttavia, così facendo si sta solo iniziando a scalfire la superficie. La completa integrazione di Safari Mobile con le altre apps installate come Mappe o le chiamate telefoniche rendono possibili tutta una serie di interessanti ottimizzazioni che si possono sperimentare solamente &#8220;mettendoci la mani sopra&#8221;.</p>
<p>Lavoriamo su iPhone, e vogliamo letteralmente spremerlo al massimo.<br />
<span id="more-376"></span></p>
<h2>Prima di iniziare</h2>
<ul>
<li><strong>Le tue dita non saranno mai precise come un mouse</strong>.<br />
Su iPhone si interagisce con le dita, e a meno di non fare un uso continuo dello zoom, la precisione di puntamento sarà leggermente inferiore rispetto a quanto siamo abituati a fare tramite mouse; layout ampi e spaziosi sono semplicemente l&#8217;ideale.
</li>
<li><strong>Dimentica il concetto di finestra.</strong><br />
Il concetto di finestra poi, lascia il tempo che trova quando la navigazione avviene una pagina alla volta, a tutto schermo e senza overlay di nessun tipo. Lo zoom tramite doppio tap su una parte del layout adatta la visuale al primo elemento blocco presente. Nessuna finestra, altro resize o scroll controllabili.
</li>
<li><strong>Quando lo spazio è poco, &#8220;less is more&#8221;.</strong><br />
Con una risoluzione portante di 480&#215;320 pixel (in modalità landscape) è naturale che un contenuto a singola colonna sia il meglio che un vostro utente possa chiedere: tuttavia anche senza rivoluzionare il vostro layout in tale senso, ricordate che la chiarezza con la quale disponete i vostri contenuti verrà notata (e apprezzata) da chi altrimenti si troverebbe a scrollare continuamente a destra e sinistra.</li>
</ul>
<h2>Hey, ma Mobile Safari non se la sbrigava da solo?</h2>
<p>Per la maggior parte è vero. Safari Mobile sarà in grado di visualizzare le vostre pagine web con l&#8217;esatta qualità della controparte desktop senza che voi dobbiate metterci mano in alcun modo.</p>
<p>Tuttavia come già detto la differente area di visualizzazione e i metodi che avete per interagire con essa (le vostre dita) possono richiedere qualche accorgimento aggiuntivo per agevolare la navigazione e sfruttare al massimo le caratteristiche dell&#8217;iPhone.</p>
<h2>Un foglio di stile separato</h2>
<p>Probabilmente già lo immaginavate. Anche in questo caso è bene prevedere un CSS separato dal resto della nostra struttura, contenente le sole regole volte a determinare la resa su Mobile Safari. </p>
<p>Possiamo filtrare il caricamento del nostro foglio di stile aggiuntivo riconoscendo la proprietà <strong>&#8220;max-device-width&#8221;</strong> settata a 480 pixel (la dimensione dello schermo dell&#8217;iPhone).</p>
<p>Inseriamo quindi nell&#8217;head del nostro documento la seguente riga, che permette a tutti gli altri device con una dimensione superiore ai 480 pixel di ignorare il caricamento del CSS dedicato all&#8217;iPhone.</p>
<pre class="brush: html">
&lt;link media=&quot;only screen and (max-device-width: 480px)&quot;
href=&quot;css_iphone.css&quot; type=&quot;text/css&quot; rel=&quot;stylesheet&quot; /&gt;
</pre>
<h2>Comprendere il Viewport</h2>
<p>Mobile Safari effettua un resize automatico a partire dai 980 pixel verso i 320 pixel (modalità portrait). Consideriamola una buona base di partenza per poter ottenere la migliore resa qualitativa sull maggior parte dei siti web attualmente in circolazione (che sono dotati per l&#8217;appunto di una width massima di 980 pixel).</p>
<p>Questo non toglie che il vostro layout possa avere differenti dimensioni e richiedere un diverso livello di resize. Esiste a tale scopo un potente meta tag aggiuntivo: <strong>viewport</strong> in grado di indicare ad iPhone la dimensione di partenza da cui effettuare il resize.</p>
<pre class="brush: html">
&lt;meta name=&quot;viewport&quot; content=&quot;width=800&quot; /&gt;
</pre>
<p>Nel caso il vostro layout sia leggermente più piccolo della media, un semplice accorgimento come questo può rendere i vostri testi direttamente leggibili senza bisogno di ulteriori zoom lato utente. Un bel vantaggio con poco sforzo.</p>
<p>Sempre tramite viewport possiamo definire il livello di zoom iniziale, tramite la proprietà <strong>&#8220;initial-scale=x.y&#8221;</strong> o bloccarla del tutto con <strong>&#8220;user-scalable = no&#8221;</strong> (ma ve lo sconsiglio).</p>
<pre class="brush: html">
&lt;meta name = &quot;viewport&quot; content = &quot;initial-scale = 1.0&quot; /&gt;
&lt;meta name = &quot;viewport&quot; content = &quot;initial-scale = 2.3, user-scalable = no&quot; /&gt;
</pre>
<p>Lavorando sui dettagli potremo scoprire che agevolare uno zoom iniziale su una &#8220;area calda&#8221; del nostro layout può far risparmiare tempo prezioso ai nostri lettori e focalizzare l&#8217;attenzione su ciò che per noi è importante.</p>
<h2>Testi</h2>
<p>iPhone applica una sorta di ridimensionamento intelligente anche ai testi mano a mano che il livello di zoom aumenta. Ciò può portare ad effetti imprevisti nei menù di navigazione o <strong>quando ci troviamo a disporre i contenuti in spazi a dimensione fissa</strong>.</p>
<p>E&#8217; possibile disattivare il ridimensionamento del testo o aumentarne la dimensione ad hoc tramite la regola <strong>&#8220;-webkit-text-size-adjust&#8221;</strong>.</p>
<pre class="brush: css">
-webkit-text-size-adjust: none; /* nessun ridimensionamento intelligente */
-webkit-text-size-adjust: 150%; /* ingrandisci il testo del 150% */
</pre>
<h2>Integrazione con le apps</h2>
<p>Esistono poi tutta una serie di proprietà che la versione mobile di Safari implementa per migliorare la user experience e che, per ovvi motivi, non sono implementate nella versione desktop.</p>
<p>Cliccare su un link ad una mappa di Google, ad esempio, porterà all&#8217;apertura dell&#8217;applicazione Mappe con il passaggio dei parametri associati. Iphone riconosce infatti i link che iniziano con &#8220;<strong>http://maps.google.com/maps</strong>&#8221; e ne dirotta l&#8217;apertura all&#8217;applicazione più consona anziché aprirne la pagina web.</p>
<p>Vengono anche riconosciuti i formati hCard, attivando i numeri telefonici in essi inclusi e permettendo la chiamata diretta dalla pagina web.</p>
<pre class="brush: html">
&lt;div id=&quot;hcard-Francesco Gavello&quot; class=&quot;vcard&quot;&gt;
    &lt;div class=&quot;fn&quot;&gt;Francesco&lt;/div&gt;
    &lt;div class=&quot;tel&quot;&gt;123-45667890&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>O in alternativa è anche possibile passare un parametro al software telefonico tramite il classico link con tag &#8220;a&#8221;, inserendo nell&#8217;attributo href il prefisso <strong>&#8220;tel:&#8221;</strong>.<br />
E&#8217; da notare come link di tale costruzione possano quasi certamente generare problemi sui restanti browser, e dovrebbero essere mostrati solo tramite il foglio di stile riservato all&#8217;iPhone.</p>
<pre class="brush: html">
&lt;a class=&quot;call&quot; href=&quot;tel:123-4567890&quot;&gt;Chiama Francesco Gavello&lt;/a&gt;
</pre>
<h2>CSS potenziati</h2>
<p>Non vanno trascurate le potenzialità di Safari nell&#8217;implementare (come abbiamo visto in passato) le più recenti regole CSS3. Proprietà come &#8220;-webkit-border-radius&#8221;, &#8220;-webkit-border-image&#8221;, background multipli e l&#8217;utilizzo di PNG trasparenti possono finalmente venire applicati in maniera semplice e senza grattacapi.<br />
Il paradiso del web designer, insomma <img src='http://francescogavello.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h2>Il giusto equilibrio</h2>
<p>Questa ovviamente è solo una parte di ciò che potete fare oggi con il vostro iPhone un pò di tempo da dedicare ottimizzazione. Le potenzialità sono moltissime e dipendono in gran parte dai risultati che volete ottenere.</p>
<p>Non credo tuttavia che sia una buona idea spingersi <strong>troppo oltre sino a sostituire la totalità del proprio layout con una versione &#8220;lite&#8221; dedicata alla navigazione mobile</strong> (a meno di non essere un grosso network come Digg, Facebook o eBay, ma in quel caso una apps dedicata risolve gran parte dei problemi).</p>
<p>La potenza di iPhone sin dall&#8217;inizio è stata quella di offrire <strong>la vera internet</strong> senza troppi compromessi. Questo è ciò che gli utenti si aspettano ed è ciò che dovremmo secondo me dargli. Voi che ne pensate?</p>
<p>foto: <a href="http://www.apple.com/it/iphone/">Apple</a></p>
<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/progressive-enhancement-4-ottimizzare-per-iphone">Progressive Enhancement (4): ottimizzare per iPhone</a></p>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://francescogavello.it/progressive-enhancement-4-ottimizzare-per-iphone/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Progressive Enhancement (3): colonne, effetti su testo e background multipli</title>
		<link>http://francescogavello.it/progressive-enhancement-3-colonne-effetti-su-testo-e-background-multipli</link>
		<comments>http://francescogavello.it/progressive-enhancement-3-colonne-effetti-su-testo-e-background-multipli#comments</comments>
		<pubDate>Mon, 27 Oct 2008 05:00:39 +0000</pubDate>
		<dc:creator>Francesco Gavello</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[xHTML & CSS]]></category>
		<category><![CDATA[progressive enhancement]]></category>

		<guid isPermaLink="false">http://francescogavello.it/?p=345</guid>
		<description><![CDATA[Questa è la terza parte della serie &#8220;Progressive Enhancement: migliorare l’esperienza utente per i browser moderni&#8220;, dedicata alla tecniche CSS3 (e non solo) che puoi utilizzare a partire da ora per migliorare la resa dei tuoi layout. 
Se ti sei perso le puntate precedenti puoi leggere anche la prima e ...<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/progressive-enhancement-3-colonne-effetti-su-testo-e-background-multipli">Progressive Enhancement (3): colonne, effetti su testo e background multipli</a></p>
</div></p>
]]></description>
			<content:encoded><![CDATA[<p><em>Questa è la terza parte della serie &#8220;<a href="http://francescogavello.it/progressive-enhancement-migliorare-esperienza-utente-per-i-browser-moderni">Progressive Enhancement: migliorare l’esperienza utente per i browser moderni</a>&#8220;, dedicata alla tecniche CSS3 (e non solo) che puoi utilizzare a partire da ora per migliorare la resa dei tuoi layout. </em></p>
<p><em>Se ti sei perso le puntate precedenti puoi leggere anche la <a href="http://francescogavello.it/progressive-enhancement-1-selettori-di-attributo-selettori-adiacenti-e-bordi-arrotondati">prima</a> e la <a href="http://francescogavello.it/progressive-enhancement-2-pseudo-elementi-ombre-e-elementi-not">seconda</a> parte.</em></p>
<h2>Colonne multiple</h2>
<p>Stile di impaginazione preso di peso dall&#8217;ambito giornalistico, suddividere i contenuti su più colonne adiacenti può tornare molto utile in layout del tipo &#8220;magazine style&#8221; (per l&#8217;appunto) che sembrano andare tanto alla grande negli ultimi tempi.</p>
<p>Vediamo quindi come suddividere il testo contenuto in un contenitore in maniera totalmente automatica affidandoci ad alcune semplici regole CSS3.</p>
<p><span id="more-345"></span></p>
<p><strong>Teoria</strong></p>
<p>Otterremo il nostro scopo grazie ai selettori &#8220;column-count&#8221;, che definisce il numero di colonne sulle quali spezzare il contenuto</p>
<ul>
<li>column-count: 3;</li>
<li>-moz-column-count: 3; /*  Mozilla */</li>
<li>-webkit-column-count: 3; /* Webkit */</li>
</ul>
<p>&#8220;column-gap&#8221;, che imposta lo spazio tra una colonna e l&#8217;altra</p>
<ul>
<li>column-gap: 20px;</li>
<li>-moz-column-gap: 20px;</li>
<li>-webkit-column-gap: 20px;</li>
</ul>
<p>e &#8220;column-width&#8221; che come prevedibile va a definire la grandezza della singola colonna</p>
<ul>
<li>column-width: 150px;</li>
<li>-moz-column-width: 150px;</li>
<li>-webkit-column-width: 150x;</li>
</ul>
<p>Come si può vedere abbiamo nuovamente a disposizione la regola &#8220;standard&#8221; CSS3 e le relative varianti per i browser attualmente in grado di supportarla: &#8220;-moz&#8221; per Mozilla (Firefox e derivati) e &#8220;-webkit&#8221; per Safari.</p>
<p><strong>Pratica</strong></p>
<p>Il nostro codice HTML è come al solito molto pulito ed essenziale, e anzi non richiede nessun tagging aggiuntivo. Abbiamo solamente bisogno di un contenitore e dei paragrafi al suo interno sui quali agire. Una condizione abbastanza classica, insomma.</p>
<pre class="brush: css">
&lt;div class=&quot;esempio multi_colonne&quot;&gt;
&lt;h2&gt;Fisso tre colonne con spaziatura 20px&lt;/h2&gt;
&lt;div id=&quot;colonna_tipo_1&quot;&gt;
&lt;p&gt;Lorem ipsum dolor sit amet...&lt;/p&gt;
&lt;p&gt;Lorem ipsum dolor sit amet...&lt;/p&gt;
&lt;p&gt;Lorem ipsum dolor sit amet...&lt;/p&gt;
&lt;p&gt;Lorem ipsum dolor sit amet...&lt;/p&gt;
&lt;/div&gt;

&lt;h2&gt;Fisso la dimensione e la spaziatura&lt;/h2&gt;
&lt;div id=&quot;colonna_tipo_2&quot;&gt;
&lt;p&gt;Lorem ipsum dolor sit amet...&lt;/p&gt;
&lt;p&gt;Lorem ipsum dolor sit amet...&lt;/p&gt;
&lt;p&gt;Lorem ipsum dolor sit amet...&lt;/p&gt;
&lt;p&gt;Lorem ipsum dolor sit amet...&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</pre>
<p><strong>N</strong><strong>ota:</strong> il &#8220;Lorem Ipsum&#8221; all&#8217;interno dei paragrafi è stato troncato per esigenze di impaginazione di questo post.</p>
<p>Andiamo quindi a puntare il div &#8220;colonna_tipo_1&#8243; e impostiamo il numero delle colonne sulle quali fare fluire il testo a 3, con una spaziatura di 20 pixel ciascuna.</p>
<pre class="brush: css">

#colonna_tipo_1{
-moz-column-count: 3;
-webkit-column-count: 3;
column-count: 3;

-moz-column-gap: 20px;
-webkit-column-gap: 20px;
column-gap: 20px;
}
</pre>
<p><img class="img_centro" title="colonne-css3" src="http://francescogavello.it/wp-content/uploads/colonne-css3.jpg" alt="Colonne multiple con i CSS3" width="583" height="188" /></p>
<p>Oppure agiamo sulla proprietà &#8220;column width&#8221; per fissare la dimensione di una colonnna, definiamo poi la spaziatura e lasciamo che il browser si occupi di come suddividere il testo.</p>
<pre class="brush: css">
#colonna_tipo_2{
-moz-column-width: 150px;
-webkit-column-width: 150x;
column-width: 150px;

-moz-column-gap: 20px;
-webkit-column-gap: 20px;
column-gap: 20px;
}
</pre>
<p><img class="img_centro" title="colonne-css3-2" src="http://francescogavello.it/wp-content/uploads/colonne-css3-2.jpg" alt="Colonne multiple con i CSS3"  width="583" height="188" /></p>
<h2>4. Testo ombreggiato</h2>
<p>Un&#8217;altra tecnica decisamente immediata da applicare sul testo per risaltarne l&#8217;effetto è la proprietà text-shadow.</p>
<p><strong>Teoria:</strong></p>
<p>La regola in questo caso è una sola</p>
<ul>
<li>text-shadow: 2px 2px 5px #333</li>
</ul>
<p>che accetta quattro parametri: nell&#8217;ordine spostamento orizzontale, spostameno verticale, sfocatura e colore dell&#8217;ombra proiettata.</p>
<p><strong>Pratica:</strong></p>
<p>La proprietà viene applicata in maniera molto semplice, e rende al meglio se usata in maniera &#8220;sottile&#8221; e senza abusarne.</p>
<pre class="brush: css">
.ombra_su_testo h2 {
text-shadow: 2px 2px 5px #333;
color: #eee;
}
</pre>
<p><img class="img_centro" title="text-shadow" src="http://francescogavello.it/wp-content/uploads/text-shadow.jpg" alt="Text shadow su testo con i CSS3" width="583" height="188" /></p>
<h2>Background multipli</h2>
<p>Ecco quindi l&#8217;ultima delle proprietà di oggi, probabilmente una delle più richieste da chi utilizza i CSS in maniera &#8220;massiva&#8221; con particolare attenzione agli effetti sullo sfondo: i background multipli.</p>
<p><strong>Teoria</strong></p>
<p>Utilizzare i background multipli con i CSS3 è molto più semplice di quanto possa sembrare. Si tratta sostanzialmente di un&#8217;espansione delle attuali regole:</p>
<ul>
<li>background-image</li>
<li>background-position</li>
<li>background-repeat</li>
</ul>
<p>che vanno compilate esattamente come nelle specifiche CSS2, ma alle quali è possibile &#8220;appendere&#8221;, tramite il separatore virgola &#8220;,&#8221; ulteriori background, posizioni e proprietà di ripetizione.</p>
<p>Vediamolo in pratica.</p>
<p><strong>Pratica</strong></p>
<p>Nell&#8217;esempio che vi riporto ho utilizzato due diversi background: uno per realizzare una sfumatura in alto, ripetuta sull&#8217;asse X, e una in basso a destra, non ripetuta. Il tutto con tre regole e senza l&#8217;utilizzo di contenitori annidati a supporto.</p>
<pre class="brush: css">
.background_multipli {
background-image: url(img/top.jpg), url(img/bottom_right.jpg);
background-position: top left, bottom right;
background-repeat: repeat-x, no-repeat;
}
</pre>
<p>L&#8217;immagine in alto &#8220;top.jpg&#8221; viene quindi posizionata &#8220;top left&#8221; e ripetuta &#8220;repeat-x&#8221;. Le altre proprietà seguono la seconda posizione, un eventuale terzo background la terza, e così via teoricamente all&#8217;infinito.</p>
<p>Come potete immaginare gli utilizzi di una simile tecnica sono pressochè infiniti. Attualmente solo Safari supporta i background multipli.</p>
<p><img class="img_centro" title="multiple-backgrounds" src="http://francescogavello.it/wp-content/uploads/multiple-backgrounds.jpg" alt="Background multipli con i CSS3" width="583" height="376" /></p>
<h2>Scarica i file con gli esempi</h2>
<p>Arrivati al termine della terza puntata ecco per voi a disposizione lo zip contenente i file utilizzati sino ad ora (comprensivo anche degli argomenti trattati nella <a href="http://francescogavello.it/progressive-enhancement-1-selettori-di-attributo-selettori-adiacenti-e-bordi-arrotondati">prima</a> nella <a href="http://francescogavello.it/progressive-enhancement-2-pseudo-elementi-ombre-e-elementi-not">seconda</a> puntata).</p>
<ul>
<li><a href="http://francescogavello.it/wp-content/uploads/progressive_enhancement.zip">Tecniche di progressive enhancement: file di esempio</a></li>
</ul>
<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/progressive-enhancement-3-colonne-effetti-su-testo-e-background-multipli">Progressive Enhancement (3): colonne, effetti su testo e background multipli</a></p>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://francescogavello.it/progressive-enhancement-3-colonne-effetti-su-testo-e-background-multipli/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Progressive Enhancement (2): pseudo elementi, ombre e elementi NOT</title>
		<link>http://francescogavello.it/progressive-enhancement-2-pseudo-elementi-ombre-e-elementi-not</link>
		<comments>http://francescogavello.it/progressive-enhancement-2-pseudo-elementi-ombre-e-elementi-not#comments</comments>
		<pubDate>Mon, 20 Oct 2008 05:00:31 +0000</pubDate>
		<dc:creator>Francesco Gavello</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[xHTML & CSS]]></category>
		<category><![CDATA[progressive enhancement]]></category>

		<guid isPermaLink="false">http://francescogavello.it/?p=344</guid>
		<description><![CDATA[Continua l&#8217;appuntamento con le tecniche di progressive enhancement che sono disponibili sin da ora per migliorare l&#8217;esperienza utente nella costruzione vostri layout. Potete leggere l&#8217;introduzione alla serie e tutte le altre puntate disponibili all&#8217;articolo principale &#8220;Progressive Enhancement: migliorare l’esperienza utente per i browser moderni&#8220;.
E ora via, con altri tre selettori ...<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/progressive-enhancement-2-pseudo-elementi-ombre-e-elementi-not">Progressive Enhancement (2): pseudo elementi, ombre e elementi NOT</a></p>
</div></p>
]]></description>
			<content:encoded><![CDATA[<p>Continua l&#8217;appuntamento con le tecniche di <em>progressive enhancement</em> che sono disponibili sin da ora per migliorare l&#8217;esperienza utente nella costruzione vostri layout. Potete leggere l&#8217;introduzione alla serie e tutte le altre puntate disponibili all&#8217;articolo principale &#8220;<a href="http://francescogavello.it/progressive-enhancement-migliorare-esperienza-utente-per-i-browser-moderni">Progressive Enhancement: migliorare l’esperienza utente per i browser moderni</a>&#8220;.</p>
<p>E ora via, con altri tre selettori decisamente utili e rapidi da implementare.</p>
<h2>4. Pseudo Elementi</h2>
<p>Parlando di aspetti prettamente tipografici, definire in maniera particolare la prima riga di un paragrafo può agevolarne la lettura ponendo l&#8217;attenzione su ciò che state scrivendo. Utilizzeremo per questo compito l&#8217;attributo &#8220;<strong>first-line</strong>&#8220;, oramai utilizzato da gran parte dei browser (escluso Internet Explorer 6).</p>
<p><strong>Teoria</strong></p>
<p>Nel nostro contenitore con classe &#8220;esempio&#8221; andiamo a puntare <strong>tutti i paragrafi che seguono un titolo di secondo livello e in particolare solamente la loro prima linea</strong> (first-line, appunto).</p>
<p>Indichiamo una variazione del font sul maiuscolo completo, una maggiore grandezza regolata sui 18 pixel e una spaziatura delle lettere a 2 pixel rispetto allo standard.</p>
<p><span id="more-344"></span></p>
<p><strong>Pratica</strong></p>
<pre class="brush: css">
.esempio h2 + p:first-line {
font-variant : small-caps;
font-size : 18px;
letter-spacing : 2px;
}
</pre>
<p>La resa, come si può notare dall&#8217;immagine, è di colpire immediatamente il lettore rispetto ad un anonimo blocco di testo Un piccolo dettaglio che aggiunge quel qualcosa in più.</p>
<p><img class="img_centro" title="first-line-css3" src="http://francescogavello.it/wp-content/uploads/first-line-css3.jpg" alt="Utilizzo dell'attributo first-line con i CSS3" width="583" height="188" /></p>
<h2>5. Ombre</h2>
<p>Qualche ombra ben posizionata riesce a dare un senso di maggiore profondità e in genere un feeling meno &#8220;freddo&#8221;. Solitamente gestire le ombre sui contenitori richiede l&#8217;utilizzo di contenitori vuoti e in alcuni casi molto annidati, mentre con i CSS3 il tutto viene ridotto ad una essenziale quanto potente regola.</p>
<p>Attualmente solo Safari e Firefox 3.1 (alpha) supportano le ombre.</p>
<p><strong>Teoria</strong></p>
<p>I selettori per generare ombre tramite CSS3:</p>
<ul>
<li>box-shadow (standard CSS3)</li>
<li>-webkit-box-shadow (specifico per Webkit, con il classico attributo -webkit che abbiamo imparato a conoscere)</li>
</ul>
<p>I parametri che accettano sono quattro, rappresentanti rispettivamente</p>
<ul>
<li>spostamento orizzontale</li>
<li>spostamento in verticale</li>
<li>sfocatura</li>
<li>colore dell&#8217;ombra proiettata</li>
</ul>
<p><strong>Pratica</strong></p>
<pre class="brush: css">
box-shadow : 5px 5px 20px #333;
-webkit-box-shadow : 5px 5px 20px #333;
</pre>
<p>I selettori presentati producono come effetto un&#8217;ombra spostata a destra e in basso di 5 pixel, che sfuma a 20 pixel di distanza con colore #333333.</p>
<p><img class="img_centro" title="box-shadow" src="http://francescogavello.it/wp-content/uploads/box-shadow.jpg" alt="Ombra su contenitore tramite CSS3" width="583" height="188 /></p>
<h2>6. Elementi NOT</h2>
<p>Tramite il selettore NOT possiamo rendere specifiche alcune regole CSS ai soli elementi del layout che NON rispondono ad una condizione dichiarata.</p>
<p><strong>Teoria</strong></p>
<p>Supponiamo di avere un&#8217;immagine all&#8217;interno del contenitore con classe &#8220;attributo_not&#8221; che vogliamo mostrare solo ai browser come Safari e Firefox (in grado di comprendere gli attributi negati al contrario di Internet Explorer).</p>
<p>Per prima cosa settiamo la sua visibilità su &#8220;none&#8221; con il selettore &#8220;display&#8221;. In questo modo l&#8217;immagine sarà naturalmente nascosta per tutti i browser. Andiamo poi a <strong>indicare ai browser recenti che tutte le immagini che NON hanno l&#8217;attributo border (la nostra immagine, in questo caso) devono essere mostrate</strong> (display: block), flottare a destra e avere un po&#8217; di margine a destra e in basso.</p>
<p><strong>Pratica</strong></p>
<pre class="brush: css">

.attributo_not img {
display: none; /* nascondiamo di default l&#039;immagine */
}

.attributo_not img:not([border]) {
/*rendiamola nuovamente visibile solo se non ha bordo*/
display: block;
float: left;
margin: 0 10px 10px 0;
} </pre>
<p>L&#8217;attributo &#8220;:not([border])&#8221; va a colpire tutte le immagini all&#8217;interno della classe .attributo_not che NON hanno un bordo definito. Gli utilizzi sulla base della negazione di attributi sono pressoché infiniti e trovano ottime applicazioni come miglioramento estetico per i browser che se lo possono permettere.</p>
<p><img class="img_centro" title="selettore-not" src="http://francescogavello.it/wp-content/uploads/selettore-not.jpg" alt="Selettore NOT nei CSS3" width="583" height="188 /></p>
<h2>Altri articoli della serie</h2>
<p>Sono disponibili gli altri articoli della serie &#8220;Progressive Enhancement: migliorare l’esperienza utente per i browser moderni&#8221;</p>
<ul>
<li><a href="http://francescogavello.it/progressive-enhancement-migliorare-esperienza-utente-per-i-browser-moderni">Progressive Enhancement: migliorare l’esperienza utente per i browser moderni</a></li>
<li><a href="http://francescogavello.it/progressive-enhancement-1-selettori-di-attributo-selettori-adiacenti-e-bordi-arrotondati">Progressive Enhancement (1) : Selettori di attributo, selettori adiacenti e bordi arrotondati</a></li>
</ul>
<p>Al prossimo appuntamento! <img src='http://francescogavello.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/progressive-enhancement-2-pseudo-elementi-ombre-e-elementi-not">Progressive Enhancement (2): pseudo elementi, ombre e elementi NOT</a></p>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://francescogavello.it/progressive-enhancement-2-pseudo-elementi-ombre-e-elementi-not/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Progressive Enhancement (1) : Selettori di attributo, selettori adiacenti e bordi arrotondati</title>
		<link>http://francescogavello.it/progressive-enhancement-1-selettori-di-attributo-selettori-adiacenti-e-bordi-arrotondati</link>
		<comments>http://francescogavello.it/progressive-enhancement-1-selettori-di-attributo-selettori-adiacenti-e-bordi-arrotondati#comments</comments>
		<pubDate>Mon, 13 Oct 2008 04:00:00 +0000</pubDate>
		<dc:creator>Francesco Gavello</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[xHTML & CSS]]></category>
		<category><![CDATA[progressive enhancement]]></category>

		<guid isPermaLink="false">http://francescogavello.it/?p=343</guid>
		<description><![CDATA[Questo post fa parte della serie &#8220;Progressive Enhancement: migliorare l’esperienza utente per i browser moderni&#8220;.
Come anticipato, iniziamo a prendere in esame alcune delle tecniche di progressive enhancement più semplici da mettere in pratica. Vorrei ricordare prima di iniziare come questi articoli trattino di tecniche atte a migliorare esteticamente i nostri ...<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/progressive-enhancement-1-selettori-di-attributo-selettori-adiacenti-e-bordi-arrotondati">Progressive Enhancement (1) : Selettori di attributo, selettori adiacenti e bordi arrotondati</a></p>
</div></p>
]]></description>
			<content:encoded><![CDATA[<p><em>Questo post fa parte della serie &#8220;<a href="http://francescogavello.it/progressive-enhancement-migliorare-esperienza-utente-per-i-browser-moderni">Progressive Enhancement: migliorare l’esperienza utente per i browser moderni</a>&#8220;.</em></p>
<p>Come anticipato, iniziamo a prendere in esame alcune delle tecniche di progressive enhancement più semplici da mettere in pratica. Vorrei ricordare prima di iniziare come questi articoli trattino di tecniche atte a <strong>migliorare esteticamente</strong> i nostri layout, e che non non vanno  pertanto considerate come basi con le quali costruirne la struttura stessa. Per una lettura più approfondita vi rimando <a href="http://francescogavello.it/progressive-enhancement-migliorare-esperienza-utente-per-i-browser-moderni">all&#8217;articolo principale</a> della serie.</p>
<h2>Un foglio di stile separato</h2>
<p>Anche se molti dei selettori che verranno esplorati in seguito possono essere implementati <strong>direttamente nel nostro foglio di stile principale</strong>, questa si rivela una <strong>cattiva pratica</strong> nell&#8217;ottica di un manutenzione futura.</p>
<p>Ricordiamo che l&#8217;obiettivo del progressive enhancement è di fornire un miglioramento ai nostri layout partendo sempre e comunque da una solida struttura di base, struttura che deve dimostrarsi autonoma e dotata della maggiore compatiblità cross browser realizzabile. E&#8217; su di essa che andremo a lavorare apportandovi dei migliroamenti progressivi.</p>
<p>Converrà perciò aggiungere al nostro foglio di stile un secondo foglio &#8220;exra&#8221; dedicato a tutti i miglioramenti che vogliamo implementare.</p>
<p>I vantaggi di una simile scelta sono evidenti:</p>
<ul>
<li>maggiore mantenibilità del codice</li>
<li>eventuale possibilità di filtrare il caricamento del secondo foglio di stile da javascript</li>
</ul>
<p>Per i browser che <em>se lo possono permettere</em> (in virtù di una maggiore apertura all&#8217;implementazione di futuri standard), iniziamo quindi a considerare qualche utile selettore.</p>
<p><span id="more-343"></span></p>
<h2>1. Selettori di attributo</h2>
<p>Questi selettori, già spesso usati nelle specifiche CSS2 (<a href="http://www.diodati.org/w3c/css2/selector.html#attribute-selectors">qui una traduzione</a>), con i CSS 3 acquistano nuove caratteristiche interessanti per ampliarne l&#8217;utilità.</p>
<p><strong>Teoria:</strong></p>
<ul>
<li><strong>selettore[att^="val"]</strong>: dove l&#8217;attributo del selettore <strong>inizia</strong> con il valore &#8220;val&#8221;</li>
<li><strong>selettore[att$="val"]</strong>: dove l&#8217;attributo del selettore <strong>termina</strong> con il valore &#8220;val&#8221;</li>
<li><strong>selettore[att*="val"]</strong>: dove l&#8217;attributo del selettore <strong>contiene</strong> con il valore &#8220;val&#8221;</li>
</ul>
<p>Il principale utilizzo dei selettori di attributo è di personalizzare in maniera automatica i link a seconda della loro destinazione. Un link esterno potrà beneficiare di un&#8217;icona che richiami l&#8217;apertura di una nuova finestra, mentre un link verso un file PFD potrà beneficiare della caratteristica icona di Acrobat.</p>
<p><strong>Pratica:</strong></p>
<p>I selettori, nell&#8217;esempio che consideriamo, vanno applicati su classici elementi &#8220;&lt;a&gt;&#8221;.</p>
<pre class="brush: html">
&lt;div class=&quot;esempio&quot;&gt;
&lt;h2&gt;Selettori di attributo&lt;/h2&gt;
&lt;a href=&quot;mailto:test@test.it&quot;&gt;Sono un link di tipo &quot;mailto&quot;&lt;/a&gt;
&lt;a href=&quot;htto://test.pdf&quot;&gt;Punto ad un PDF&lt;/a&gt;
&lt;a href=&quot;http://delicious.com&quot;&gt;Contengo la parola &quot;delicious&quot;&lt;/a&gt;
&lt;/div&gt;
</pre>
<p>Andiamo ad associare dunque l&#8217;icona tipica dei PDF ad tutti i link che terminano con il valore &#8220;.pfd&#8221;, la tipica icona della busta ai link che iniziano per &#8220;mailto:&#8221; e (ad esempio) l&#8217;icona di Delicious a tutti i link che contengono la parola &#8220;delicious&#8221;.</p>
<pre class="brush: css">
a[href$=&quot;.pdf&quot;]{
background: url(img/page_white_acrobat.png) no-repeat center right;
padding: 0 20px 5px 0;
}

a[href^=&quot;mailto&quot;]{
background: url(img/email_open.png) no-repeat center right;
padding: 0 20px 5px 0;
}

a[href*=&quot;delicious&quot;]{
background: url(img/delicious.jpg) no-repeat center right;
padding: 0 20px 5px 0;
}
</pre>
<p>Una volta individuato il giusto obiettivo, non si fa altro che posizionare come sfondo dei link corrispondenti la giusta immaine (più una spruzzata di allineamenti e padding per una corretta resa visiva). IE 6 e precedenti, assieme a tutti gli altri brower non in grado di interpretare correttamente le regole, continuerano correttamente a visualizzare il link senza immagini.</p>
<p><img class="img_centro" title="selettori-attributo" src="http://francescogavello.it/wp-content/uploads/selettori-attributo.jpg" alt="Selettori di attributo" width="240" height="104" /></p>
<h2>2. Selettori adiacenti</h2>
<p>I selettori adiacenti permettono di differenziare un selettore particolare solo se questo si trova direttamente adiacente ad un atro da noi indicato.</p>
<p><strong>Teoria:</strong><br />
Indicando come nell&#8217;esempio a seguire &#8220;h2 + p&#8221; andiamo a puntare direttamente <strong>ogni elemento &#8220;p&#8221; che si trovi in diretta successione ad un elemento &#8220;h2&#8243;.</strong> Una delle applicazioni migliori è, come nell&#8217;esempio, nel caratterizzare in maniera più forte il primo paragrafo di una pagina, ma gli utilizzi sono moltissimi e limitati solo dalla propria abilità.</p>
<p><strong>Pratica:</strong></p>
<pre class="brush: html">
&lt;div class=&quot;esempio selettori_adiacenti&quot;&gt;
&lt;h2&gt;Selettori adiacenti&lt;/h2&gt;
&lt;p&gt;Questo &amp;amp;egrave; il primo paragrafo, e come tale &amp;amp;egrave; speciale.&lt;/p&gt;
&lt;p&gt;Lorem ipsum dolor sit amet..&lt;/p&gt;&lt;p&gt;Lorem ipsum dolor sit amet..&lt;/p&gt;
&lt;/div&gt;
</pre>
<pre class="brush: css">
.selettori_adiacenti h2 + p {
font-size: 200%;
border-bottom : 1px dotted #000;
}
</pre>
<p>Il primo paragrafo ha dimensione doppia e bordo inferiore un singolo pixel nero. Tutti gli altri paragrafi successivi al primo non subiscono modifiche. Viene generata una resa di questo tipo.</p>
<p><img class="img_centro" title="selettori_adiacenti" src="http://francescogavello.it/wp-content/uploads/selettori_adiacenti.jpg" alt="Selettori Adiacenti" width="583" height="188" /></p>
<h2>3. Bordi arrotondati</h2>
<p>L&#8217;applicazione di bordi arrotondati all&#8217;interno dei layout inizia diversi anni fa, quando ancora si lavorava a tabelle per definire le strutture e si faceva largo uso di immagini di sfondo, celle vuote e simili. Si è negli anni arrivati a soluzioni (ottimali) che abbandonavano le tabelle in favore di (x)HTML, CSS e qualche javascript per realizzare questo semplice effetto. I &#8220;<a href="http://www.html.it/articoli/niftycube/index.html">Nifty Corners Cube</a>&#8221; di Alessandro Fulciniti sono stati (e sono ancora per me) un punto di riferimento.</p>
<p><strong>Teoria:</strong></p>
<p>Con gli adeguati selettori CSS3 è possibile realizzare lo stesso effetto in sole tre righe, senza ricorrere a JS esterni e potendo controllarne con facilità raggio e angolo di applicazione.</p>
<p>I selettori &#8220;basilari&#8221; sono:</p>
<ul>
<li>&#8220;border-radius&#8221; (la versione standard CSS3)</li>
<li>&#8220;-moz-border-radius&#8221; per Mozilla</li>
<li>&#8220;-webkit-border-radius&#8221; per Webkit</li>
<li>&#8220;-o-border-radius&#8221; per Opera</li>
<li>&#8220;-icab-border-radius&#8221; per iCab</li>
<li>&#8220;-khtml-border-radius&#8221; per Konqueror</li>
</ul>
<p>(lista riaggiornata grazie a <a href="http://www.undolog.com/2008/10/16/css3-qualcuno-ha-visto-internet-explorer">Undolog</a>)</p>
<p>Con questa sintassi, la proprietà &#8220;border-radius&#8221; (e relativa variante -webkit) supporta due soli parametri: nell&#8217;ordine <strong>raggio orizzontale</strong> e <strong>raggio verticale</strong>. Da notare che Firefox non seque queste specifiche e la variante -moz accetta invece i due parametri considerandoli accoppiati come angoli <strong>superiore sinistro/inferiore destro</strong> e angoli <strong>superiore destro/inferiore sinistro</strong>.</p>
<p>Naturalmente possono venire indicati i singoli angoli.</p>
<p>Per Mozilla:</p>
<ul>
<li>-moz-border-radius-topright (angolo alto a destra)</li>
<li>-moz-border-radius-bottomright (angolo basso a destra)</li>
<li>-moz-border-radius-bottomleft (angolo basso a sinistra)</li>
<li>-moz-border-radius-topleft (angolo alto a sinistra)</li>
</ul>
<p>Per Webkit:</p>
<ul>
<li>-webkit-border-top-right-radius (angolo alto a destra)</li>
<li>-webkit-border-bottom-right-radius (angolo basso a destra)</li>
<li>-webkit-border-bottom-left-radius (angolo basso a sinistra)</li>
<li>-webkit-border-top-left-radius (angolo alto a sinistra)</li>
</ul>
<p><strong>Pratica:</strong></p>
<p>Definiamo quindi un bordo sui quattro angoli di 20 pixel di raggio.</p>
<pre class="brush: css">
border-radius : 20px;
-moz-border-radius : 20px; /* Specifico per Mozilla */
-webkit-border-radius : 20px; /* Specifico per Webkit */
</pre>
<p>Oppure andiamo a definire singolarmente ogni angolo.</p>
<pre class="brush: css">
.angoli_arrotondati {
-webkit-border-top-right-radius: 20px;
-webkit-border-bottom-right-radius: 20px;
-webkit-border-bottom-left-radius: 20px;
-webkit-border-top-left-radius: 20px;

-moz-border-radius-topright: 20px;
-moz-border-radius-bottomright: 20px;
-moz-border-radius-bottomleft: 20px;
-moz-border-radius-topleft: 20px;
}
</pre>
<p>O ancora, lavoriamo sulle coppie di parametri per qualcosa di più esteso.</p>
<pre class="brush: css">
.angoli_arrotondati {
-webkit-border-radius: 20px 10px;
/* Raggio orizzontale 20 pixel, raggio verticale 10 pixel */

-moz-border-radius: 20px 10px;
/* Angoli superiore sinistro/inferiore destro a 20 pixel e
angoli superiore destro/inferiore sinistro a 10 pixel*/
}
</pre>
<p>Il che ci permette di lavorare selettivamente sul tipo di browser su cui vogliamo andare a lavorare.</p>
<p><img class="img_centro" title="bordi-arrotondati-css3" src="http://francescogavello.it/wp-content/uploads/bordi-arrotondati-css3.jpg" alt="Bordi arrotondati con i CSS3" width="583" height="188"" /></p>
<h2>Sperimentate!</h2>
<p>Si conclude con queste tre regole il nostro primo articolo sulle tecniche di progressive enhancement che sono applicabili oggi, subito, per migliorare l&#8217;esperienza dei nostri utenti. Molte di queste <strong>sono rapide da implementare e veloci da &#8220;mantenere&#8221;</strong> in futuro. Possono adattarsi con rapidità ai nostri layout migliorandone il feeling con pochi accorgimenti.</p>
<p><strong>Altri appuntamenti come questo arriveranno nei giorni prossimi</strong>. Se siete interessati all&#8217;argomento e avete trovato questo articolo interessante prendete in considerazione l&#8217;idea di <a href="http://feeds.feedburner.com/FrancescoGavelloPortfolio">iscrivervi al Feed RSS</a>.</p>
<p>Ci vediamo nei commenti! <img src='http://francescogavello.it/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/progressive-enhancement-1-selettori-di-attributo-selettori-adiacenti-e-bordi-arrotondati">Progressive Enhancement (1) : Selettori di attributo, selettori adiacenti e bordi arrotondati</a></p>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://francescogavello.it/progressive-enhancement-1-selettori-di-attributo-selettori-adiacenti-e-bordi-arrotondati/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Progressive Enhancement: migliorare l&#8217;esperienza utente per i browser moderni</title>
		<link>http://francescogavello.it/progressive-enhancement-migliorare-esperienza-utente-per-i-browser-moderni</link>
		<comments>http://francescogavello.it/progressive-enhancement-migliorare-esperienza-utente-per-i-browser-moderni#comments</comments>
		<pubDate>Thu, 09 Oct 2008 10:42:59 +0000</pubDate>
		<dc:creator>Francesco Gavello</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[xHTML & CSS]]></category>
		<category><![CDATA[progressive enhancement]]></category>

		<guid isPermaLink="false">http://francescogavello.it/?p=322</guid>
		<description><![CDATA[Chiunque lavori con il web sa perfettamente che più si cerca di diffondere dei contenuti ad un maggior numero di utenti, più le cose si complicano.
Lavorano contro il coder le incompatibilità tra browser, le differenti modalità di resa e i conosciuti vincoli di Internet Explorer. Tanti grattacapi che portano a ...<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/progressive-enhancement-migliorare-esperienza-utente-per-i-browser-moderni">Progressive Enhancement: migliorare l&#8217;esperienza utente per i browser moderni</a></p>
</div></p>
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-328" title="lego-bricks" src="http://francescogavello.it/wp-content/uploads/lego-bricks.jpg" alt="Mattoncini LEGO" width="270" height="350" />Chiunque lavori con il web sa perfettamente che più si cerca di diffondere dei contenuti ad un maggior numero di utenti, più le cose si complicano.</p>
<p>Lavorano contro il coder le incompatibilità tra browser, le differenti modalità di resa e i conosciuti vincoli di Internet Explorer. Tanti grattacapi che portano a sacrificare -in nome della stabilità del progetto- una dopo l&#8217;altra le caratteristiche non fondamentali, entrando in un progressivo  &#8220;livellamento&#8221; verso il basso che penalizza soprattutto gli utenti dotati dei più recenti browser.</p>
<p>Un panorama dove l&#8217;avanzamento della qualità dei layout e dell&#8217;uso delle reali possibilità offerte da standard CSS3 e simili è purtroppo caratterizzato dall&#8217;andamento del &#8220;browser più lento&#8221;, come nel tipico esempio del battaglione in marcia.</p>
<p>Eppure, qualcosa per agevolare la navigazione a <em>chi se lo può permettere</em>, si può realmente fare. E lo si può fare senza compromettere alcunché verso browser più vecchi e in maniera modulare.</p>
<p><span id="more-322"></span></p>
<p><strong>Mantenere la propria sanità mentale e realizzare un progetto in grado di adattarsi al meglio sul mezzo in cui viene presentato ?</strong></p>
<p>Si. La risposta è il Progressive Enhancement. (Hurrà! <img src='http://francescogavello.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>Di progressive enhancement (e del suo diretto opposto, la graceful degradation) si parla oramai da discreto tempo e la realtà è che questi due termini non nascondono nulla di trascendentale.</p>
<ul>
<li><strong>Progressive Enhancement:</strong> Il codice viene scritto inizialmente nella sua forma più essenziale e compatibile, aggiungendo arricchimenti progressivi (enhancements) che vengono riconosciuti ed interpretati di volta in volta solo dai browser più recenti.</li>
<li><strong>Graceful Degradation:</strong> L&#8217;esatto opposto, sino ad ora praticamente una prassi in ambito lavorativo. Prima si completa il progetto alla sua massima espressione e solo dopo lo si testa scendendo di browser in browser, in modo da valutarne una degradazione accettabile anche su device più datati.</li>
</ul>
<p>Miglioramento progressivo e degradazione ottimale rappresentano quindi due facce della stessa medaglia, due modi di gestire il proprio progetto (il primo sin dalle fasi iniziali di sviluppo) e se ben controllate permettono di fare vincere:</p>
<ul>
<li>gli sviluppatori, che contengono i tempi scrivendo del codice oculato e assicurano una compatibilità modulare puntata sempre verso la resa migliore</li>
<li>gli utenti, che in maniera trasparente (ergo senza muovere un dito) beneficiano della migliore soluzione disponibile per fruire dei contenuti proposti</li>
</ul>
<p>Vorrei iniziare a parlare nei prossimi post di alcune tecniche di progressive enhancement affidabili che potete mettere in pratica <strong>sin da ora</strong> per avvalervi di tutto ciò che è un miglioramento nella user experience nei browser più moderni.</p>
<p>Sia che siate blogger senza esperienza nel coding avanzato dei vostri temi o che siate pane e (x)HTML a pieno ritmo, potreste scoprire come ho fatto io che con i giusti metodi si ottengono risultati notevoli per tutti.</p>
<p>Che ne dite ? <img src='http://francescogavello.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Un paio di letture correlate</h2>
<p>Qualcos&#8217;altro da leggere riguardo al Progressive Enhancement e la Graceful Degradation su questi altri ottimi articoli italiani.</p>
<ul>
<li><a href="http://javascript.html.it/articoli/leggi/2194/graceful-degradation-e-progressive-enhancement/1/">Graceful degradation e progressive enhancement</a> ottimo articolo datato ma sempre valido che evidenzia pregi e difetti dei due diversi approcci, con qualche esempio sul campo in grado di rendere bene l&#8217;idea.</li>
<li><a href="http://blog.html.it/07/10/2008/e-se-esistesse-un-solo-browser/">E se esistesse un solo browser ?</a> Parlando di standard, questa settimana sul blog di <a href="http://blog.html.it">HTML.it</a>.<br />
Un punto di vista alternativo dal blog di HTML.it.</li>
<li><a href="http://www.undolog.com/2007/03/27/accessibilita-e-usabilita-unobtrusive-javascript/">Accessibilità e Usabilità: unobtrusive Javascript</a>. Ottimo articolo di <a href="http://www.undolog.com">undolog.com</a> che parlando di javascript non intrusivo affronta entrambi i temi con uno sguardo generale</li>
<li><a href="http://www.nealgrosskopf.com/tech/thread.asp?pid=20">Neal Grosskopf</a> ci parla di Hack CSS per i vari browser</li>
</ul>
<h2>Articoli della serie</h2>
<p>Sempre su FrancescoGavello.it, gli altri post di questa serie.</p>
<ul>
<li><a href="http://francescogavello.it/progressive-enhancement-1-selettori-di-attributo-selettori-adiacenti-e-bordi-arrotondati">Progressive Enhancement (1): Selettori di attributo, selettori adiacenti e bordi arrotondati</a></li>
<li><a href="http://francescogavello.it/progressive-enhancement-2-pseudo-elementi-ombre-e-elementi-not">Progressive Enhancement (2): Pseudo elementi, ombre e elementi NOT</a></li>
<li><a href="http://francescogavello.it/progressive-enhancement-3-colonne-effetti-su-testo-e-background-multipli">Progressive Enhancement (3): colonne, effetti su testo e background multipli</a></li>
</ul>
<p>foto: <a href="http://www.flickr.com/photos/seven13avenue/2080281038/">713 Avenue</a></p>
<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/progressive-enhancement-migliorare-esperienza-utente-per-i-browser-moderni">Progressive Enhancement: migliorare l&#8217;esperienza utente per i browser moderni</a></p>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://francescogavello.it/progressive-enhancement-migliorare-esperienza-utente-per-i-browser-moderni/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Identificare i link con icone e CSS</title>
		<link>http://francescogavello.it/identificare-i-link-con-icone-e-css</link>
		<comments>http://francescogavello.it/identificare-i-link-con-icone-e-css#comments</comments>
		<pubDate>Fri, 18 Jan 2008 06:20:30 +0000</pubDate>
		<dc:creator>Francesco Gavello</dc:creator>
				<category><![CDATA[Blog Design]]></category>
		<category><![CDATA[xHTML & CSS]]></category>
		<category><![CDATA[Freebies]]></category>
		<category><![CDATA[usabilità]]></category>

		<guid isPermaLink="false">http://francescogavello.it/documenti/design/identificare-i-link-con-icone-e-css</guid>
		<description><![CDATA[Una delle cose più utili del fatto di lavorare con i fogli di stile è la loro proprietà intrinseca di poter agire in facilità su porzioni di codice molto estese, se siamo fortunati interi progetti. Ciò viene particolarmente in aiuto se abbiamo bisogno di inserire aiuti visivi ai link presenti ...<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/identificare-i-link-con-icone-e-css">Identificare i link con icone e CSS</a></p>
</div></p>
]]></description>
			<content:encoded><![CDATA[<p>Una delle cose più utili del fatto di lavorare con i fogli di stile è la loro proprietà intrinseca di poter agire in facilità su porzioni di codice molto estese, se siamo fortunati interi progetti. Ciò viene particolarmente in aiuto se abbiamo bisogno di inserire aiuti visivi ai link presenti nelle nostre pagine, distinguendo per esempio un &#8220;mailto&#8221; da un link a un pdf e cosi&#8217; via.</p>
<p>Ask the CSS Guy ha realizzato una <a href="http://www.askthecssguy.com/2006/12/showing_hyperlink_cues_with_cs_1.html">miniguida su come identificare i link tramite CSS</a> risultando compatibile con IE, Firefox e Safari che spiega come realizzare il tutto in semplicità.</p>
<p>Buona visione!</p>
<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/identificare-i-link-con-icone-e-css">Identificare i link con icone e CSS</a></p>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://francescogavello.it/identificare-i-link-con-icone-e-css/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ottimizzare i CSS</title>
		<link>http://francescogavello.it/ottimizzare-i-css</link>
		<comments>http://francescogavello.it/ottimizzare-i-css#comments</comments>
		<pubDate>Sun, 06 Jan 2008 09:52:17 +0000</pubDate>
		<dc:creator>Francesco Gavello</dc:creator>
				<category><![CDATA[xHTML & CSS]]></category>
		<category><![CDATA[ottimizzare]]></category>

		<guid isPermaLink="false">http://francescogavello.it/documenti/ottimizzare-i-css</guid>
		<description><![CDATA[Scrivere fogli di stile per gestire la resa visiva di un progetto web può sembrare (ed in effetti forse è) abbastanza semplice; dopotutto le regole principali sono oramai ben assodate e non passa molto tra il momento in cui si inizia e quello in cui arrivano i primi risultati soddisfacenti.
Esiste ...<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/ottimizzare-i-css">Ottimizzare i CSS</a></p>
</div></p>
]]></description>
			<content:encoded><![CDATA[<p>Scrivere fogli di stile per gestire la resa visiva di un progetto web può sembrare (ed in effetti forse è) abbastanza semplice; dopotutto le regole principali sono oramai ben assodate e non passa molto tra il momento in cui si inizia e quello in cui arrivano i primi risultati soddisfacenti.</p>
<p>Esiste tuttavia un vero e proprio &#8220;mondo&#8221; di ottimizzazioni che possono ridurre notevolmente il peso dei nostri CSS senza per questo renderli ingestibili o difficili da comprendere a posteriori.</p>
<p><a href="http://www.dustindiaz.com">Dustindiaz.com</a> ci fornisce una completissima miniguida su <a href="http://www.dustindiaz.com/css-shorthand/">come ottimizzare i CSS</a> (cioè con le proprietà scritte una di seguito all&#8217;altra) analizzando il comportamento migliore per ognuna delle principali regole. Una interessante lettura se come me avete necessità di rendere sempre più leggero il vostro lavoro.</p>
<p><div style="font-size:10px">
<p style="background-color:#f5f5f5;padding:20px;line-height:20px"><a href="http://francescogavello.it/download/Francesco_Gavello_Ebook_21_Cose.pdf">Scarica il mio eBook gratuito</a>: <strong>"21 Cose che Dovresti Sapere (riguardo al tuo blog)"</strong>.<br />(offerta bonus riservata agli iscritti al feed RSS).</p>
<p>Copyright © <a href="http://francescogavello.it/">Francesco Gavello</a>. Puoi ripubblicare i contenuti di questo articolo solo in parte e fornendo un link all'articolo originale.<br />
Link al post originale: <a href="http://francescogavello.it/ottimizzare-i-css">Ottimizzare i CSS</a></p>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://francescogavello.it/ottimizzare-i-css/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
