Секрет в том, чтобы использовать word-break:break-all
в каждой <td>
ячейке.
В качестве альтернативы вы можете использовать overflow-wrap
, но ведет себя аналогично.
Примечание: В отличие от переноса по словам, перенос через переполнение создает разрыв только в том случае, если целое слово не может быть помещено в собственную строку без переполнения.
Вот полная статья , сравнивающая их обоих
table{
width: 400px;
border: 1px dashed salmon;
}
table td{
vertical-align: top;
padding: 5px;
word-break: break-all; /* MUST ADD THIS */
}
table td:nth-child(1){
text-align: right;
width: 140px;
}
<table>
<tr>
<td>Your name:
<td>David
</tr>
<tr>
<td>Your city:
<td>Prageu
</tr>
<tr>
<td>Your Informations:
<td>myinfomyinfomyinfomyinfomyinfomyinfomyinfomyinfomyinfomyinfomyinfomyinfomyinfomyinfo
</tr>
</table>
Я очистил вашу разметку HTML, нет необходимости в обертывании тегов div
и p
внутри ячеек таблицы.