CSS sulle horizontal rules

Mercoledì 26 Aprile 2006 - 09:00

di Cesare Lamanna

CSS

È possibile modificare con i CSS l’aspetto di una horizontal rule (<hr />)? Certo che è possibile ma i risultati relativemente al supporto cross-browser non sono garantiti.

Su questo nuovo blog, Bite Size Standards, Nathan Pitman propone questo approccio: inserire la hr in un div, impostare la sua proprietà display su none e lavorare con gli stili sul div. Il codice potrebbe essere questo:


div.horRule {
height: 1px;
border-top: 1px solid #E5E5E5;
margin-top: 3px;
margin-bottom: 3px;
margin-left: 10px;
margin-right: 10px;
}

div.horRule hr {
display: none;
}

Prendo lo snippet di codice dal blog di Nathan Smith, che rispondendo a Pitman, propone questa soluzione che non fa uso di div aggiuntivi e che funziona bene sulle versioni più recenti dei principali browser:


hr
{
background: #ccc;
color: #ccc;
height: 1px;
margin: 0 0 10px;
}

Nei commenti al post di Smith, Dustin Diaz rimanda ad un terzo possibile approccio, quello proposto in questo esempio su Sitepoint.

Tags:

Categoria: CSS | Permalink

Commenti

1

azz, tutto quì?
a volte ho rinunciato ad usarlo proprio per questo, per il comportamento diverso sui diversi browser
ma non credevo che fosse così semplice agirare l’ostacolo…
buono a sapersi

# - postato da ozlacs - 26 Aprile 2006 - 09:41

2

La soluzione col DIV, oltre che vecchia di qualche anno, è molto discutibile dal punto di vista semantico.

# - postato da gianluca - 26 Aprile 2006 - 10:14

3

Io sono per usare il tag hr esclusivamente per separare contenuti diversi nel codice della pagina se visualizzata senza css.
Ad esempio per separare header, contenuto e footer.

Con i css abilitati preferisco non visualizzare niente ed usare altro per scopi puramente decorativi.

# - postato da Tom - 26 Aprile 2006 - 10:33

4

concordo con gianluca

# - postato da Salvatore PECORARO - 26 Aprile 2006 - 10:54

5

Concordo con Tom, anche perché dal punto di vista semantico - come diceva Gianluca - non è che sia correttissimo!

# - postato da DarCas - 26 Aprile 2006 - 12:27

6

Anche secondo me usare un div è scorretto semanticamente. E in linea di massima sarebbe sufficiente dare uno stile al border di un div precedente o successivo per ottenere l’effetto filetto( o background-image per effetti più complessi).

Io utilizzo spesso l’hr per gestire i float e riallineare i div successivi. Col semplice claer:both; visibility:hidden.
Tra l’altro ritengo che questo metodo aiuti a dividere in sezioni rendere maggiormanete leggibile la pagina anche a CSS disabilitati

# - postato da Jan - 26 Aprile 2006 - 12:38

7

Il codice può essere perfezionato, sostituendo:
height:1px;
con:
max-height:1px;

Quasi tutti i browser non mostrano cambiamenti. In Seamonkey, invece, la resa diventa giusta.

# - postato da Mirko Pagliai - 16 Ottobre 2008 - 23:29

8

yeeees!!!!

funziona!!

Per fare una hr a pallini:
hr {color: #ccc;
height: 1px;
margin: 0 0 10px;
border-top:1px dotted #aaa8a8;}

buon uso!

# - postato da simona - 04 Maggio 2011 - 17:39

Inserisci il tuo commento:





(puoi usare i seguenti tag HTML per formattare il testo -
a href, b, i, br/, p, strong, em, ul, ol, li, blockquote, pre):

 

Anteprima del commento