Heres the entire page * wrappable is defined in a main.css file
/* 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;
}
Heres the entire page:
<%@ 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>
It just stretches every time I submit.
This page is within a div also. Do I need to set the width of the div and the table also?
This question is related to
html
css
html-table
This worked for me when I needed to display "pretty" JSON in a cell:
td { white-space:pre }
white-space
property:
normal
: This value directs user agents to collapse sequences of white space, and break lines as necessary to fill line boxes.
pre
: This value prevents user agents from collapsing sequences of white space.
Lines are only broken at preserved newline characters.
nowrap
: This value collapses white space as fornormal
, but suppresses line breaks within text.
pre-wrap
: This value prevents user agents from collapsing sequences of white space.
Lines are broken at preserved newline characters, and as necessary to fill line boxes.
pre-line
: This value directs user agents to collapse sequences of white space.
Lines are broken at preserved newline characters, and as necessary to fill line boxes.
(Also, see more at the source.)
.wrappable {
overflow: hidden;
max-width: 400px;
word-wrap: break-word;
}
I have tested with the binary data and its working perfectly here.
If you want fix the column you should set width. For example:
<td style="width:100px;">some data</td>
I solve it putting a "p" tag inside of my "td" tag like this:
<td><p class="">This is my loooooooong paragraph</p></td>
Then add this properties to the class, using max-width to define how wide you want your field to be
.p-wrap {
max-width: 400px;
word-wrap: break-word;
white-space: pre-wrap;
font-size: 12px;
}
Just add: word-break: break-word;
to you table class.
Its works for me.
<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;
}
And table attribute is:
table {
table-layout: fixed;
width: 100%
}
if you want to wrap the data in td then you can use the below code
td{
width:60%;
word-break: break-word;
}
td {
overflow: hidden;
max-width: 400px;
word-wrap: break-word;
}
This is another way of tackling the problem if you have long strings (like file path names) and you only want to break the strings on certain characters (like slashes). You can insert Unicode Zero Width Space characters just before (or after) the slashes in the HTML.
If you are using Bootstrap responsive table, just want to set the maximum width for one particular column and make text wrapping, making the the style of this column as following also works
max-width:someValue;
word-wrap:break-word
Source: Stackoverflow.com