Ecco come funziona. È necessario modificare l'attributo dati come segue:
<div data-foo='First line 
 Second Line'>foo</div>
e il CSS (proof of concept):
[data-foo]:after {
content: attr(data-foo);
background-color: black;
color: white;
white-space: pre;
display: inline-block;
}
Fiddle Demo: http://jsfiddle.net/audetwebdesign/cp4RF/
Come Funziona
L'utilizzo di \a
non funziona, ma l'entità HTML equivalente lo è, 

.
In base alle specifiche CSS2.1, attr(attribute-label)
restituisce una stringa ma la stringa non viene analizzata dal processore CSS (non sono sicuro di cosa significhi esattamente). Suppongo che \a
debba essere interpretato dal processore CSS in modo che il codice sia visualizzato come proprietà.
Al contrario, l'entità HTML viene interpretata direttamente dal browser (credo ...), quindi sembra funzionare.
Tuttavia, affinché l'avanzamento della linea funzioni, è necessario impostare white-space: pre
per preservare lo spazio bianco nello pseudoelemento. Nota: potresti anche considerare pre-wrap
o pre-line
a seconda della natura dei tuoi contenuti.
Riferimento
Per quanto riguarda l'ottenimento del codice entità HTML per un avanzamento riga:
http://www.fileformat.info/info/unicode/char/000a/index.htm
Per quanto riguarda il valore attr()
per la proprietà content
:
http://www.w3.org/TR/CSS2/generate.html#content
fonte
2013-05-09 01:22:23
'\ a' funziona se lo si inserisce direttamente nel' contenuto: "Prima riga \ una seconda riga"; 'ma apparentemente non se lo si inserisce tramite' attr() '. Wow, domanda interessante! –
Ho creato una demo per testare le due soluzioni: newline semplice e ' ' entità. http://codepen.io/denilsonsa/pen/bgxKgP Riepilogo: entrambe le soluzioni funzionano su tutti i browser moderni (Chrome, Firefox, Safari 9+, IE 11+). –