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.

318voto

jim31415 Points 2884

Utilisez table-layout:fixed dans le tableau et word-wrap:break-word dans le td.

Voir cet exemple :

<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's 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's 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>

0 votes

Vous devriez ajouter le bit border-collapse:collapse à la partie supérieure de votre réponse afin que les personnes qui parcourent visuellement votre réponse puissent obtenir rapidement la réponse complète.

0 votes

Pour quelques modifications supplémentaires table {border-collapse:collapse ; table-layout:fixed;word-wrap:break-word;} table td { width:100px ; word-wrap:break-word;}

53voto

Lavekush Agrawal Points 1754

Cela fonctionne pour moi.

<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; 

}

Et l'attribut de la table est :

table { 
  table-layout: fixed;
  width: 100%
}

22voto

Jafstar Points 179
td {
overflow: hidden;
max-width: 400px;
word-wrap: break-word;
}

8voto

ashleedawg Points 12302

Cela a fonctionné pour moi lorsque j'ai eu besoin d'afficher un "joli" JSON dans une cellule :

td { white-space:pre }

En savoir plus sur le white-space propriété :

  • normal : Cette valeur indique aux agents utilisateurs de réduire les séquences d'espace blanc, et de rompre les lignes si nécessaire pour remplir les cases de ligne.

  • pre : Cette valeur empêche les agents utilisateurs de regrouper les séquences d'espaces blancs.
    Les lignes ne sont coupées qu'aux caractères de nouvelle ligne préservés.

  • nowrap : Cette valeur réduit l'espace blanc comme pour normal mais supprime les sauts de ligne dans le texte.

  • pre-wrap : Cette valeur empêche les agents utilisateurs de regrouper les séquences d'espaces blancs.
    Les lignes sont coupées aux caractères de nouvelle ligne préservés, et si nécessaire pour remplir les cases de ligne.

  • pre-line : Cette valeur indique aux agents utilisateurs de réduire les séquences d'espaces blancs.
    Les lignes sont coupées aux caractères de nouvelle ligne préservés, et si nécessaire pour remplir les cases de ligne.

(Pour en savoir plus, consultez le site source .)

4voto

Feng Han Points 171

Si vous utilisez le tableau réactif de Bootstrap et que vous souhaitez simplement définir la largeur maximale d'une colonne particulière et faire un habillage de texte, le style de cette colonne peut également être modifié comme suit

max-width:someValue;
word-wrap:break-word

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