159 votes

Comment forcer le contenu de la cellule de tableau <td> à s'enrouler ?

Voici la page entière * wrappable est défini dans un fichier 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;
}                

Voici la page entière :

<%@ 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>

Ça s'étire à chaque fois que je soumets.
Cette page se trouve également dans un div. Dois-je également définir la largeur de la division et du tableau ?

1 votes

Où êtes-vous en train de définir wrappable ?

2 votes

Où se trouve .wrappable classe définie ? quel navigateur utilisez-vous ?

0 votes

Le navigateur utilisé est particulièrement important - les anciennes versions d'IE ne supportent pas max-width . Il y a beaucoup d'autres choses qui pourraient être à l'origine du problème et il est impossible de le dire sans plus d'informations, mais c'est une solution qui peut être brisée.

3voto

Ajoute juste : word-break: break-word; à votre classe de table.

3voto

Je résous le problème en mettant une balise "p" à l'intérieur de ma balise "td" comme ceci :

<td><p class="">This is my loooooooong paragraph</p></td>

Ajoutez ensuite les propriétés suivantes à la classe, en utilisant la largeur maximale pour définir la largeur du champ que vous souhaitez obtenir

.p-wrap {
  max-width: 400px;
  word-wrap: break-word;
  white-space: pre-wrap;
  font-size: 12px;
}

1voto

Pooja Nandnikar Points 59

Si vous voulez envelopper les données dans un td, vous pouvez utiliser le code ci-dessous

td{
    width:60%;
    word-break: break-word;
    }

0voto

Evgeniy Points 399

Si vous voulez fixer la colonne, vous devez définir la largeur. Par exemple :

<td style="width:100px;">some data</td>

1 votes

J'ai essayé cela... cela continue à étendre le tableau pour une raison quelconque <td id="commentaires-${comments.id}" class="wrappable" style="width:100px">${comments.comment}</td>.

0voto

jaip Points 31
.wrappable { 
      overflow: hidden; 
      max-width: 400px; 
      word-wrap: break-word; 
}

J'ai testé avec les données binaires et cela fonctionne parfaitement ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X