<?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>Good2Know &#187; css</title>
	<atom:link href="http://www.good2know.it/tag/css/feed" rel="self" type="application/rss+xml" />
	<link>http://www.good2know.it</link>
	<description>Webmaster's blog</description>
	<lastBuildDate>Sun, 29 Jan 2012 15:21:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Come personalizzare gli input di un form, checkbox, radio e select</title>
		<link>http://www.good2know.it/programmazione/come-personalizzare-gli-input-di-un-form-checkbox-radio-e-select/ </link>
		<comments>http://www.good2know.it/programmazione/come-personalizzare-gli-input-di-un-form-checkbox-radio-e-select/ #comments</comments>
		<pubDate>Fri, 09 Jul 2010 08:46:01 +0000</pubDate>
		<dc:creator>Filippo Matteo Riggio</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[customize input form]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[personalizzare input]]></category>

		<guid isPermaLink="false">http://www.good2know.it/?p=1386</guid>
		<description><![CDATA[
Da web developer quale sono ho sempre desiderato poter personalizzare gli input dei form, magari con stili o sfondi particolari.
Da oggi si può, con un metodo che utilizza Javascript e i fogli di stile CSS.
E&#8217; un metodo valido per quasi tutti browser, eccetto l&#8217;ormai moribondo Internet Explorer 6.
Di seguito trovate il link al pacchetto zip [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.good2know.it/wp-content/uploads/2010/03/javascript.jpg"><img class="alignnone size-full wp-image-1354" title="javascript" src="http://www.good2know.it/wp-content/uploads/2010/03/javascript.jpg" alt="" width="300" height="300" /></a></p>
<p>Da web developer quale sono ho sempre desiderato poter <strong>personalizzare gli input dei form</strong>, magari con stili o sfondi particolari.</p>
<p>Da oggi si può, con un metodo che utilizza Javascript e i fogli di stile CSS.</p>
<p>E&#8217; un metodo valido per quasi tutti browser, eccetto l&#8217;ormai moribondo Internet Explorer 6.</p>
<p><span id="more-1386"></span>Di seguito trovate il link al pacchetto zip contenente un esempio, i file javascript da scaricare e il foglio di stile associato.</p>
<p><a href="http://www.good2know.it/wp-content/uploads/2010/07/custom-form-element.zip">Input personalizzati</a></p>
<p>Per far girare questo script basta inserire all&#8217;interno del tag input la classe &#8220;styled&#8221;.</p>
<pre class="brush: jscript;">&lt;input class=&quot;styled&quot; type=&quot;checkbox&quot; /&gt;</pre>
<p><strong>Come lavora?</strong></p>
<p>Il file javascript <strong>sostituisce all&#8217;interno della pagina html</strong> tutti gli elementi che hanno la classe &#8220;<strong>styled</strong>&#8221; con un <strong>tag span</strong> con gli <strong>stili assegnati</strong> nel CSS, agganciando in automatico anche gli eventi legati al mouse.</p>
<p>Per far lavorare al meglio lo script, con checkbox, radio e select personalizzati bisogna <strong>specificare 3 variabili</strong> all&#8217;interno del file javascript che riguardano <strong>le altezze dei checkbox e dei radio e la lunghezza del tag select</strong>.</p>
<pre class="brush: jscript;">
var checkboxHeight = &quot;25&quot;;
var radioHeight = &quot;25&quot;;
var selectWidth = &quot;190&quot;;
</pre>
<p>Anche per modificare gli stili dei tag basta modificare il foglio di stile.</p>
<pre class="brush: css;">

.checkbox, .radio {

width: 19px;

height: 25px;

padding: 0 5px 0 0;

background: url(checkbox.gif) no-repeat;

display: block;

clear: left;

float: left;

}

.radio {

background: url(radio.gif) no-repeat;

}

.select {

position: absolute;

width: 158px;

height: 21px;

padding: 0 24px 0 8px;

color: #fff;

font: 12px/21px arial,sans-serif;

background: url(select.gif) no-repeat;

overflow: hidden;

}
</pre>
<p><strong>Esempi</strong></p>
<p>Qui trovate un <a title="Esempio input personalizzati" href="http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/example/">esempio</a>.</p>
<p>Qui trovate l&#8217;<a href="http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/">articolo intero di Ryanfait</a>.</p>
<p><strong>Modalità d&#8217;utilizzo</strong></p>
<p>Lo script è sotto licenza <a title="Creative Commons License" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons</a>.</p>
<p>Basta lasciare il titolo, il nome e il sito web all&#8217;interno del file JavaScript.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.good2know.it/programmazione/come-personalizzare-gli-input-di-un-form-checkbox-radio-e-select/ /feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Progressive Enhancement &#8211; Migliorare il modo di programmare</title>
		<link>http://www.good2know.it/programmazione/progressive-enhancement/ </link>
		<comments>http://www.good2know.it/programmazione/progressive-enhancement/ #comments</comments>
		<pubDate>Tue, 21 Oct 2008 06:20:10 +0000</pubDate>
		<dc:creator>Filippo Riggio</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[bordi arrotondati]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[fogli di stile]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[selettori]]></category>

		<guid isPermaLink="false">http://noqwertynoparty.wordpress.com/?p=66</guid>
		<description><![CDATA[
Sono una serie di tecniche atte a migliorare i nostri fogli di stile dal lato estetico ma che non servono per modificare la struttura vera e propria.
Bisogna ricordarsi che dobbiamo creare fogli di stile di tipo cross-browser e facili da modificare in caso di manutenzione futura.

Inserire un foglio di stile secondario ci è utile per [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-673" title="progressive-enhancement" src="http://www.good2know.it/wp-content/uploads/2008/10/progressive-enhancement.png" alt="progressive-enhancement" width="389" height="178" /></p>
<p>Sono una serie di tecniche atte a <strong>migliorare i nostri fogli di stile dal lato estetico</strong> ma che non servono per modificare la struttura vera e propria.</p>
<p>Bisogna ricordarsi che dobbiamo <strong>creare fogli di stile di tipo cross-browser</strong> e <strong>facili </strong>da <strong>modificare </strong>in caso di <strong>manutenzione </strong>futura.</p>
<p><span id="more-66"></span></p>
<p>Inserire un foglio di stile secondario ci è utile per poter far modifiche senza intaccare il foglio di stile principale.</p>
<p><strong>Selettori di attributo</strong></p>
<p><strong>Teoria:</strong></p>
<ul>
<li><strong>selettore[att^="val"]</strong>: dove l’attributo del selettore <strong>inizia</strong> con il valore “val”</li>
<li><strong>selettore[att$="val"]</strong>: dove l’attributo del selettore <strong>termina</strong> con il valore “val”</li>
<li><strong>selettore[att*="val"]</strong>: dove l’attributo del selettore <strong>contiene</strong> con il valore “val”</li>
</ul>
<p>Sono molto utili se si vogliono modificare per esempio i link.</p>
<p>Un esempio:</p>
<ol class="dp-xml">
<li class="alt">
<div class="alt" style="width: 486px;"><span class="tag">&lt;</span><span class="tag-name">div</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">&#8220;esempio&#8221;</span><span class="tag">&gt;</span><span> </span></div>
</li>
<li>
<div style="width: 486px;"><span class="tag">&lt;</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>Selettori di attributo</span><span class="tag">&lt;/</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span> </span></div>
</li>
<li class="alt">
<div class="alt" style="width: 486px;"><span class="tag">&lt;</span><span class="tag-name">a</span><span> </span><span class="attribute">href</span><span>=</span><span class="attribute-value">&#8220;mailto:test@test.it&#8221;</span><span class="tag">&gt;</span><span>Sono un link di tipo &#8220;mailto&#8221;</span><span class="tag">&lt;/</span><span class="tag-name">a</span><span class="tag">&gt;</span><span> </span></div>
</li>
<li>
<div style="width: 486px;"><span class="tag">&lt;</span><span class="tag-name">a</span><span> </span><span class="attribute">href</span><span>=</span><span class="attribute-value">&#8220;htto://test.pdf&#8221;</span><span class="tag">&gt;</span><span>Punto ad un PDF</span><span class="tag">&lt;/</span><span class="tag-name">a</span><span class="tag">&gt;</span><span> </span></div>
</li>
<li class="alt">
<div class="alt" style="width: 486px;"><span class="tag">&lt;</span><span class="tag-name">a</span><span> </span><span class="attribute">href</span><span>=</span><span class="attribute-value">&#8220;http://delicious.com&#8221;</span><span class="tag">&gt;</span><span>Contengo la parola &#8220;delicious&#8221;</span><span class="tag">&lt;/</span><span class="tag-name">a</span><span class="tag">&gt;</span><span> </span></div>
</li>
<li>
<div style="width: 486px;"><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span> </span></div>
</li>
</ol>
<p>Ora con il foglio di stile separato potremo associare ad ogni link un&#8217;icona personalizzata, così:</p>
<ol class="dp-css">
<li class="alt">
<div class="alt" style="width: 496px;"><span>a[href$=</span><span class="string">".pdf"</span><span>]{ </span></div>
</li>
<li>
<div style="width: 496px;"><span class="keyword">background</span><span>: </span><span class="value">url</span><span>(img/page_white_acrobat.png) </span><span class="value">no-repeat</span><span> </span><span class="value">center</span><span> </span><span class="value">right</span><span>; </span></div>
</li>
<li class="alt">
<div class="alt" style="width: 496px;"><span class="keyword">padding</span><span>: </span><span class="value">0 20px</span><span> </span><span class="value">5px</span><span> </span><span class="value">0</span><span>; </span></div>
</li>
<li>
<div style="width: 496px;">}</div>
</li>
<li>
<div style="width: 496px;">a[href^=<span class="string">"mailto"</span><span>]{ </span></div>
</li>
<li class="alt">
<div class="alt" style="width: 496px;"><span class="keyword">background</span><span>: </span><span class="value">url</span><span>(img/email_open.png) </span><span class="value">no-repeat</span><span> </span><span class="value">center</span><span> </span><span class="value">right</span><span>; </span></div>
</li>
<li>
<div style="width: 496px;"><span class="keyword">padding</span><span>: </span><span class="value">0 20px</span><span> </span><span class="value">5px</span><span> </span><span class="value">0</span><span>; </span></div>
</li>
<li class="alt">
<div class="alt" style="width: 496px;">}</div>
</li>
<li class="alt">
<div class="alt" style="width: 496px;">a[href*=<span class="string">"delicious"</span><span>]{ </span></div>
</li>
<li>
<div style="width: 496px;"><span class="keyword">background</span><span>: </span><span class="value">url</span><span>(img/delicious.jpg) </span><span class="value">no-repeat</span><span> </span><span class="value">center</span><span> </span><span class="value">right</span><span>; </span></div>
</li>
<li class="alt">
<div class="alt" style="width: 496px;"><span class="keyword">padding</span><span>: </span><span class="value">0 20px</span><span> </span><span class="value">5px</span><span> </span><span class="value">0</span><span>; </span></div>
</li>
<li>
<div style="width: 496px;">}</div>
</li>
</ol>
<p>per browser come IE6, che non permette l&#8217;uso di questa tecnica, verrà visualizzato semplicemente il link.</p>
<p><strong>Selettori adiacenti</strong></p>
<p>Questo tipo di selettore permette di modificare insieme due tag html adiacenti.</p>
<p>Un esempio con i tag p e h2:</p>
<ol class="dp-xml">
<li class="alt">
<div class="alt" style="width: 590px;"><span class="tag">&lt;</span><span class="tag-name">div</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">&#8220;esempio selettori_adiacenti&#8221;</span><span class="tag">&gt;</span><span> </span></div>
</li>
<li>
<div style="width: 590px;"><span class="tag">&lt;</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>Selettori adiacenti</span><span class="tag">&lt;/</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span> </span></div>
</li>
<li class="alt">
<div class="alt" style="width: 590px;"><span class="tag">&lt;</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>Questo &amp;amp;egrave; il primo paragrafo, e come tale &amp;amp;egrave; speciale.</span><span class="tag">&lt;/</span><span class="tag-name">p</span><span class="tag">&gt;</span><span> </span></div>
</li>
<li>
<div style="width: 590px;"><span class="tag">&lt;</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>Lorem ipsum dolor sit amet..</span><span class="tag">&lt;/</span><span class="tag-name">p</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>Lorem ipsum dolor sit amet..</span><span class="tag">&lt;/</span><span class="tag-name">p</span><span class="tag">&gt;</span><span> </span></div>
</li>
<li class="alt">
<div class="alt" style="width: 590px;"><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span> </span></div>
</li>
</ol>
<p>Ed ecco il selettore:</p>
<ol class="dp-css">
<li class="alt">
<div class="alt" style="width: 472px;"><span>.selettori_adiacenti h</span><span class="value">2</span><span> + p { </span></div>
</li>
<li>
<div style="width: 472px;"><span class="keyword">font-size</span><span>: </span><span class="value">200%</span><span>; </span></div>
</li>
<li class="alt">
<div class="alt" style="width: 472px;">border-<span class="value">bottom</span><span> : </span><span class="value">1px</span><span> </span><span class="value">dotted</span><span> </span><span class="value">#000</span><span>; </span></div>
</li>
<li>
<div style="width: 472px;">}</div>
</li>
</ol>
<p>In questo caso, ogni volta che il browser incontrerà prima il tag &lt;h2&gt; e poi il tag &lt;p&gt; modificherà lo stile in base al nostro selettore creato.</p>
<p><strong>Bordi arrotondati</strong></p>
<p>Quando ancora si impaginava con le tabelle, non si aveva la possibilità di modificare i bordi arrotondandoli. Una prima innovazione sono stati i “<a href="http://www.html.it/articoli/niftycube/index.html">Nifty Corners Cube</a>” .</p>
<p>Con l&#8217;era del CSS3, si ha la possibilità di modificare anche i bordi.</p>
<p>Ecco i selettori:</p>
<ul>
<li>“border-radius” (la versione standard CSS3)</li>
<li>“-moz-border-radius” per Mozilla</li>
<li>“-webkit-border-radius” per Webkit</li>
<li>“-o-border-radius” per Opera</li>
<li>“-icab-border-radius” per iCab</li>
<li>“-khtml-border-radius” per Konqueror</li>
</ul>
<p>border-radius: indica il raggio dell&#8217;angolo del bordo.</p>
<p>Naturalmente si possono specificare anche i singoli angoli con le proprietà topright,topleft,ecc.(-moz-border-radius-topright (angolo alto a destra)).</p>
<p>La prima specifica ci permette anche di specificare per ogni singolo browser il tipo di angolo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.good2know.it/programmazione/progressive-enhancement/ /feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conditional css, trucchi e hack per i fogli di stile</title>
		<link>http://www.good2know.it/programmazione/css-ad-hoc/ </link>
		<comments>http://www.good2know.it/programmazione/css-ad-hoc/ #comments</comments>
		<pubDate>Fri, 17 Oct 2008 06:13:28 +0000</pubDate>
		<dc:creator>Filippo Riggio</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[conditionl css]]></category>
		<category><![CDATA[cross-browser]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://noqwertynoparty.wordpress.com/?p=57</guid>
		<description><![CDATA[
Molto spesso succede che, quando si creano pagine web, le si debba pensare di tipo cross-browser, cioè compatibili con tutti i possibili browser.
Ad oggi i browser più utilizzati sono Internet Explorer 6, Mozilla FireFox, Safari, Opera e Internet Explorer 7.
Ma come creare dei layout css adatti ad ogni tipo di browser?

Molti utilizzano i Conditional Css, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-671" title="css" src="http://www.good2know.it/wp-content/uploads/2008/10/css.jpg" alt="css" width="141" height="141" /></p>
<p>Molto spesso succede che, quando si creano pagine web, le si debba pensare di tipo <strong>cross-browser</strong>, cioè compatibili con tutti i possibili browser.</p>
<p>Ad oggi i browser più utilizzati sono <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=it&amp;FamilyID=1e1550cb-5e5d-48f5-b02b-20b602228de6">Internet Explorer 6</a>, <a href="http://www.mozilla-europe.org/it/firefox">Mozilla FireFox</a>, <a href="www.apple.com/it/safari">Safari</a>, <a href="http://www.opera.com">Opera</a> e <a href="www.microsoft.com/italy/windows/products/winfamily/ie/default.mspx">Internet Explorer 7</a>.</p>
<p>Ma come creare dei <strong>layout css adatti ad ogni tipo di browser</strong>?</p>
<p><span id="more-57"></span></p>
<p>Molti utilizzano i <strong>Conditional Css</strong>, dei fogli di stile che permettono la <strong>personalizzazione in base al browser del client</strong>.</p>
<p><strong></strong></p>
<p>Io però ho implementato un nuovo &#8220;metodo&#8221; nel caso di siti dinamici(<a href="http://www.php.net">php</a>,<a href="http://www.aspcenter.net">asp</a>,ecc.).</p>
<p>La soluzione c&#8217;è la forniscono questi tipi di linguaggi, attraverso i quali possiamo <strong>ottenere </strong>moltissime <strong>informazioni sul client</strong> per mezzo della variabile globale <strong>$_SERVER</strong>.</p>
<p>Se passiamo <strong>come parametro HTTP_USER_AGENT</strong> alla variabile $_SERVER ad esempio:</p>
<blockquote><p><strong> $tipo_browser=$_SERVER['HTTP_USER_AGENT'] ) </strong></p></blockquote>
<p>questa ci ritornerà <strong>una stringa contenente il tipo di browser che utilizza</strong>, la sua versione e il sistema operativo dell&#8217;utente</p>
<blockquote><p>(es:&#8221;Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3&#8243;).</p></blockquote>
<p>Non ci resta che controllare la stringa con la funzione <strong>strstr</strong>, in questo modo:</p>
<blockquote><p><strong>if(strstr($tipo_browser,&#8217;Gecko&#8217;)) echo &#8220;&lt;link rel=&#8221;stylesheet&#8221; href=&#8221;stileFirefox.css&#8221;&gt;;</strong></p></blockquote>
<p><strong>Cambiando </strong>il confronto <strong>con MSIE</strong> (per IE,qualsiasi versione), <strong>Safari o Opera</strong> potremo <strong>ottenere stili personalizzati per ogni tipo di browser</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.good2know.it/programmazione/css-ad-hoc/ /feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

