Digamos que eu tenha este texto que desejo exibir em uma célula de tabela HTML:
Honey Nut Cheerios, Wheat Chex, Grape-Nuts, Rice Krispies, Some random cereal with a very long name, Honey Bunches of Oats, Wheaties, Special K, Froot Loops, Apple Jacks
e quero que a linha quebre preferencialmente após uma das vírgulas.
Existe uma maneira de dizer ao renderizador de HTML para tentar quebrar em algum ponto designado, e fazer isso antes de tentar quebrar depois de um dos espaços, sem usar espaços não separáveis? Se eu usar espaços não separáveis, a largura ficará maior incondicionalmente. Eu quero que a quebra de linha aconteça após um dos espaços, se o algoritmo de quebra de linha tentou primeiro com as vírgulas e não consegue fazer a linha caber.
Tentei envolver fragmentos de texto em <span>
elementos, mas isso não parece ajudar em nada.
<html>
<head>
<style type="text/css">
div.box { width: 180px; }
table, table td {
border: 1px solid;
border-collapse: collapse;
}
</style>
</head>
<body>
<div class="box">
<table>
<tr>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
<td>lorem ipsum</td>
</tr>
<tr>
<td>lorem ipsum</td>
<td>
<span>Honey Nut Cheerios,</span>
<span>Wheat Chex,</span>
<span>Grape-Nuts,</span>
<span>Rice Krispies,</span>
<span>Some random cereal with a very long name,</span>
<span>Honey Bunches of Oats,</span>
<span>Wheaties,</span>
<span>Special K,</span>
<span>Froot Loops,</span>
<span>Apple Jacks</span>
</td>
<td>lorem ipsum</td>
</tr>
</table>
</div>
</body>
</html>
nota: parece que o comportamento do CSS3text-wrap: avoid
é o que eu quero, mas não consigo fazê-lo funcionar.