J'ai des problèmes avec une table html qui déborde de son conteneur parent.
.page {
width: 280px;
border:solid 1px blue;
}
.my-table {
word-wrap: break-word;
}
.my-table td {
border:solid 1px #333;
}
<div class="page">
<table class="my-table">
<tr>
<th>Header Text</th>
<th>Col 1</th>
<th>Col 2</th>
<th>Col 3</th>
<th>Col 4</th>
<th>Header Text</th>
</tr>
<tr>
<td>An archipelago is a chain or cluster of islands. The word archipelago is derived from the Greek ἄρχι- – arkhi and πέλαγος – pélagosthrough the Italian arcipelago. In Italian, possibly following a tradition of antiquity, the Arcipelago (from medieval Greek *ἀρχιπέλαγος) was the proper name for the Aegean Sea and, later, usage shifted to refer to the Aegean Islands (since the sea is remarkable for its large number of islands). It is now used to refer to any island group or, sometimes, to a sea containing a large number of scattered islands such as the Aegean Sea.[1]</td>
<td>some data</td>
<td>some data</td>
<td>some data</td>
<td>some data</td>
<td>An archipelago is a chain or cluster of islands. The word archipelago is derived from the Greek ἄρχι- – arkhi and πέλαγος – pélagosthrough the Italian arcipelago. In Italian, possibly following a tradition of antiquity, the Arcipelago (from medieval Greek *ἀρχιπέλαγος) was the proper name for the Aegean Sea and, later, usage shifted to refer to the Aegean Islands (since the sea is remarkable for its large number of islands). It is now used to refer to any island group or, sometimes, to a sea containing a large number of scattered islands such as the Aegean Sea.[1]</td>
</tr>
</table>
</div>
Comment puis-je forcer le texte de l'en-tête et le texte de la cellule du tableau à s'habiller de manière à ce qu'ils tiennent correctement dans son conteneur? Je préférerais une méthode CSS uniquement, mais je suis également ouvert à l'utilisation de Javascript (ou jQuery) si cela est absolument nécessaire.
la source
word-wrap: break-word;
word-break: break-word
ce qui fonctionne le mieux.overflow-wrap
propriété à la place, car elle est normaliséeAjouter
display: block;
etoverflow: auto;
à.my-table
. Cela coupera simplement tout ce qui dépasse la280px
limite que vous avez imposée. Il n'y a aucun moyen de le rendre "joli" avec cette exigence en raison de mots commepélagosthrough
qui sont plus larges que280px
.la source
Essayez d'ajouter à
td
:Le tds débordé s'alignera sur la nouvelle ligne.
la source
Eh bien, compte tenu de vos contraintes, je pense que le réglage
overflow: scroll;
sur le.page
div est probablement votre seule option. 280 px est assez étroit, et étant donné la taille de votre police, le retour à la ligne seul ne suffira pas. Certains mots sont simplement longs et ne peuvent pas être enveloppés. Vous pouvez soit réduire considérablement la taille de votre police, soit opter pour le débordement: scroll.la source
mettez à jour votre CSS comme suit: cela devrait corriger
la source