<?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>Hello World: &#187; Cascade Style Sheet</title>
	<atom:link href="http://razorblade.netsons.org/category/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://razorblade.netsons.org</link>
	<description>Programmazione web e oltre: php5, Zend Framework, jQuery, Actionscript 3.0, Sandy 3D Engine e altro</description>
	<lastBuildDate>Fri, 28 Aug 2009 18:23:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CSS Tricks: diverse regole nello stesso foglio di stile</title>
		<link>http://razorblade.netsons.org/2009/03/21/css-tricks-diverse-regole-nello-stesso-foglio-di-stile/</link>
		<comments>http://razorblade.netsons.org/2009/03/21/css-tricks-diverse-regole-nello-stesso-foglio-di-stile/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 04:13:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cascade Style Sheet]]></category>
		<category><![CDATA[css trick]]></category>
		<category><![CDATA[trucchi fogli di stile]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=71</guid>
		<description><![CDATA[<h2>Qualche utile espediente</h2>
<p>Molto spesso succede di aver problemi a far renderizzare un layout in maniera uguale per sui vari browser. Magari nonostante siamo stati molto attenti ed abbiamo integrato il <a href="http://razorblade.netsons.org/2008/10/04/cascade-style-sheet-reset/" title="reset dei css">reset dei css</a>.</p>

<p>A volte basterebbe magari un diverso valore per esempio del bordo, o della larghezza per far quadrare il tutto, ma come aggiungere regole differenti sullo stesso foglio?<a href="http://razorblade.netsons.org/2009/03/21/css-tricks-diverse-regole-nello-stesso-foglio-di-stile">[...] Continua</a></p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h2>Qualche utile espediente</h2>
<p>Molto spesso succede di aver problemi a far renderizzare un layout in maniera uguale per sui vari browser. Magari nonostante siamo stati molto attenti ed abbiamo integrato il <a href="http://razorblade.netsons.org/2008/10/04/cascade-style-sheet-reset/" title="reset dei css">reset dei css</a>.</p>
<p>A volte basterebbe magari un diverso valore per esempio del bordo, o della larghezza per far quadrare il tutto, ma come aggiungere regole differenti sullo stesso foglio? Semplice, aggiungendo alcuni caratteri prima del nome del parametro:</p>
<pre name="code" class="php">
body {
  background-color: orange; /*  Lo sfondo sarà arancione per tutti */
  _background-color: red; /*  Su Internet Explorer 6 lo sfondo sarà rosso */
  .background-color: blue; /*  Su Internet Explorer 7 invece sarà blue */
}
</pre>
<p>Non è di certo il metodo più elegante del mondo in quanto avviene una ripetizione della stessa regola, ma personalmente l&#8217;ho usato con successo numerose volte.</p>
<p>Ma non è finita qui. Per quanto riguarda Internet Explorer 6 esiste ancora il seguente metodo per effettuare l&#8217;overload di una regola css, il seguente:</p>
<pre name="code" class="php">
body {
  background-color: orange; /*  Lo sfondo sarà arancione per tutti */
}

* html body { /* questa regola sarà interpretata solo da Internet Explorer 6 */
  background-color: red;
}
</pre>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/03/21/css-tricks-diverse-regole-nello-stesso-foglio-di-stile/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PNG fix: PNG Trasparenti con Internet Explorer 6</title>
		<link>http://razorblade.netsons.org/2009/01/14/png-fix-png-trasparenti-con-internet-explorer-6/</link>
		<comments>http://razorblade.netsons.org/2009/01/14/png-fix-png-trasparenti-con-internet-explorer-6/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 06:28:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cascade Style Sheet]]></category>
		<category><![CDATA[Grafica]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[internet explorer 6]]></category>
		<category><![CDATA[png fix]]></category>
		<category><![CDATA[png trasparenti ie6]]></category>
		<category><![CDATA[pngbehavior]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=62</guid>
		<description><![CDATA[<h2>Tutti i metodi funzionanti</h2>

<p>Il formato PNG offre la possibilità di utilizzare trasparenze di un livello qualitativo maggiore di qualsiasi altro formato ( vedi GIF ). Se state leggendo queste righe sicuramente saprete che l'immortale Internet Explorer 6 ha qualche problema nella gestione di questo formato, rimpiazzando la trasparenza con un colore grigio.</p>

<p>Fortunatamente esistono delle soluzioni al problema, quindi non dovremmo fare a meno di utilizzare le immagini PNG per il nostro progetto per fare in modo che sia compatibile con tutti i browser, o quanto meno, con quelli più utilizzati.<a href="http://razorblade.netsons.org/2009/01/14/png-fix-png-trasparenti-con-internet-explorer-6">[...] Continua</a></p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h2>Tutti i metodi funzionanti</h2>
<p>Il formato PNG offre la possibilità di utilizzare trasparenze di un livello qualitativo maggiore di qualsiasi altro formato ( vedi GIF ). Se state leggendo queste righe sicuramente saprete che l&#8217;immortale Internet Explorer 6 ha qualche problema nella gestione di questo formato, rimpiazzando la trasparenza con un colore grigio.</p>
<p>Fortunatamente esistono delle soluzioni al problema, quindi non dovremmo fare a meno di utilizzare le immagini PNG per il nostro progetto per fare in modo che sia compatibile con tutti i browser, o quanto meno, con quelli più utilizzati.</p>
<p>Il <b>primo metodo</b> che andrò ad esporvi implica l&#8217;inserimento di una regola nel foglio di stile, la regola è la seguente:</p>
<pre name="code" class="php">
	* html img,
	* html .png{
	position:relative;
	behavior: expression((this.runtimeStyle.behavior="none") &#038;&#038; (this.pngSet?this.pngSet=true:(this.nodeName == "IMG" &#038;&#038; this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none",
	this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "', sizingMethod='image')",
	this.src = "transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''),
	this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "', sizingMethod='crop')",
	this.runtimeStyle.backgroundImage = "none")),this.pngSet=true)
	);
	}
</pre>
<p>Questo codice css potete inserirlo nel foglio di stile principale del vostro progetto, magari subito dopo il <a href="http://razorblade.netsons.org/2008/10/04/cascade-style-sheet-reset/">codice per il reset dei css</a> o inserirlo in un foglio di stile a parte, se preferite trattare le regole per IE6 separatamente.</p>
<p>Il <b>secondo metodo</b> è quello descritto nel sito <a href="http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html">http://webfx.eae.net/</a>. Si tratta di scaricare 2 files ed inserirli nella nostra applicazione tramite una veloce regola css, la seguente:</p>
<pre name="code" class="php">
&lt;style type="text/css"&gt;

img {
   behavior: url("pngbehavior.htc");
}

&lt;/style&gt;
</pre>
<p>Il file in questione, pngbehavior.htc, lo trovare all&#8217;interno dell&#8217;archivio che potete scaricare da <a href="http://webfx.eae.net/download/pngbehavior102.zip">questo link</a>.</p>
<p>Come ho scritto poco prima, i file necessari sono 2, l&#8217;altro file in questione è blank.gif, lo trovate all&#8217;interno dello stesso archivio. Per il corretto funzionamento di questo metodo vi consiglio di fare attenzione ai percorsi sul server dei vari files, incluso il vostro css.</p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/01/14/png-fix-png-trasparenti-con-internet-explorer-6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Menu a tendina multilivello crossbrowser con jQuery e Css</title>
		<link>http://razorblade.netsons.org/2008/10/04/menu-a-tendina-multilivello-crossbrowser-con-jquery-e-css/</link>
		<comments>http://razorblade.netsons.org/2008/10/04/menu-a-tendina-multilivello-crossbrowser-con-jquery-e-css/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 04:21:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cascade Style Sheet]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[drop down menu]]></category>
		<category><![CDATA[menu a tendina]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=40</guid>
		<description><![CDATA[<h2>Crossbrowser Multi Level Drop Down Menu Con jQuery e Css</h2>
<p>I menu a tendina sono molto utilizzati nelle applicazioni web, e molto spesso per crearli si ricorre a chilometri di codice javascript, scelta che potrebbe comportare diverse problematiche a livello di portabilità, accessibilità, efficienza ecc... Non è il caso del menù che andremo a vedere tra poco, interamente realizzato dal sottoscritto, creato quasi completamente utilizzando 'semplice' codice css con un pizzico di jQuery. Prima di buttarmi in questo lavoro ho effettuato diverse ricerche per vedere se ciò di cui avevo bisogno fosse già stato creato da qualcuno, ed in effetti, in molti hanno già creato cose abbastanza simili. Ciò che mi ha fatto decidere di creare qualcosa ex novo è stata <a href="http://razorblade.netsons.org/2008/10/04/menu-a-tendina-multilivello-crossbrowser-con-jquery-e-css/">[...] Continua</a></p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h2>Crossbrowser Multi Level Drop Down Menu Con jQuery e Css</h2>
<p>I menu a tendina sono molto utilizzati nelle applicazioni web, e molto spesso per crearli si ricorre a chilometri di codice javascript, scelta che potrebbe comportare diverse problematiche a livello di portabilità, accessibilità, efficienza ecc&#8230; Non è il caso del menù che andremo a vedere tra poco, interamente realizzato dal sottoscritto, creato quasi completamente utilizzando &#8217;semplice&#8217; codice css con un pizzico di jQuery. Prima di buttarmi in questo lavoro ho effettuato diverse ricerche per vedere se ciò di cui avevo bisogno fosse già stato creato da qualcuno, ed in effetti, in molti hanno già creato cose abbastanza simili. Ciò che mi ha fatto decidere di creare qualcosa ex novo è stata la difficoltà di riadattare il codice altrui alle mie esigenze, e spero che con le spiegazioni che darò qui di seguito nessuno vada incontro alle medesime problematiche.</p>
<p>Ecco subito un <a href="http://razorblade.netsons.org/javascript/DropDownMenu/index.html">esempio</a> di cosa andremo ad ottenere e qui di seguito il codice:</p>
<p><b>index.html</b></p>
<pre name="code" class="php">
  &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
  &lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it"&gt;
    &lt;head&gt;
      &lt;link rel="stylesheet" type="text/css" media="screen" href="./styles/style.css" /&gt;
      &lt;script type="text/javascript" src="./js/jquery.js"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" src="./js/menu.js"&gt;&lt;/script&gt;
      &lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /&gt;
      &lt;title&gt;Drop Down Menu&lt;/title&gt;
    &lt;/head&gt;
  &lt;body&gt;

  &lt;div id="navigator"&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;p&gt;&lt;a&gt;Voce 1&lt;/a&gt;&lt;/p&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1&lt;/a&gt;&lt;/p&gt;
            &lt;ul&gt;
              &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1&lt;/a&gt;&lt;/p&gt;
                &lt;ul&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-2sssssss sssssssss ssssss&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-3&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-4&lt;/a&gt;&lt;/p&gt;
                    &lt;ul&gt;
                      &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-4-1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                      &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-4-2&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                      &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-4-3&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                      &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-4-4&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                      &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-4-5&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                      &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-4-6&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                    &lt;/ul&gt;
                  &lt;/li&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-5&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-1-6&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                &lt;/ul&gt;
              &lt;/li&gt;
              &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-2&lt;/a&gt;&lt;/p&gt;
                &lt;ul&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-2-1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-2-2&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-2-3&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-2-4&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-2-5&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-2-6&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                  &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-2-7&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
                &lt;/ul&gt;
              &lt;/li&gt;
              &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-1-3&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
            &lt;/ul&gt;
          &lt;/li&gt;
          &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 1-2&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;p&gt;&lt;a&gt;Voce 2&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
      &lt;li&gt;&lt;p&gt;&lt;a&gt;Voce 3&lt;/a&gt;&lt;/p&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 3-1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
          &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 3-2&lt;/a&gt;&lt;/p&gt;
            &lt;ul&gt;
              &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 3-2-1&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
              &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 3-2-2&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
              &lt;li&gt;&lt;p&gt;&lt;a&gt;Sub Voce 3-2-3&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
            &lt;/ul&gt;
          &lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;p&gt;&lt;a&gt;Voce 4&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
      &lt;li&gt;&lt;p&gt;&lt;a&gt;Voce 5&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
      &lt;li&gt;&lt;p&gt;&lt;a&gt;Voce 6&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;/body&gt;
  &lt;/html&gt;
</pre>
<p><b>style/style.css</b></p>
<pre name="code" class="php">
	html, body, div, span, applet, object, iframe,
	h1, h2, h3, h4, h5, h6, p, blockquote, pre,
	a, abbr, acronym, address, big, cite, code,
	del, dfn, em, font, img, ins, kbd, q, s, samp,
	small, strike, strong, sub, sup, tt, var,
	b, u, i, center,
	dl, dt, dd, ol, ul, li,
	fieldset, form, label, legend,
	table, caption, tbody, tfoot, thead, tr, th, td {
		margin: 0;
		padding: 0;
		border: 0;
		outline: 0;
		font-size: 100%;
		vertical-align: baseline;
		background: transparent;
	}

	body {
		line-height: 1;
	}

	ol, ul {
		list-style: none;
	}

	blockquote, q {
		quotes: none;
	}

	blockquote:before, blockquote:after,
	q:before, q:after {
		content: '';
		content: none;
	}

	/* remember to define focus styles! */
	:focus {
		outline: 0;
	}

	/* remember to highlight inserts somehow! */
	ins {
		text-decoration: none;
	}

	del {
		text-decoration: line-through;
	}

	/* tables still need 'cellspacing="0"' in the markup */
	table {
		border-collapse: collapse;
		border-spacing: 0;
	}

	span {
		display: none;
	}

	#navigator {
		width: 990px;
		height: 21px;
		background-color: rgb(250,211,211);
	}

	#navigator ul {
		list-style-type:none;
		border: 0px solid #000000;
		position: absolute;
		z-index: 90;
	}

	#navigator ul li {
		width: 130px;
		float: left;
		border: 1px solid black;
		text-align: center;
		font-size: 11px;
		font-weight: bold;
		display: block;
	}

	#navigator ul li ul {
		display: none;
		visibility: hidden;
		width: 130px;
		border: 0px;
		border-left: 1px solid black;
		border-right: 1px solid black;
		background-color: #ffffff;
		margin: 1px 0px 0px -1px;
	}

	* html #navigator ul li ul {
		margin: 0px;
		background-color: #fff000;
		margin: 1px 0px 0px -66px;
	}

	#navigator ul li ul li {
		border: 0px solid black;
		border-bottom: 1px solid black;
		width: 130px;
	}

	#navigator ul ul ul {
		border: 0px solid black;
		border-top: 1px solid black;
		border-left: 1px solid black;
		border-right: 1px solid black;
		float: left;
		width: 130px;
		margin: -18px 0px 0px 130px;
		height: auto;
	}

	* html #navigator ul ul ul {
		margin: 0px;
		margin: -18px 0px 0px 65px;
	}

	#navigator ul li p {
		margin: 0px;
		padding: 3px 0px 3px 0px;
		color: #000000;
		width: 100%;
		height: 100%;
		background-color: #ff0000;
	}

	#navigator ul li p a {
		color: #000000;
		background-color: #00ff00;
	}
</pre>
<p><b>js/menu.js</b></p>
<pre name="code" class="php">

  $(document).ready(function(){
    $("#navigator li").hover(
      function(){
        $(this).children('ul:first:hidden').css({visibility: "visible",display:'block'});
      },
      function(){
        $(this).children('ul:first:visible').css({visibility: "hidden",display:'none'});
      }
    );
  });
</pre>
</p>
<p>Ricordatevi inoltre di includere correttamente la libreria jQuery.</p>
<p>Il file html non ha bisogno di spiegazioni, un semplice div che contiene un ul con degli li che a loro volta possono contenere altri ul ecc..</p>
<p>Il file menu.js utilizza il metodo <b>hover</b> di jQuery, che in pratica, mette in ascolto gli oggetti LI presenti all&#8217;interno del DIV#navigator con i metodi onmouseover e onmouseout.</p>
<p>Il file style.css è quello che andremo a dissezionare, vedendo passo passo i comportamenti che prende il nostro menu al variare del suo contenuto. Procederemo quindi in vari step che ci porteranno alla versione finale. Il codice in testa al file è parte del <a href="http://razorblade.netsons.org/2008/10/04/cascade-style-sheet-reset/">Meyerweb Reset</a> che personalmente includo in ogni progetto.</p>
<h2>Step 1</h2>
<p>Il primo passo è semplice&#8230; eliminate il contenuto che segue alla definizione degli attributi per il div#navigator, otterrete <a href="http://razorblade.netsons.org/javascript/DropDownMenu/step1.html">questo risultato</a>. Il contenuto degli ul li è subito visibile ed ogni elemento è a capo dell&#8217;altro. I file html e js sono rimasti invariati, infatti passando con il mouse sugli elementi LI potremo visualizzare/nascondere eventuali ul figli se disponibili.</p>
<h2>Step 2</h2>
<p>Non seguiremo l&#8217;ordine del codice come impostato nel file css nei vari step, infatti il file css di questo secondo passaggio sarà la versione dello step 1 con aggiunta delle definizioni di &#8216;#navigator ul li p&#8217; e &#8216;#navigator ul li p a&#8217;. <a href="http://razorblade.netsons.org/javascript/DropDownMenu/step2.html">Cliccate qui</a> per vedere il risultato e controllare se state eseguendo tutto correttamente. Abbiamo formattato i tag P ed A presenti all&#8217;interno degli LI. Perchè tag P? La versione fnale del menu senza la presenza dei tag P aveva un fastidioso difetto di <b>sovrapposizione degli UL</b>. Più nel dettaglio, la coordinata X dell&#8217;UL era uguale alla coordinata X del testo presente nell&#8217;LI parente sommata della sua lunghezza ( l&#8217;UL compariva subito dopo la fine del testo e non alla fine dell&#8217;LI, donando un effetto di disordine ).</p>
<h2>Step 3</h2>
<p>In questo passaggio le cose iniziano a prendere forma. Aggiungiamo le definizioni per &#8216;#navigator ul&#8217; e &#8216;#navigator ul li&#8217; ovvero l&#8217;UL che conterrà gli LI che rappresenteranno le <b>categorie</b>. Scrivo &#8216;rappresenteranno&#8217; in quanto adesso la definizione prende tutti gli UL e gli LI discendenti del div#navigator. Ciò che abbiamo ottenuto è che adesso, le sottocategorie compaiono al di sotto della categoria a cui appartengono. Questo <a href="http://razorblade.netsons.org/javascript/DropDownMenu/step3.html">step 3</a> sarà visualizzato in maniera abbastanza differente dai vari browser ( leggi: su IE6 viene interpretato in modo differente che dagli altri browser ). Da sottolineare la presenza dell&#8217;attributo <b>position: absolute;</b> che permette la visualizzazione degli UL come se fossero al di fuori di qualsiasi altro elemento ( modificare questa voce con relative o rimuoverla per capire di cosa sto parlando ). </p>
<h2>Step 4</h2>
<p>Aggiungiamo le definizioni di &#8216;#navigator ul li ul&#8217;, &#8216;#navigator ul li ul li&#8217; e &#8216;* html #navigator ul li ul&#8217;. In questo modo differenziamo la visualizzazione delle categorie di primo livello ( lo abbiamo fatto nello step 3 ) dalle sottocategorie ( a qualsiasi livello ). Inoltre definiamo che le sottocategorie di default NON debbano visualizzarsi. Della loro visualizzazione se ne occupera il file js ( che cerca il primo figlio UL nascosto dell&#8217;LI scatenante l&#8217;evento mouseover e lo visualizza ). <a href="http://razorblade.netsons.org/javascript/DropDownMenu/step4.html">Ciò che otteniamo</a> è la corretta visualizzazione delle categorie di primo livello. <b>Da notare che un selettore preceduto dal suffisso &#8216;* html&#8217; viene letto esclusivamente da IE6, quindi le proprietà al suo interno sono specifiche per far funzionare il tutto anche su questo browser</b>.</p>
<h2>Final Step</h2>
<p>Infine aggiungiamo le regole &#8216;#navigator ul ul ul&#8217; e &#8216;* html #navigator ul ul ul&#8217; che definiscono la visualizzazione per le categorie dal terzo livello in poi. Otteniamo quindi il <a href="http://razorblade.netsons.org/javascript/DropDownMenu/index.html">risultato finale</a>.</p>
<h2>Riadattare il tutto</h2>
<p>Ciò a cui bisogna porre attenzione modificando il css di questo menù sono principalmente la <b>larghezza degli li/ul</b> e la loro altezza, data principalmente dalla proprietà padding del tag P. Inoltre, la presenza del bordo di 1px è da tenere in considerazione in quanto la sua rimozione/modifica comporterebbe la modifica di altre proprietà per fare in modo che tutto si riadatti. Rispettando l&#8217;equilibrio tra le varie proprietà non dovrebbe essere eccessivamente un problema riadattare il tutto alle proprie esigenze.</p>
<p>Si conclude qui questo tutorial. Eventuali commenti per richieste o consigli su come modificare in meglio il codice sono sempre ben accetti.</p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2008/10/04/menu-a-tendina-multilivello-crossbrowser-con-jquery-e-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cascade Style Sheet Reset</title>
		<link>http://razorblade.netsons.org/2008/10/04/cascade-style-sheet-reset/</link>
		<comments>http://razorblade.netsons.org/2008/10/04/cascade-style-sheet-reset/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 01:33:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cascade Style Sheet]]></category>
		<category><![CDATA[meyerweb reset]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=39</guid>
		<description><![CDATA[<h2>Reset dei Css ( Meyerweb Reset )</h2>
<p>Tutte le persone che hanno mai avuto la necessità di sviluppare una pagina web conoscono le difficoltà che potrebbero presentarsi nel tentativo di rendere il layout funzionante sui vari web browser esistenti, soprattutto rendere il layout compatibile anche con l'immortale Internet Explorer 6.</p>

<p>In questo articolo parleremo di un tool, formato da poche righe di codice css, che ci permette di unificare il valore di default di alcuni attributi per i tag html più comunemente usati. Infatti, gran parte dei problemi di implementazione di un layout deriva dalla mancata conoscenza dell'esistenza di queste differenze di interpretazione, quindi utilizzarlo, vi farà risparmiare molto tempo!</p>

<p>Qui di seguito <a href="http://razorblade.netsons.org/2008/10/04/cascade-style-sheet-reset/">[...] Continua</a></p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h2>Reset dei Css ( Meyerweb Reset )</h2>
<p>Tutte le persone che hanno mai avuto la necessità di sviluppare una pagina web conoscono le difficoltà che potrebbero presentarsi nel tentativo di rendere il layout funzionante sui vari web browser esistenti, soprattutto rendere il layout compatibile anche con l&#8217;immortale Internet Explorer 6.</p>
<p>In questo articolo parleremo di un tool, formato da poche righe di codice css, che ci permette di unificare il valore di default di alcuni attributi per i tag html più comunemente usati. Infatti, gran parte dei problemi di implementazione di un layout deriva dalla mancata conoscenza dell&#8217;esistenza di queste differenze di interpretazione, quindi utilizzarlo, vi farà risparmiare molto tempo!</p>
<p>Qui di seguito il codice css, da utilizzarsi come punto di partenza per il vostro foglio di stile:</p>
<pre name="code" class="php">
  /* v1.0 | 20080212 */

  html, body, div, span, applet, object, iframe,
  h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  a, abbr, acronym, address, big, cite, code,
  del, dfn, em, font, img, ins, kbd, q, s, samp,
  small, strike, strong, sub, sup, tt, var,
  b, u, i, center,
  dl, dt, dd, ol, ul, li,
  fieldset, form, label, legend,
  table, caption, tbody, tfoot, thead, tr, th, td {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
  }
  body {
    line-height: 1;
  }
  ol, ul {
    list-style: none;
  }
  blockquote, q {
    quotes: none;
  }
  blockquote:before, blockquote:after,
  q:before, q:after {
    content: '';
    content: none;
  }

  /* remember to define focus styles! */
  :focus {
    outline: 0;
  }

  /* remember to highlight inserts somehow! */
  ins {
    text-decoration: none;
  }
  del {
    text-decoration: line-through;
  }

  /* tables still need 'cellspacing="0"' in the markup */
  table {
    border-collapse: collapse;
    border-spacing: 0;
  }
</pre>
<p>Potete trovare la versione sempre aggiornata su <a href="http://meyerweb.com/eric/tools/css/reset/">http://meyerweb.com/</a>.</p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2008/10/04/cascade-style-sheet-reset/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
