2012-03-17 11 views
81

Esiste un modo per emulare la visualizzazione di un elemento pre tramite CSS?Visualizza elemento come testo preformattato tramite CSS

Ad esempio, posso mantenere lo spazio bianco intatto in questo div utilizzando una regola CSS?

<div class="preformatted"> 

    Please procure the following items: 

    - Soup 
    - Jam 
    - Hyphens 
    - Cantaloupe 
</div> 

risposta

126

Usa white-space: pre preservare preformattazione spazi vuoti come nell'elemento pre. Per fare un ulteriore passo avanti, aggiungi anche font-family: monospace, poiché gli elementi pre di solito sono impostati in un carattere monospaziale per impostazione predefinita (ad esempio per l'uso con i blocchi di codice).

.preformatted { 
 
    font-family: monospace; 
 
    white-space: pre; 
 
}
<div class="preformatted"> 
 

 
    Please procure the following items: 
 

 
    - Soup 
 
    - Jam 
 
    - Hyphens 
 
    - Cantaloupe 
 
</div>

+0

Non pensavo di includere la dichiarazione 'font-family'. +1, per la precisione =) –

+4

Mentre aspetto di accettare questa risposta, potresti spiegare la differenza tra 'pre' e' pre-wrap'? Presumo 'pre-wrap' ... wraps? –

+0

@GGG: Esatto. Vedi [un confronto] (http://jsfiddle.net/BoltClock/2TA8g/1). – BoltClock

9

Sì:

div.preformatted { 
    white-space: pre; 
    } 

Riferimento:

+2

+1 per polpette di carne quadrate. –

28
.preformatted { 
    white-space: pre-wrap; 
} 

penso "pre-wrap" è meglio. Può aiutare a lungo in fila.

+0

Fantastico! Questa è una regola pratica da sapere su ... – Shadow

+0

Questo è fantastico. –

2

inorder per ottenere <pre> che è possibile utilizzare;

div.preformatted{ white-space: pre ; display: block; } 
+0

Perché dovresti avere problemi con unicode-bidi? Questo sembra un po 'supplichevole. –

+1

Un po 'strano anche per me !. Questo è abbastanza vecchio ora. Inoltre non riesco a ricordare da dove l'ho fatto riferimento. Può essere https://www.w3.org/TR/CSS2/sample.html. Aggiornato la risposta poiché non ne abbiamo bisogno ora. –