Tra i tanti test sui CSS da me realizzati, tanti non hanno avuto l'esito sperato. Uno di questi riguardava l'uso dei CSS e del contenuto
generato per emulare il comportamento dell'elemento br
nei documenti XML.
Partiamo da questo documento XML minimale:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="line-breaks-generated-content.css" type="text/css"?>
<root>
<para>Lorem ipsum dolor sit amet et <break/> ideo autem aquis concupiscentia huius mundi comparatur.</para>
</root>
In teoria un carattere di interruzione di riga inserito sull'elemento vuoto break
dovrebbe sortire l'effetto sperato:
root {
display: block;
margin: 8px;
}
para {
display: block;
margin: 1em 0;
}
break {
content: '\A';
white-space: pre;
display: block;
}
In realtà non funziona, perché in XML come anche in HTML un'interruzione di riga deve essere esplicitamente autorizzata dal parser dell'interprete.
Infatti è sufficiente aggiungere il namespace XHTML e usare l'elemento br
per ottenere il risultato voluto:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="line-breaks-generated-content.css" type="text/css"?>
<root xmlns="http://www.w3.org/1999/xhtml">
<para>Lorem ipsum dolor sit amet et <br/> ideo autem aquis concupiscentia huius mundi comparatur.</para>
</root>