Как показать многострочный текст в ячейке таблицы

Я хочу показать абзац из базы данных в ячейке таблицы.

результатом является большая 1 строка, игнорируя, как она организована в базе данных. игнорирование "вводит", например (новые строки)

Я хочу показать его точно в соответствии с тем, как он написан в базе данных.

например, если абзац сохраняется следующим образом:

hello ,
my name is x.

Я хочу, чтобы это было показано именно так, а не:

hello, myname is x.

7 ответов


вы хотите использовать CSS white-space:pre применяется к соответствующему <td>. Чтобы сделать это для всех ячеек таблицы, например:

td { white-space:pre }

кроме того, если вы можете изменить разметку, вы можете использовать <pre> тег вокруг вашего контента. По умолчанию веб-браузеры используют таблицу стилей user-agent для применения одного и того же white-space:pre правила для этого элемента.

элемент PRE сообщает агентам visual user, что вложенный текст "предварительно форматированный." При обработке предварительно отформатированного текста визуальные агенты пользователя:

  • может оставить пробел нетронутым.
  • может отображать текст шрифтом с фиксированным шагом.
  • может отключить автоматический перенос слов.
  • не следует отключать двунаправленную обработку.

style="white-space:pre-wrap; word-wrap:break-word"

это решило бы проблему новой строки. pre tag добавит дополнительный CSS, чем требуется.


оберните содержимое в <pre> (предварительно отформатированный текст) тег

<pre>hello ,
my name is x.</pre>

у вас есть два пути решения этой проблемы.

Решение 1 (<p> or <br/>)

вы можете добавить обновление конечной строки базы данных (\n) к тегам html <p></p> или <br />. Примером в php будет echo str_replace("\n","<br />",$database_text);

решение 2 (<pre>)

С помощью тега html будет форматировать текст по желанию <pre>database text</pre>, хотя это даст вам дополнительные проблемы css и должно использоваться только для основных ситуаций.


в коде на стороне сервера замените новые строки (\n) с <br/>.

Если вы используете PHP, вы можете использовать nl2br()


Привет мне нужно сделать то же самое! Не спрашивайте, почему, но я создавал html с помощью python и нуждался в способе перебирать элементы в списке и каждый элемент принимал свою собственную строку в одной ячейке таблицы.

Я обнаружил, что тег br хорошо работает для меня. Например:

<!DOCTYPE html>
<HTML>
    <HEAD>
        <TITLE></TITLE>
    </HEAD>
    <BODY>
  <TABLE>
            <TR>
                <TD>
                    item 1 <BR>
                    item 2 <BR>
                    item 3 <BR>
                    item 4 <BR>
                </TD>
            </TR>
        </TABLE>
  </BODY>

Это даст результат, который я хотел.


Я использую тег html-кода после каждой строки (см. ниже), и он работает для меня.

George Benson </br> 123 Main Street </br> New York, Ny 12344 </br>