Ultimi Commenti

  • Ciao Anakin, si puoi usar... Vedi...
    30.01.16 18:35
    di BatEn
  • Ciao, volevo chiedere se ... Vedi...
    16.01.16 15:51
    di Anakin
  • Trovo l'articolo interess... Vedi...
    27.08.15 10:08
    di Michele
  • Articolo davvero Completo... Vedi...
    17.04.14 00:19
    di Marco
  • Ciao, benvenuto tra noi. Vedi...
    21.06.13 14:26
    di BatEn

Top Five Commentatori

Donazione

Sostieni Mente Geniale effettuando una donazione per migliorare i contenuti del sito e premiare i nostri sforzi.

Importo: 

Powered by OSTraining.com

Login

HTML5 & CSS3 - Appendice Speciale (Parte 2) PDF Stampa E-mail
( 0 Votes )
Scritto da Enrico Battuello   
Venerdì 07 Dicembre 2012 01:16

Nella prima parte di questa appendice al tutorial su HTML5 e CSS3 abbiamo introdotto gli script che utilizziamo per rendere la nostra pagina di blog compatibile con tutti i principali browser web in circolazione (Internet Explore 8 o superiore, Google Chrome, Mozilla Firefox, Safari).

Inoltre, abbiamo visto il codice HTML univoco della nostra pagina web.

Ora ci apprestiamo ad esaminare il codice sorgente dei due fogli di stile utilizzati.

Per chi volesse rivedere le parti già pubblicate può consultare la sezione "Articoli precedenti" sottostante.

 


Articoli precedenti:

HTML5 & CSS3 - Parte 1

In questo tutorial creeremo la pagina di un Blog usando tecniche di ultima generazione basate su HTML5 e CSS3.

Il tutorial mira a mostrare il modo in cui saranno costruiti i siti web lato frontend allorché le software house avranno integrato le nuove specifiche HTML e CSS nei loro programmi di navigazione. Difatti gran parte dei più noti browser web, non supporta appieno le nuove specifiche di questi linguaggi, a cominciare da Internet Explorer 8. Tuttavia, la versione 9 di quest'ultimo browser, giunta ormai in fase di beta test, dovrebbe colmare il gap presente rispetto software di navigazione dii altri produttori.

Leggi articolo

 

HTML5 & CSS3 - Parte 2

Nella prima parte di questo tutorial abbiamo introdotto alcuni concetti chiave legati alle nuove specifiche di HTML5, abbiamo introdotto alcuni nuovi tag per la costruzione di pagine web ed abbiamo parlato dell fatto che questi nuovi tag sono semanticamente significativi per i motori di ricerca e per gli screen reader.

Successivamente, abbiamo introdotto il progetto d'esempio che desideriamo realizzare che consiste nell'implementazione dell'interfaccia di frontend di un ipotetico Blog, abbiamo presentato una bozza della struttura della pagina e una sua prima conversione in codice HTML5.

Leggi articolo

 

HTML5 & CSS3 - Parte 3

Nelle lezioni precedenti di questo tutorial abbiamo parlato di HTML5, abbiamo presentato alcuni dei nuovi tag introdotti con esso ed abbiamo creato la parte di codice HTML che costituisce il progetto d'esempio che abbiamo deciso di realizzare, ovvero la creazione della pagina di un blog.

A partire da questa lezione, invece, parliamo di CSS3 ed introduciamo il codice necessario ad impaginare e formattare il nostro markup.

Leggi articolo

 

HTML5 & CSS3 - Parte 4

Nelle prime due lezioni di questo tutorial abbiamo parlato di HTML5, abbiamo presentato alcuni dei nuovi tag introdotti con esso ed abbiamo creato la parte di codice HTML che costituisce il progetto d'esempio che desideriamo realizzare, ovvero la pagina di un blog.

Nella terza lezione, poi, abbiamo iniziato a "stendere" il foglio di stile CSS per impaginare i diversi elementi della pagina. In particolare, abbiamo visto la sezione di reset ed inizializzazione del CSS e la sezione di formattazione della barra di navigazione.

Leggi articolo

 

HTML5 & CSS3 - Parte 5

Nelle prime due lezioni di questo tutorial abbiamo parlato di HTML5, presentando alcuni dei nuovi tag introdotti con esso ed abbiamo creato la parte di codice HTML che costituisce il progetto d'esempio che desideriamo realizzare, ovvero la pagina di un blog.

Nella terza e quarta lezione, poi, abbiamo iniziato a trascrivere il codice del foglio di stile necessario ad impaginare le diverse sezioni del nostro documento HTML. In particolare, siamo partiti dalla definizione di una rapida sezione di reset nel CSS, per poi passare alla stilizzazione della barra di navigazione e della sezione "intro" della nostra pagina, facendo particolare riferimento ad alcuni tag nuovi, introdotti con le specifiche CSS3, necessari per posizionare, formattare e impaginare le immagini di sfondo di una specifica sezione.

Leggi articolo

 

HTML5 & CSS3 - Appendice Speciale (Parte 1)

In questo articolo, che costituisce un'appendice al tutorial su HTML5 e CSS3 postato nei mesi scorsi, vedremo come modificare la pagina del blog precedentemente analizzata in modo da renderla fruibile e visivamente gradevole sia sotto Internet Explorer 8/9, che sotto Google Chrome, Safari e Mozilla Firefox.

Quello che ci interessa, in particolare, è raggiungere una buona compatibilità del nostro codice con le versioni 8 e 9 del browser di casa Microsoft.

Leggi articolo


 

Prima di proseguire nella lettura desidero darvi alcuni consigli:

  1. Se non l'avete già fatto, leggete il tutorial e la prima parte di questa appendice altrimenti capirete davvero poco di quello che ci apprestiamo a dire anche perché non ricommenterò il codice già descritto nel tutorial;
  2. Date almeno un'occhiata alla pagina web che stiamo andando a renderizzare, potete trovarla nella parte 5 del tutorial (se avete Chrome o Firefox) oppure in fondo a questo articolo. Anzi sarebbe preferibile tenerne aperta una videata per agganciare il codice che mi appresto a commentare con la sua controparte visiva;
  3. Anche se inserisco integralmente il codice dei fogli di stile non è necessario che li leggiate e capiate prima di proseguire con la parte discorsiva dell'articolo. Quello che mi interessa rimarcare appare evidenziato nel codice ed è commentato immediatamente dopo.

Iniziamo dal file CSS "mainstyle_ie.css ":

/* Inizio sezione reset ed inizializzazione */

/* CSS Reset */
html, body {
	margin: 0;
	padding: 0;
}

/* Da' al browser la direttiva di renderizzare ciascun elemento HTML 5 come blocco */
header, footer, aside, nav, article, section {
	display: block;
}

/* imposta margini, ampiezza, colore di sfondo e fonts del documento html */
body {
	margin: 0 auto;
	width: 940px;
	font: 13px/22px Helvetica, Arial, sans-serif;
	background: #f0f0f0;
}

h2 {
	font-size: 28px;
	line-height: 44px;
	padding: 22px 0;
}

h3 {
	font-size: 18px;
	line-height: 22px;
	padding: 11px 0;
}

p {
	padding-bottom: 22px;
}

/* Fine sezione reset ed inizializzazione */

/* Inizio sezione navigazione */

nav {
	position: absolute;
	left: 0px;
	right: 0px;
	margin: 0 auto;
	width: 1024px;
	background: url("../images/nav_background.png");
}

nav ul {
	margin: 0 auto;
	width: 940px;
	list-style: none;
}

nav ul li {
	float: left;
}

	nav ul li a {
		display: block;
		margin-right: 20px;
		width: 140px;
		font-size: 14px;
		line-height: 44px;
		text-align: center;
		text-decoration: none;
		color: #777;
	}

		nav ul li a:hover {
			color: #fff;
		}

		nav ul li.selected a {
			color: #fff;
		}

		nav ul li.subscribe a {
			margin-left: 22px;
			padding-left: 33px;
			text-align: left;
			background: url("../images/rss_piccolo.png") left center no-repeat;
		}

/* Fine sezione navigazione */

/* Inizio sezione intro */

#intro {
	margin-top: 76px;
	height: 100%;
	background: url("../images/intro_background.png") repeat-x right;

	/* background-size: 44% 100%, 100%; */

	/* Background-size not implemented yet */
	/* -webkit-background-size: 44% 100%, 100%; */   /* Google Chrome e Safari */
	/* -o-background-size: 44% 100%, 100%;      */   /* Opera                  */
	/* -khtml-background-size: 44% 100%, 100%;  */   /* Konqueror              */
	/* -moz-background-size: 44% 100%, 100%;    */   /* Mozilla Firefox        */

	border-radius: 22px;
	behavior: url(border-radius.htc);

	/* Border-radius not implemented yet */
 	-moz-border-radius: 22px;
	-webkit-border-radius: 22px;
}

#intro h2 {
	width: 300px;
	padding: 10px 10px 0 20px;
	font-weight: normal;
	color: #fff;
}

#intro p {
	padding: 0px 0px 10px 20px;
	color: #d9f499;
	width: 430px;
	text-align:justify;
}

#imgIntro {
  /* position:relative; */
  float:right;
  top: 15px;
  right: 34px;
  /* width: 413px; */
  /* height: 220px; */
  width: 413px;
  height: 218px;
  z-index:2;
  background: url("../images/intro_background.png") repeat-x right;
  filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src='images/intro_car.png', sizingMethod='crop');

  border-radius: 22px;
  behavior: url(border-radius.htc);

  /* Border-radius not implemented yet */
  -moz-border-radius: 22px;
  -webkit-border-radius: 22px;
}

/* Fine sezione intro */


/* Inizio sezione contenuti */

#content {
	display: table;
}

	#mainContent {
		display: table-cell;
		width: 620px;
		padding-right: 22px;
	}

/* Inizio sezione blogPosts */

    #blogPosts article p {
	   text-align:justify;
    }

    #blogPosts p {
	   text-align:justify;
    }

.blogPost {
	column-count: 2;
  column-rule: 1px solid DarkGray;
	column-gap: 22px;

	/* Column-count not implemented yet */
	-moz-column-count: 2;
	-webkit-column-count: 2;

	/* Column-rule not implemented yet */
	-moz-column-rule: 1px solid DarkGray;
	-webkit-column-rule: 1px solid DarkGray;

	/* Column-gap not implemented yet */
	-moz-column-gap: 22px;
	-webkit-column-gap: 22px;
}

	.blogPost header {
		column-span: all;

		/* Column-span not implemented yet */
		-moz-column-span: all;
		-webkit-column-span: all;
	}

		.blogPost header p, .blogPost header p a {
			font-size: 14px;
			font-style: italic;
			color: #777;
		}

	.blogPost img {
		/* margin: 22px 0; */
		display: block;
		margin-left:auto;
		margin-right:auto;
		margin-bottom:22px;
		width:280px;
		box-shadow: 3px 3px 7px #777;

		/* box-shadow not implemented yet */
		-moz-box-shadow: 3px 3px 7px #777;
		-webkit-box-shadow: 3px 3px 7px #777;
		filter: progid:DXImageTransform.Microsoft.Shadow(color='#777777', Direction=145, Strength=7);
	}

/* Fine sezione blogPosts */

/* Inizio sezione commenti */

#comments {
	margin-top: 21px;
	padding-top: 22px;
	border-top: 1px solid #d7d7d7;
}

	#comments article {
		display: table;
		padding: 22px;
		border: 1px solid #d7d7d7;

		border-radius: 11px;

		/* Border-radius not implemented yet */
		-moz-border-radius: 11px;
		-webkit-border-radius: 11px;
	}

  section #comments>article {
		padding: 21px;
		background: #f0f0f0;
		border: 1px solid #d7d7d7;

		border-radius: 11px;
		behavior: url(border-radius.htc);

		/* Border-radius not implemented yet */
		-moz-border-radius: 11px;
		-webkit-border-radius: 11px;
  }

  section #comments>article + article {
		padding: 21px;
		background: #E3E3E3;
		border: 1px solid #d7d7d7;

		border-radius: 11px;
		behavior: url(border-radius.htc);

		/* Border-radius not implemented yet */
		-moz-border-radius: 11px;
		-webkit-border-radius: 11px;
  }

  section #comments>article + article + article {
		padding: 21px;
		background: #f0f0f0;
		border: 1px solid #d7d7d7;

		border-radius: 11px;
		behavior: url(border-radius.htc);

		/* Border-radius not implemented yet */
		-moz-border-radius: 11px;
		-webkit-border-radius: 11px;
  }

		#comments article header {
			display: table-cell;
			width: 220px;
			padding-right: 22px;
		}

			#comments article header a {
				display: block;
				font-weight: bold;
				color: #000;
			}

				#comments article header a:hover {
					text-decoration: none;
				}

		#comments article p {
			padding: 0;
			text-align:justify;
		}

/* Fine sezione commenti */

/* Inizio sezione Form Inserimento Commento */

form {
	margin-top: 21px;
	padding-top: 22px;
	border-top: 1px solid #d7d7d7;
}

	form p {
		display: table;
		margin-bottom: 22px;
		padding: 0 22px;
	}

	form label {
		display: table-cell;
		width: 140px;
		padding-right: 20px;
		text-align: right;
		font-weight: bold;
		vertical-align: top;
	}

	form input[type="text"], form input[type="email"], form input[type="url"] {
		display: table-cell;
		width: 300px;
		height: 20px;
		border: 1px solid #d7d7d7;
	}

	form textarea {
		width: 300px;
		height: 100px;
		border: 1px solid #d7d7d7;
	}

	form input[type="submit"] {
		margin-left: 162px;
	}

/* Fine sezione Form Inserimento Commento */

/* Inizio sezione Barra Navigazione Laterale */

	aside {
		display: table-cell;
		width: 300px;
		background: url('../images/sidebar_background.png') left top;
		vertical-align:top; /* necessario per Firefox */
	}

    aside section {
      display:block;
    	margin: 22px 0 0 22px;
    	padding: 11px 22px;
    	background: url("../images/sidebar_section_background.png") repeat-x;

      border-radius: 11px;
      /* behavior: url('/border-radius.htc'); */

    	/* Border-radius not implemented yet */
    	-moz-border-radius: 11px;
    	-webkit-border-radius: 11px;
    }
    
    	aside section ul {
    		margin: 0 0 0 -20px;
    		list-style: none;
    	}
    
    		aside section ul li a {
    			display: block;
    			text-decoration: none;
    			color: #000;
    		}
    
    			aside section ul li a:hover {
    				text-decoration: underline;
    			}

/* Fine sezione Barra Navigazione Laterale */

/* Fine sezione contenuti */

/* Inizio sezione Footer */

footer {
	position: absolute;
	left: 0px;
	right: 0px;
	margin: 0 auto;
	width: 1024px;
	background: #222;
}

	footer #mainFooterArea {
		display: table;
		margin: 0 auto;
		width: 940px;
		color: #777;
	}

		footer #mainFooterArea #popular, footer #mainFooterArea #about, footer #mainFooterArea #blogroll {
			display: table-cell;
			width: 260px;
		}

    footer #mainFooterArea #popular, footer #mainFooterArea #blogroll {
			padding-left:20px;
    }

	footer #mainFooterArea section header h3 {
		color: #FFF;
	}

  footer #mainFooterArea #about p {
    text-align:justify;
  }

	footer #mainFooterArea #popular header h3, footer #mainFooterArea #blogroll header h3 {
	  padding-left:10px;
	}

	footer #mainFooterArea section a {
		color: #999;
	}

		footer #mainFooterArea section a:hover {
			color: #FFF;
			text-decoration: none;
		}

	footer #mainFooterArea section ul {
		margin: 0 0 0 0px;
		list-style: square;
		color: #565656;
	}

		footer #mainFooterArea section ul li a {
			display: block;
		}

/* Fine sezione Footer */

Questo foglio di stile viene adoperato essenzialmente per stilizzare il contenuto HTML della nostra pagina web in Internet Explorer 8. Poiché il codice è simile a quello visto nelle parti precedenti del tutorial, nel precedente listato mi sono limitato ad evidenziare gli adattamenti specifici per il suddetto browser.

In particolare, alle righe 91, 94 e 105 abbiamo la definizione del background della sezione "Intro" e l'utilizzo dell'HTML Component "border-radius.htc" per generare i bordi arrotondati dell'immagine di sfondo. Ciò è necessario in quanto, come già detto, IE8 non supporta il tag CSS "border-radius". Inoltre, faccio osservare che, a differenza di quanto fatto precedentemente nel tutorial, questa volta abbiamo usato come background della sezione "Intro" solo la prima delle due immagini originarie. Per la seconda, invece, abbiamo fatto un discorso diverso. Dopo aver definito nell codice HTML della nostra pagina una sottosezione di "intro" avente id "imgIntro" (vedi parte precedente di questa appendice), abbiamo impostato nuovamente come sfondo di quest'area la prima immagine e su di essa mediante l'uso del filtro "AlphaImageLoader" abbiamo caricato la seconda. Ciò è evidenziato alle righe 126, 136, 137 e 140. Anche per questa immagine abbiamo usato l'HTML Component "border-radius.htc" ma in più, con la proprietà "filter" suddetta abbiamo specificato anche il metodo di ridimensionamento dell'immagine, "crop". Questo metodo permette di scalare proporzionalmente l'immagine quando si aumenta o si riduce l'ingrandimento (zoom) della pagina.

Poi alla riga 204 abbiamo l'inizio del codice necessario a stilizzare le immagini inserite nell'articolo del blog. Di questo blocco di codice, in particolare, mi interessa evidenziare la proprietà "filter" adoperata alla riga 216 per generare l'effetto "ombra" delle immagini. Ciò è necessario in quanto Internet Explorer 8 non supporta la proprietà "box-shadow". Per questa proprietà, denominata "Shadow filter", "color" rappresenta il colore dell'ombra espresso in formato Red, Green e Blue (RGB) esadecimale (in questo caso Red=77, Green=77 e Blue = 77), "Direction" rappresenta la direzione dell'effetto d'ombra, considerata come angolo, secondo la convenzione riportata nell'immagine seguente:

 

Valori attributo Direction di shadow filter

 

"Strength" rappresenta la distanza in pixels a cui l'effetto si estende, in questo caso 7.

Infine, ho evidenziato le righe di codice 241, 247, 254, 260, 267 e 273. Esse riguardano la stilizzazione degli interventi degli utenti sull'articolo ma, mentre le righe 247, 260 e 273 hanno a che fare con l'utilizzo dell'HTML Component "border-radius.htc" per generare i bordi arrotondati dei commenti, invece ciascuna delle righe 241, 254 e 260 rappresenta l'inizio di un blocco CSS specifico per stilizzare nell'ordine i commenti 1, 2 e 3. Se osserviamo il codice di questi tre blocchi CSS è chiaramente visibile che sono praticamente identici tranne che per il valore dell'attributo "background" che determina il colore di sfondo di ciascun intervento.

In effetti avremmo potuto definire un blocco di codice CSS "di base" comune a tutti i commenti e avremmo potuto distinguere, per ciascuno di essi, solo la parte relativa al background ma l'ottimizzazione non era il nostro scopo.

Più precisamente, quello che mi preme evidenziare è che con Internet Explorer 8 non è possibile utilizzare un unico blocco CSS per stilizzare i commenti con un effetto a "zebra" in modo tale che gli interventi con indice dispari abbiano uno sfondo diverso da quelli con indice pari. Questo perché la versione 8 del browser Microsoft non supporta il selettore "nth-child". Al suo posto, possiamo definire nel CSS solo dei blocchi distinti per ciascun commento, identificati da:

  • "section #comments>article" per il primo commento;
  • "section #comments>article + article" per il secondo commento;
  • "section #comments>article + article + article" per il terzo commento;
  • "section #comments>article + article + article + article" per il quarto commento;

e così via proseguendo.

Ovviamente non possiamo prevedere a priori quanti interventi possono far seguito ad un articolo, quindi per una soluzione di questo tipo o usiamo una paginazione dei commenti, prevedendo un numero massimo di essi per pagina, oppure dobbiamo scegliere un'altra strada.

Una soluzione alternativa simile a quella appena esposta ma più economica dal punto di vista del codice necessario, può essere quella che prevede un blocco CSS unico per tutti i commenti ed un blocco distinto, costituito solo dalla ridefinizione del background, per i commenti che capitano in posizione dispari (o pari). Questa è la soluzione adottata nell'esempio allegato a conclusione di questa appendice (solo per utenti registrati; la registrazione è gratuita).

Un'ulteriore alternativa, per chi non volesse impaginare i commenti, può essere quella di utilizzare un linguaggio lato server (java, php, altro) per impostare nel codice HTML della pagina web la dichiarazione dello stile a cui appartiene ciascun commento. Si potrebbe ipotizzare anche una soluzione javascript ma potrebbe rivelarsi più complicata delle alternative appena esposte.

Passiamo quindi al codice CSS utilizzato da Google Chrome, da Mozilla Firefox, da Safari e dai browser Microsoft successivi ad IE8. Esso è contenuto nel file "mainstyle_no_ie8.css" di cui posto il contenuto:

/* Inizio sezione reset ed inizializzazione */

/* CSS Reset */
html, body {
	margin: 0;
	padding: 0;
}

/* Da' al browser la direttiva di renderizzare ciascun elemento HTML 5 come blocco */
header, footer, aside, nav, article, section {
	display: block;
}

/* imposta margini, ampiezza, colore di sfondo e fonts del documento html */
body {
	margin: 0 auto;
	width: 940px;
	font: 13px/22px Helvetica, Arial, sans-serif;
	background: #f0f0f0;
}

h2 {
	font-size: 28px;
	line-height: 44px;
	padding: 22px 0;
}

h3 {
	font-size: 18px;
	line-height: 22px;
	padding: 11px 0;
}

p {
	padding-bottom: 22px;
}

/* Fine sezione reset ed inizializzazione */

/* Inizio sezione navigazione */

nav {
	position: absolute;
	left: 0px;
	right: 0px;
	margin: 0 auto;
	width: 1024px;
	background: url("../images/nav_background.png");
}

nav ul {
	margin: 0 auto;
	width: 940px;
	list-style: none;
}

nav ul li {
	float: left;
}

	nav ul li a {
		display: block;
		margin-right: 20px;
		width: 140px;
		font-size: 14px;
		line-height: 44px;
		text-align: center;
		text-decoration: none;
		color: #777;
	}

		nav ul li a:hover {
			color: #fff;
		}

		nav ul li.selected a {
			color: #fff;
		}

		nav ul li.subscribe a {
			margin-left: 22px;
			padding-left: 33px;
			text-align: left;
			background: url("../images/rss_piccolo.png") left center no-repeat;
		}

/* Fine sezione navigazione */

/* Inizio sezione intro */

#intro {
	margin-top: 76px;
	height: 100%;
	background: url("../images/intro_background.png") repeat-x right;

	/* background-size: 44% 100%, 100%; */

	/* Background-size not implemented yet */
	/* -webkit-background-size: 44% 100%, 100%; */   /* Google Chrome e Safari */
	/* -o-background-size: 44% 100%, 100%;      */   /* Opera                  */
	/* -khtml-background-size: 44% 100%, 100%;  */   /* Konqueror              */
	/* -moz-background-size: 44% 100%, 100%;    */   /* Mozilla Firefox        */

	border-radius: 22px;

	/* Border-radius not implemented yet */
 	-moz-border-radius: 22px;
	-webkit-border-radius: 22px;
}

#intro h2 {
	width: 300px;
	padding: 10px 10px 0 20px;
	font-weight: normal;
	color: #fff;
}

#intro p {
	padding: 0px 0px 10px 20px;
	color: #d9f499;
	width: 430px;
	text-align:justify;
}

#imgIntro {
  /* position:relative; */
  float:right;
  top: 15px;
  right: 34px;
  /* width: 413px; */
  /* height: 220px; */
  width: 413px;
  height: 220px;
  z-index:2;
  background: url("../images/intro_car.png") top right no-repeat;

  border-radius: 22px;

  /* Border-radius not implemented yet */
  -moz-border-radius: 22px;
  -webkit-border-radius: 22px;
}

/* Fine sezione intro */


/* Inizio sezione contenuti */

#content {
	display: table;
}

	#mainContent {
		display: table-cell;
		width: 620px;
		padding-right: 22px;
	}

/* Inizio sezione blogPosts */

    #blogPosts article p {
	   text-align:justify;
    }

    #blogPosts p {
	   text-align:justify;
    }

.blogPost {
	column-count: 2;
  column-rule: 1px solid DarkGray;
	column-gap: 22px;

	/* Column-count not implemented yet */
	-moz-column-count: 2;
	-webkit-column-count: 2;

	/* Column-rule not implemented yet */
	-moz-column-rule: 1px solid DarkGray;
	-webkit-column-rule: 1px solid DarkGray;

	/* Column-gap not implemented yet */
	-moz-column-gap: 22px;
	-webkit-column-gap: 22px;
}

	.blogPost header {
		column-span: all;

		/* Column-span not implemented yet */
		-moz-column-span: all;
		-webkit-column-span: all;
	}

		.blogPost header p, .blogPost header p a {
			font-size: 14px;
			font-style: italic;
			color: #777;
		}

	.blogPost img {
		/* margin: 22px 0; */
		display: block;
		margin-left:auto;
		margin-right:auto;
		margin-bottom:22px;
		width:280px;
		box-shadow: 3px 3px 7px #777;

		/* box-shadow not implemented yet */
		-moz-box-shadow: 3px 3px 7px #777;
		-webkit-box-shadow: 3px 3px 7px #777;

	}

/* Fine sezione blogPosts */

/* Inizio sezione commenti */

#comments {
	margin-top: 21px;
	padding-top: 22px;
	border-top: 1px solid #d7d7d7;
}

	#comments article {
		display: table;
		padding: 22px;
		border: 1px solid #d7d7d7;

		border-radius: 11px;

		/* Border-radius not implemented yet */
		-moz-border-radius: 11px;
		-webkit-border-radius: 11px;
	}

	#comments article:nth-child(2n+1) {
		padding: 21px;
		background: #E3E3E3;
		border: 1px solid #d7d7d7;

		border-radius: 11px;

		/* Border-radius not implemented yet */
		-moz-border-radius: 11px;
		-webkit-border-radius: 11px;
	}

		#comments article header {
			display: table-cell;
			width: 220px;
			padding-right: 22px;
		}

			#comments article header a {
				display: block;
				font-weight: bold;
				color: #000;
			}

				#comments article header a:hover {
					text-decoration: none;
				}

		#comments article p {
			padding: 0;
			text-align:justify;
		}

/* Fine sezione commenti */

/* Inizio sezione Form Inserimento Commento */

form {
	margin-top: 21px;
	padding-top: 22px;
	border-top: 1px solid #d7d7d7;
}

	form p {
		display: table;
		margin-bottom: 22px;
		padding: 0 22px;
	}

	form label {
		display: table-cell;
		width: 140px;
		padding-right: 20px;
		text-align: right;
		font-weight: bold;
		vertical-align: top;
	}

	form input[type="text"], form input[type="email"], form input[type="url"] {
		display: table-cell;
		width: 300px;
		height: 20px;
		border: 1px solid #d7d7d7;
	}

	form textarea {
		width: 300px;
		height: 100px;
		border: 1px solid #d7d7d7;
	}

	form input[type="submit"] {
		margin-left: 162px;
	}

/* Fine sezione Form Inserimento Commento */

/* Inizio sezione Barra Navigazione Laterale */

	aside {
		display: table-cell;
		width: 300px;
		background: url('../images/sidebar_background.png') left top;
		vertical-align:top; /* necessario per Firefox */
	}

    aside section {
      display:block;
    	margin: 22px 0 0 22px;
    	padding: 11px 22px;
    	background: url('/../images/sidebar_section_background.png') repeat-x;

      border-radius: 11px;

    	/* Border-radius not implemented yet */
    	-moz-border-radius: 11px;
    	-webkit-border-radius: 11px;
    }
    
    	aside section ul {
    		margin: 0 0 0 -20px;
    		list-style: none;
    	}
    
    		aside section ul li a {
    			display: block;
    			text-decoration: none;
    			color: #000;
    		}
    
    			aside section ul li a:hover {
    				text-decoration: underline;
    			}

/* Fine sezione Barra Navigazione Laterale */

/* Fine sezione contenuti */

/* Inizio sezione Footer */

footer {
	position: absolute;
	left: 0px;
	right: 0px;
	margin: 0 auto;
	width: 1024px;
	background: #222;
}

	footer #mainFooterArea {
		display: table;
		margin: 0 auto;
		width: 940px;
		color: #777;
	}

		footer #mainFooterArea #popular, footer #mainFooterArea #about, footer #mainFooterArea #blogroll {
			display: table-cell;
			width: 260px;
		}

    footer #mainFooterArea #popular, footer #mainFooterArea #blogroll {
			padding-left:20px;
    }

	footer #mainFooterArea section header h3 {
		color: #FFF;
	}

  footer #mainFooterArea #about p {
    text-align:justify;
  }

	footer #mainFooterArea #popular header h3, footer #mainFooterArea #blogroll header h3 {
	  padding-left:10px;
	}

	footer #mainFooterArea section a {
		color: #999;
	}

		footer #mainFooterArea section a:hover {
			color: #FFF;
			text-decoration: none;
		}

	footer #mainFooterArea section ul {
		margin: 0 0 0 0px;
		list-style: square;
		color: #565656;
	}

		footer #mainFooterArea section ul li a {
			display: block;
		}

/* Fine sezione Footer */

Analizzando le parti di codice messe in risalto appare evidente che anche in questo foglio di stile non abbiamo utilizzato gli sfondi multipli per la sezione "intro", cosa che invece avevamo fatto nel tutorial. Difatti, come evidenziato alle righe 91, 94, 125 e 135 abbiamo usato una prima immagine di sfondo comune a tutta la sezione ed una seconda immagine di sfondo per la sua sottosezione "imgIntro". Si osservi anche che, rispetto al file CSS precedente, è stato abbandonato l'uso dell'AlphaImageLoader filter per il caricamento della seconda texture.

Inoltre, nella sezione "Intro" (dopo la riga 104), nella sottosezione "imgIntro" (che inizia alla riga 125) e nei commenti (dopo la riga 238), non sono più presenti i behavior che richiamano l'HTML Component "border-radius.htc". Questo perché i browser a cui è indirizzato questo foglio di stile supportano direttamente la proprietà "border-radius" o ne hanno una equivalente ("-moz-border-radius", "-webkit-border-radius"). Per un discorso analogo anche lo "shadow filter", usato per generare gli effetti d'ombra delle immagini presenti nell'articolo della pagina web che stiamo impaginando, è stato rimosso dal blocco di codice CSS che ne definisce lo stile (a partire dalla riga 201). Infatti i browser per cui il foglio di stile è stato creato possono usare direttamente la proprietà "box-shadow".

Come ultima nota relativa al codice CSS mostrato poco sopra, si osservi che, per quanto riguarda i commenti, alla riga 238 abbiamo utilizzato il selettore "nth-child" per selezionare gli interventi di indice dispari a cui applicare uno sfondo diverso da quelli che hanno un indice pari. In questo modo i commenti appaiono con un effetto zebrato visivamente gradevole.

Con questa ultima osservazione si cocludono l'appendice ed il tutorial su HTML5 e CSS3.

Chi volesse vedere il risultato finale può farlo selezionando questo link con uno qualsiasi dei seguenti browser:

  • Internet Explorer 8 o superiore;
  • Google Chrome;
  • Mozilla Firefox;
  • Safari;

Chi, invece, volesse dare un'occhiata al modo in cui sarebbe stata mostrata questa pagina in Internet Explorer 8 senza gli "accorgimenti" discussi in questa appendice può farlo aprendo questo collegamento (ovviamente con IE8).

Poiché nella parte 5 del tutorial su HTML5 e CSS3 avevamo visto anche una variante della pagina web che presentava un'impaginazione dell'articolo d'esempio su 3 colonne, aggiungo un link alla versione unica di quella variante visionabile a questo indirizzo.

Inoltre, per tutti gli utenti registrati (o che si registrano) al sito allego l'archivio zip contenente tutti i file (html, js, css, htc, gif, jpg, png) utilizzati per questa appendice e per il tutorial.

 

Ultimo aggiornamento Venerdì 07 Dicembre 2012 02:08
 

Commenti  

 
#2 BatEn 2013-06-21 14:26
Ciao,
benvenuto tra noi.
Citazione | Segnala all'amministratore
 
 
+1 #1 amcozza 2013-06-18 12:43
mi sarà certamente utile per migliorare il mio sito: mcozzapoesie.altervista.org

Grazie!!! mi occupo anche di matematica ..credo che appena avrò più tempo posterò qualcosa di mio. a presto...anch'io uso joomla!
Citazione | Segnala all'amministratore