Ответ 1
Переполнение стека решает аналогичную проблему с длинными строками кода с помощью DIV и имеет overflow-x:auto
. CSS не может разбить слова для вас.
У меня есть таблица, содержащая ячейки с текстом разной длины. Важно, чтобы все ячейки таблицы имели одинаковую ширину. Если это означает усечение длинных слов или принуждение прерывания длинными словами, тогда это ОК.
Я не могу понять, как заставить это работать.
Это для внутреннего клиентского приложения, поэтому он должен работать только в IE6 и IE7.
Ниже приведен пример страницы. Ячейка, содержащая onereallylongword
, является оскорбительной.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
td { width: 30px; }
</style>
</head>
<body>
<table border="2">
<tr>
<td>word</td>
<td>two words</td>
<td>onereallylongword</td>
</tr>
</table>
</body>
</html>
Переполнение стека решает аналогичную проблему с длинными строками кода с помощью DIV и имеет overflow-x:auto
. CSS не может разбить слова для вас.
Пока вы фиксируете ширину самой таблицы и устанавливаете свойство table-layout, это довольно просто:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
td { width: 30px; overflow: hidden; }
table { width : 90px; table-layout: fixed; }
</style>
</head>
<body>
<table border="2">
<tr>
<td>word</td>
<td>two words</td>
<td>onereallylongword</td>
</tr>
</table>
</body>
</html>
Я тестировал это в IE6 и 7, и, похоже, он работает нормально.
Если вы хотите, чтобы длинный текст был правильно завершен в новых строках, тогда в вашем вызове id таблицы используйте свойство css table-layout:fixed;
, иначе просто css не сможет сломать длинный текст в новых строках.
Попробуйте следующее:
text-overflow: ellipsis;
overflow: hidden;
white-space:nowrap;
Я понимаю, что вам нужно решение для IE6/7, но я просто бросаю это для кого-то еще.
Если вы не можете использовать table-layout: fixed
, и вам все равно, что IE < 9 это работает для всех браузеров.
td {
overflow-x: hidden;
overflow-y: hidden;
white-space: nowrap;
max-width: 30px;
}
<style type="text/css">
td { word-wrap: break-word;max-width:50px; }
</style>
попробуйте td {background-color:white}
Он просто работал для столбца, который я не хотел растоптать предыдущим длинным текстом столбца.