В настоящее время невозможно только с помощью CSS, но с помощью языка сценариев ...
PHP
echo '<pre id="the_pre_id"><div>'.str_replace("\n",'</div><div>',$text).'</div>';
или JavaScript
var el = document.getElementById('the_pre_id');
el.innerHTML='<div>'+el.innerHTML.replace(/\n/g, '</div><div>')+'</div>';
Обратите внимание, вам нужно выбрать только один из приведенных фрагментов.Оба выполняют одно и то же.
Мы загрязняем разметку (несемантические теги), но это позволяет нам создавать правила стиля для каждой строки:
CSS
pre{
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
pre > div {
padding-left: 1em;
text-indent: -1em;
}
И у нас есть именно тот эффект, который вы ищете ...
Результат
Lorem ipsum dolor sit amet, consectetur
жадный элит.
De malis autem и bonis ab iis animalibus,
quae nondum depravata sint, ait optime
iudicari.
Quae cum praeponunt, ut sit aliqua rerum
selectio, naturam videntur sequi;Quasi
ego id curem, quid ille aiat aut neget.