Как заставить содержимое таблицы <td> обернуть?
Вот целая страница
* wrappable определен в файле main.css
/* Wrappable cell
* Add this class to make sure the text in a cell will wrap.
* By default, data_table tds do not wrap.
*/
td.wrappable,
table.data_table td.wrappable {
white-space: normal;
}
Вот целая страница:
<%@ include file="../../include/pre-header.html" %>
<form id="commentForm" name="commentForm" action="" method="post">
<ctl:vertScroll height="300" headerStyleClass="data_table_scroll" bodyStyleClass="data_table_scroll" enabled="${user.scrollTables}">
<ctl:sortableTblHdrSetup topTotal="false" href="show.whatif_edit_entry? entryId=${entry.entryId}" />
<table class="data_table vert_scroll_table">
</tr>
<tr>
<ctl:sortableTblHdr styleClass="center" title="Comments" property="comment" type="top">Comments</ctl:sortableTblHdr>
</tr>
<c:forEach var="comments" items="${entry.comments}">
<tr id="id${comments.id}">
<td id="comments-${comments.id}" class="wrappable" style="width:400px;">${comments.comment}</td>
</tr>
</c:forEach>
<c:if test="${lock.locked || form.entryId < 0 }">
<%-- This is the row for adding a new comment. --%>
<tr id="commentRow">
<td><input type="text" id="comment" name="comment" size="50" maxlength="250" onkeypress="javascript:return noenter();" />
<a href="javascript:addComment();"><img src="../images/icon_add.gif" border="0" alt="Add"/></a>
</td>
</tr>
</c:if>
</table>
</ctl:vertScroll>
</form>
Он просто растягивается каждый раз, когда я отправляю.
Эта страница также находится в div. Нужно ли также устанавливать ширину div и таблицы?
Ответы
Ответ 1
Используйте table-layout:fixed
в таблице и word-wrap:break-word
в td.
См. этот пример:
<html>
<head>
<style>
table {border-collapse:collapse; table-layout:fixed; width:310px;}
table td {border:solid 1px #fab; width:100px; word-wrap:break-word;}
</style>
</head>
<body>
<table>
<tr>
<td>1</td>
<td>Lorem Ipsum</td>
<td>Lorem Ipsum is simply dummy text of the printing and typesetting industry. </td>
</tr>
<tr>
<td>2</td>
<td>LoremIpsumhasbeentheindustry'sstandarddummytexteversincethe1500s,whenanunknown</td>
<td>Lorem Ipsum has been the industry standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</td>
</tr>
<tr>
<td>3</td>
<td></td>
<td>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna...</td>
</tr>
</table>
</body>
</html>
DEMO:
table {border-collapse:collapse; table-layout:fixed; width:310px;}
table td {border:solid 1px #fab; width:100px; word-wrap:break-word;}
<table>
<tr>
<td>1</td>
<td>Lorem Ipsum</td>
<td>Lorem Ipsum is simply dummy text of the printing and typesetting industry. </td>
</tr>
<tr>
<td>2</td>
<td>LoremIpsumhasbeentheindustry'sstandarddummytexteversincethe1500s,whenanunknown</td>
<td>Lorem Ipsum has been the industry standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</td>
</tr>
<tr>
<td>3</td>
<td></td>
<td>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna...</td>
</tr>
</table>
Ответ 2
Его работы для меня.
<style type="text/css">
td {
/* css-3 */
white-space: -o-pre-wrap;
word-wrap: break-word;
white-space: pre-wrap;
white-space: -moz-pre-wrap;
white-space: -pre-wrap;
}
И атрибут table:
table {
table-layout: fixed;
width: 100%
}
Ответ 3
td {
overflow: hidden;
max-width: 400px;
word-wrap: break-word;
}
Ответ 4
Если вы используете загрузочную таблицу Bootstrap, просто установите максимальную ширину для одного конкретного столбца и сделайте перенос текста, сделав стиль этого столбца следующим, как показано ниже:
max-width:someValue;
word-wrap:break-word
Ответ 5
Это сработало для меня, когда мне нужно было отобразить "симпатичный" JSON в ячейке:
td { white-space:pre }
-
normal
: это значение предписывает пользовательским агентам свернуть последовательности пробелов и разбивать строки по мере необходимости, чтобы заполнить линейные блоки.
-
pre
: Это значение предотвращает свертывание пользовательских агентов последовательностями пробелов.
Строки прерываются только при сохраненных символах новой строки.
-
nowrap
: Это значение сворачивает пробел, как и в normal
, но подавляет разрывы строк в тексте.
-
pre-wrap
: Это значение предотвращает свертывание пользовательских агентов последовательностями пробелов.
Строки разбиваются при сохраненных символах новой строки и по мере необходимости заполняют поля строк.
-
pre-line
: Это значение указывает агентам пользователя свернуть последовательности пробелов.
Строки разбиваются при сохраненных символах новой строки и по мере необходимости заполняют поля строк.
(Также см. Больше в источнике.)
Ответ 6
Если вы хотите исправить столбец, вы должны установить ширину. Например:
<td style="width:100px;">some data</td>
Ответ 7
.wrappable {
overflow: hidden;
max-width: 400px;
word-wrap: break-word;
}
Я проверил с двоичными данными, и он отлично работает здесь.
Ответ 8
Это еще один способ решения проблемы, если у вас длинные строки (например, имена путей к файлу), и вы хотите только разбить строки на определенные символы (например, слэши). Вы можете вставить Unicode Zero Width Space символы перед (или после) косой чертой в HTML.
Ответ 9
Просто добавьте: word-break: break-word;
: word-break: break-word;
Вам класс таблицы.