У меня есть этот код:
.mydiv {
display: table;
table-layout: fixed;
width: auto;
max-width: 448px;
height: 56px;
}
.mydiv span {
display: table-cell;
vertical-align: middle;
overflow: hidden;
}
<div class="mydiv">
<span></span>
</div>
В большинстве случаев это работает нормально, так как по умолчанию, если текст длиннее строки, строка разрывается в ближайшем месте, а слова никогда не делятся на полуслова. Хорошо.
Но в единственном случае, когда в предложении нет пробелов (такого не должно быть, но люди есть люди), интерфейс сломается, и длинное слово останется на одной строке.
Есть ли способ расставить приоритеты css, чтобы, ЕСЛИ есть пробелы, предложение обрезалось без вырезания слов (перенос слов: break-word;), но ЕСЛИ слово больше строки, строка разрывается, вырезая слово (word-break: break-all;), чтобы избежать визуальной катастрофы. В этой последовательности.
До сих пор, если я использую "word-wrap: break-word;", одно длинное слово останется на одной строке, какой бы ни была его длина, и если я использую "word-break: break-all;" тогда слова будут разбиты, даже если раньше были свободные места. ни одно из этих стандартных решений не помогает.
Любая помощь будет оценена по достоинству.
Я бы предпочел решение CSS, но если это невозможно, подойдет и решение JS/jQuery.
PS: мне нужно, чтобы div имел автоматическую ширину с максимальной шириной, и мне нужно, чтобы диапазон оставался ячейкой таблицы.