Estou tendo problemas com uma tabela html que está transbordando seu contêiner pai.
.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>
Como forçar o texto do cabeçalho e o texto da célula da tabela a serem agrupados de forma que caibam no seu contêiner corretamente? Eu preferiria um método somente CSS, mas também estou aberto a usar Javascript (ou jQuery), se for absolutamente necessário.
fonte
word-wrap: break-word;
word-break: break-word
que funciona melhor.overflow-wrap
propriedade em vez disso, uma vez que é padronizadaAdicione
display: block;
eoverflow: auto;
para.my-table
. Isso simplesmente cortará qualquer coisa além do280px
limite que você aplicou. Não há como torná-lo "bonito" com esse requisito devido a palavras como aspélagosthrough
que são mais amplas que280px
.fonte
Tente adicionar a
td
:tds transbordados serão alinhados com a nova linha.
fonte
Bem, dadas as suas restrições, acho que definir
overflow: scroll;
a.page
div provavelmente é sua única opção. 280 px é bastante estreito e, dado o tamanho da fonte, o agrupamento de palavras por si só não é suficiente. Algumas palavras são longas e não podem ser quebradas. Você pode reduzir drasticamente o tamanho da fonte ou usar o excesso: rolar.fonte
atualize seu CSS para o seguinte: isso deve corrigir
fonte