Как избежать ненужных тегов br при использовании табличного тега в nl2br? - PullRequest
0 голосов
/ 01 июля 2018

У меня есть переменный текст, который иногда содержит простой текст, иногда коды, а иногда и таблицы.

Я хочу минимизировать теги HTML в базе данных, поэтому я не использовал тег pre в table и text и использовал только в кодах (сохранение пространства не требуется в двух других случаях).

Теперь я застрял в проблеме, где мои данные tables проходят через nl2br, что приводит к следующему выводу в моих исходных кодах.

<table><br />
    <thead><br />
        <tr><br />
            <th>Operator</th><br />
            <th>Left</th><br />
            <th>Right</th><br />
            <th>Remark</th><br />
        </tr><br />
    </thead><br />
    <tbody><br />
        <tr><br />
            <td>/</td><br />
            <td>10</td><br />
            <td>5 or 5 / 2 / 1</td><br />
            <td>Left operand is unambiguous, right is not</td><br />
        </tr><br />
        <tr><br />
            <td>/</td><br />
            <td>5 or 10 / 5</td><br />
            <td>2 or 2 / 1<td><br />
            <td>Both left and right are ambiguous</td><br />
        </tr><br />
        <tr><br />
            <td>/</td><br />
            <td>2 or 10 / 5 / 2</td><br />
            <td>1</td><br />
            <td>Right operand is unambiguous and left is not</td><br />
        </tr><br />
    </tbody><br />
</table><br />

Но в инструментах разработчика Chrome он показывает нечто иное, чем это.

</p><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 
<br><br><br><br><br><br><br><br><br><br>
<table class="rembr">
    <thead>
        <tr>
            <th>Operator</th>
            <th>Left</th>
            <th>Right</th>
            <th>Remark</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>/</td>
            <td>10</td>
            <td>5 or 5 / 2 / 1</td>
            <td>Left operand is unambiguous, right is not</td>
        </tr>
        <tr>
            <td>/</td>
            <td>5 or 10 / 5</td>
            <td>2 or 2 / 1</td><td>
            </td><td>Both left and right are ambiguous</td>
        </tr>
        <tr>
            <td>/</td>
            <td>2 or 10 / 5 / 2</td>
            <td>1</td>
            <td>Right operand is unambiguous and left is not</td>
        </tr>
    </tbody>
</table><br>

Я не понял такого поведения, почему разные выходы для одной страницы.

Ну, а пока, я хочу знать, как я могу использовать табличный тег в nl2br без br после каждого table тега?

1 Ответ

0 голосов
/ 02 июля 2018

После дней поисков я нашел для этого идеальное решение. pre-wrap.

Он сохранит пробелы и новые строки, но переносит слово при переполнении текста.

Итак,

div{
    white-space: pre-wrap;
}
...