2012-01-14 9 views
7

Ho dovuto fare i conti con qualcosa che in teoria dovrebbe essere molto semplice per alcuni giorni ... e sono determinato a non mollare.CSS <HR> con ornamento

io sto cercando di realizzare questo:

enter image description here

regola essenzialmente orizzontali, con un ornamento tra - l'HR si estenderà l'intera larghezza dello schermo.

Quindi ho affettato il mio PSD per eliminare l'ornamento come immagine - e sto cercando di sovrapporlo a uno


centrato ma fallendo miseramente.

mio Markup:

<div> 
    <hr> 
    <img src='assets/img/ornament.png' class='center'> 
</div> 

CSS:

hr{ 

height: 2px; 
color: #578daf; 
background-color: #578daf; 
border:0; 

}

Ho appena figura gergo come fare apparire l'immagine al centro della FC .... Qualsiasi aiuto o suggerimenti sarebbero apprezzati.

+0

Aggiungi un secondo h. –

+0

@CaseyRobinson non sono sicuro di aver capito? – diagonalbatman

+0

I tuoi commenti sono html4.01 ?? –

risposta

4

Change markup tp

<div class='hr'> 
    <hr> 
    <img src='assets/img/ornament.png' alt=''> 
</div> 

Aggiungere il seguente al foglio di stile, sostituendo 16px da un opportuno valore che dipende dall'altezza dell'immagine e la dimensione del carattere previsto.

.hr { text-align: center; } 
.hr img { position: relative; top: -16px; } 

Tuttavia, un approccio migliore è quello di utilizzare solo un'immagine, centrata all'interno di un elemento div che ha un'immagine di sfondo adatto che si ripete orizzontalmente. L'immagine di sfondo sarebbe un pezzo dello stesso colore dello sfondo generale della pagina ma ha una linea orizzontale nel mezzo.

+0

Questo fa il lavoro grazie :-) – diagonalbatman

3

Check out this fiddle. È possibile impostare l'immagine dell'ornamento come sfondo sullo div con la classe ornament.

+0

Ho provato questo, ma cambiando il codice nel violino per usare backgound: url (''); ha fatto sparire l'immagine ... – diagonalbatman

+0

Funziona per me, il percorso dell'immagine potrebbe essere stato errato. – fivedigit

1

a braccio ... utilizzando l'immagine centrale per l'ora e un segmento di linea ripetuto per il div ...

<style> 
     .line hr {height: 16px; background: url(as_image.jpg) center center no-repeat;border:0;} 
     .line {background: url(as_line.jpg) center repeat-x;} 
    </style> 

    <div class="line"><hr></div> 
+0

ahh, troppo tardi; +) – Robert

+0

perché un voto basso esattamente ?? – Robert

15

È inoltre possibile eseguire questa operazione con un elemento CSS pseudo. Tutto ciò che è necessario per l'HTML è lo

hr:after { 
    background: url('yourimagehere.png') no-repeat top center; 
    content: ""; 
    display: block; 
    height: 30px; /* height of the ornament */ 
    position: relative; 
    top: -15px; /* half the height of the ornament */ 
} 
+0

Questa soluzione evita l'utilizzo di markup extra e il pieno funzionamento. –

+0

Penso che questo sia il metodo più pulito per il risultato desiderato. –

+0

Dai a quest'uomo la risposta! –