Я использовал, word-wrap: break-word
чтобы обернуть текст в div
с и span
с. Тем не менее, он не работает в ячейках таблицы. У меня есть таблица width:100%
с одной строкой и двумя столбцами. Текст в столбцах, хотя и оформлен в соответствии с вышеприведенным word-wrap
, не переносится. Это заставляет текст проходить границы ячейки. Это происходит в Firefox, Google Chrome и Internet Explorer.
Вот как выглядит источник:
td {
border: 1px solid;
}
<table style="width: 100%;">
<tr>
<td>
<div style="word-wrap: break-word;">
Looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong word
</div>
</td>
<td><span style="display: inline;">Short word</span></td>
</tr>
</table>
Длинное слово выше, чем границы моей страницы, но не противоречит приведенному выше HTML. Я попробовал предложенные ниже добавления text-wrap:suppress
и text-wrap:normal
, но ни один не помог.
html
css
html-table
psychotik
источник
источник
white-space: pre-wrap
developer.mozilla.org/en-US/docs/Web/CSS/white-spaceОтветы:
Следующее работает для меня в Internet Explorer. Обратите внимание на добавление
table-layout:fixed
атрибута CSSисточник
<colgroup>
, он исправил это для меня.или
источник
<span>
.Word-wrap
будет нарушать слова только когда это необходимоtable-layout: fixed;
.Длинный выстрел, но перепроверьте с Firebug (или подобным), что вы случайно не унаследовали следующее правило:
Это может переопределить указанное вами поведение разрыва строки.
источник
white-space:normal;
Оказывается, нет хорошего способа сделать это. Самое близкое, что я пришел, это добавление «переполнение: скрытое»; к div вокруг стола и потерять текст. Похоже, реальным решением было бы бросить стол. Используя div и относительное позиционирование, я смог достичь того же эффекта, минус наследие
<table>
ОБНОВЛЕНИЕ 2015: Это для тех как я, кто хочет этот ответ. Через 6 лет это работает, спасибо всем авторам.
источник
Как уже упоминалось, размещение текста
div
почти работает. Вы просто должны указатьwidth
изdiv
, который, к счастью для макетов , которые являются статическими.Это работает на FF 3.6, IE 8, Chrome.
источник
min-width: 100%
вместе,width
чтобы убедиться, чтоdiv
занимает всю ячейку.Long,Long,Long,Long,Long
. Я хочу обернуть это после любой запятой (,).Обходной путь, который использует overflow-wrap и отлично работает при обычной компоновке таблицы + ширина таблицы 100%
https://jsfiddle.net/krf0v6pw/
HTML
CSS
Льготы:
overflow-wrap:break-word
вместоword-break:break-all
. Что лучше, потому что сначала он пытается разбить пробелы и обрезает слово, только если слово больше его контейнера.table-layout:fixed
необходимости Используйте свой обычный авто-размер.width
или фиксированныйmax-width
в пикселях. Определите%
родителя, если это необходимо.Протестировано в FF57, Chrome62, IE11, Safari11
источник
Измени свой код
в
пример
источник
break-word
в первую очередь.Проблема с
является то, что он будет работать не очень хорошо, когда в тексте есть пробелы, например
Если слово
andthenlongerwithoutspaces
вписывается в ячейку таблицы в одну строку, ноlong text with andthenlongerwithoutspaces
это не так, длинное слово будет разбито на две, а не переносится.Альтернативное решение: вставьте U + 200B ( ZWSP ), U + 00AD ( мягкий дефис ) или U + 200C ( ZWNJ ) в каждое длинное слово после каждого, скажем, 20-го символа (однако, см. Предупреждение ниже):
Предупреждение : вставка дополнительных символов нулевой длины не влияет на чтение. Однако это влияет на текст, скопированный в буфер обмена (эти символы, конечно, также копируются). Если текст буфера обмена позже используется в какой-либо функции поиска в веб-приложении ... поиск будет прерван. Хотя это решение можно увидеть в некоторых известных веб-приложениях, по возможности избегайте его.
Предупреждение : при вставке дополнительных символов не следует разделять несколько кодовых точек внутри графемы. См. Https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries для получения дополнительной информации.
источник
é
могут быть записаны как две кодовые точки). Мы, вероятно, на самом деле имеем в виду «графемы», но я не знаю ни одного языка, который бы упрощал их обход.Проверьте это демо
Вот ссылка для чтения
источник
break-all
приведет к тому, что браузер полностью проигнорирует разрывы слов при принятии решения о том, где ставить разрывы строк, с тем эффектом, что даже если ваша ячейка содержит нормальную прозу без каких-либо очень длинных слов, вы в конечном итоге получите разрывы строк в середине слов. Это обычно нежелательно.Протестировано в IE 8 и Chrome 13.
Это приводит к тому, что таблица соответствует ширине страницы, а каждый столбец занимает 50% ширины.
Если вы предпочитаете первый столбец занимает больше страницы, добавить
width: 80%
к ,td
как в следующем примере, заменив 80% с процентом по вашему выбору.источник
Единственное, что нужно сделать, - это добавить ширину к внутренней
<td>
или<div>
внутренней части в<td>
зависимости от макета, который вы хотите достичь.например:
или
источник
Ответ, который выиграл награду, является правильным, но он не работает, если первая строка таблицы имеет объединенную ячейку (все ячейки имеют одинаковую ширину).
В этом случае вы должны использовать
colgroup
иcol
тег , чтобы отобразить его должным образом:источник
источник
p
в ячейке таблицы, которая не имеет фиксированной ширины пикселя, почти наверняка приведет кp
переполнению или невозможности заполнения ячейки таблицы.Похоже, вам нужно установить
word-wrap:break-word;
на элемент блока (div
), с указанной (не относительной) шириной. Пример:или, воспользовавшись предложением
word-break:break-all
Абхишека Саймона.источник
Это работает для меня:
И атрибут таблицы:
источник
table-layout: fixed
, но уже есть гораздо более старый ответ, предлагающий это, так что этот ответ не добавляет никакой новой информации.Если вам не нужна граница таблицы, примените это:
источник
table-layout: fixed
; этот не добавляет ничего нового на страницу.Я нашел решение, которое работает в Firefox, Google Chrome и Internet Explorer 7-9. Для раскладки таблицы из двух столбцов с длинным текстом на одной стороне. Я все время искал похожую проблему, и то, что работало в одном браузере, сломало другое, или добавление дополнительных тегов в таблицу просто кажется плохим кодированием.
Я НЕ использовал таблицу для этого. DL DT DD на помощь. По крайней мере, для исправления двухколоночной разметки, это в основном глоссарий / словарь / настройка значения слова.
И немного общего стиля.
Используя плавающий перенос слов и оставленное поле, я получил именно то, что мне было нужно. Просто подумал, что поделюсь этим с другими, может быть, это поможет кому-то другому с макетом стиля определения из двух столбцов, с трудностями при получении слов для переноса.
Я попытался использовать перенос слов в ячейке таблицы, но он работал только в Internet Explorer 9 (и, конечно, в Firefox и Google Chrome), пытаясь исправить поврежденный браузер Internet Explorer здесь.
источник
Таблицы переносятся по умолчанию, поэтому убедитесь, что отображаются ячейки таблицы
table-cell
:источник
style = "table-layout: fixed; width: 98%; перенос по словам: break-word"
Демо - http://jsfiddle.net/Ne4BR/749/
Это отлично сработало для меня. У меня были длинные ссылки, из-за которых таблица превышала 100% в веб-браузерах. Протестировано на IE, Chrome, Android и Safari.
источник
table-layout: fixed
».Решение, которое работает с Google Chrome и Firefox (не протестировано с Internet Explorer), заключается в установке
display: table-cell
в качестве элемента блока.источник
Вы можете попробовать это, если вам подходит ...
Поместите текстовую область в ваш тд и отключите его белым цветом фона и определите его количество строк.
источник