CSS: layout dell'elemento hr

CSS: layout dell'elemento hr

La gestione dell'elemento hr è sempre stata una fonte di preoccupazione per i designer. Infatti questo elemento presenta dei problemi di compatibilità cross-browser dovuti alla differente interpretazione che ogni browser da all'elemento.

I problemi principali sono soprattutto quelli relativi alla gestione del bordo dell'elemento e d alla sua formattazione verticale. Riassumendo, si incontrano le seguenti difficoltà:

  1. I margini verticali vengono calcolati in modo differente.
  2. Specificare un bordo per l'elemento produce risultati diversi.
  3. Attribuire un'immagine di sfondo porta a risultati inattesi.

Alcuni anni fa Marek Prokop ha pubblicato un articolo nel quale illustrava i vari metodi per bypassare il problema. Il metodo certamente più efficace consiste nell'eliminare l'elemento hr e sostituirlo con un elemento div a cui si andranno ad attribuire gli stili desiderati. Il codice (X)HTML è simile al seguente:


<div class="hr"><hr/></div>

Il codice CSS sarà:


hr {
	display: none;
}

div.hr {
	height: 1px;
	margin: 0 auto;
	border-top: 1px solid #000;
	width: 70%;
}

Il risultato finale sarà uniforme in tutti i browser. Se avessimo voluto attribuire un'immagine di sfondo avremmo semplicemente dovuto specificarla per l'elemento con classe .hr, ovviamente impostando per esso delle dimensioni adeguate a quelle dell'immagine.

Torna su