2014-12-09 13 views
6

Il comportamento predefinito degli elementi HTML inline con un bordo è che, alla fine e all'inizio di una riga in un interruzione di riga, non viene disegnato alcun bordo. ComeBordo CSS alla fine della riga su elementi in linea

span { 
    border: 1px solid black; 
} 

Vedere risultato a: http://jsfiddle.net/yuszuv/ft7waga3/1/

Esiste un modo per attirare i "dispersi" confini, in modo che ogni linea sembra essere contenuta in una scatola?

+0

Nota bello, ma forse si può rendere word-break: break-all http: // jsfiddle. net/ft7waga3/4/ – dfsq

+1

La nuova proprietà CSS 'box-decoration-break: clone; risolve questo per Firefox. – jan

+0

@jan Grazie, non sapevo che nuova proprietà. Ho aggiornato la mia risposta con una soluzione per tutti i browser, ad eccezione di IE. –

risposta

10

Ho paura che non è possibile rendere ogni riga contenuta in un rettangolo utilizzando border su un elemento display:inline.
Tuttavia, una soluzione alternativa è utilizzare un box-shadow.

span { 
    line-height: 32px; 
    box-shadow: 0 0 0 1px black; 
} 

jsfiddle

seguito una schermata da FireFox:

enter image description here


Come detto Jan, un approccio migliore consiste nell'utilizzare box-decoration-break

Secondo canIuse, questo dovrebbe funzionare per tutti i browser più recenti, ad eccezione di IE:

span { 
    border: 1px solid black; 
    -webkit-box-decoration-break: clone; 
    box-decoration-break: clone; 
} 

updated jsFiddle

+2

Non funziona correttamente su Firefox. –

+0

@ chipChocolate.py Funziona sul mio FF 27.0.1 in esecuzione su OSX. Forse hai bisogno di aggiungere il prefisso '-moz-', quindi usa '-moz-box-shadow: 0 0 0 1px nero; box-shadow: 0 0 0 1px nero; ' –

+0

[' box-shadow'] (http://caniuse.com/#search=box-shadow) non ha bisogno di alcun prefisso. –

Problemi correlati