Ответ 1
Используйте word-wrap: break-word,
Он даже работает в IE6, что является приятным сюрпризом.
Хорошо, это меня действительно сбивает с толку. У меня есть некоторый контент внутри div так:
<div style="background-color: green; width: 200px; height: 300px;">
Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.
</div>
Однако содержимое переполняет DIV (как и ожидалось), потому что "слово" слишком длинное.
Как заставить браузер "сломать" слово, где необходимо, чтобы вместить все содержимое внутри?
Используйте word-wrap: break-word,
Он даже работает в IE6, что является приятным сюрпризом.
Я не уверен в совместимости с браузером
word-break: break-all;
Также вы можете использовать <wbr>
тег
<wbr>
(слово break) означает: "Браузер может вставить здесь разрыв строки, если он пожелания". Это браузер не думает разрыв строки не нужен случается.
Это может быть добавлено к принятому ответу для решения "кросс-браузер".
Источники:
.your_element{
-ms-word-break: break-all;
word-break: break-all;
/* Non standard for webkit */
word-break: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
hyphens: auto;
}
Я был просто тем же вопросом в Googling и опубликовал свое окончательное решение ЗДЕСЬ. Это также относится к этому вопросу, поэтому я надеюсь, что вы не против репоста.
Вы можете сделать это легко с помощью DIV, указав ему стиль word-wrap: break-word
(и вам также может понадобиться установить его ширину).
div {
word-wrap: break-word; /* All browsers since IE 5.5+ */
overflow-wrap: break-word; /* Renamed property in CSS3 draft spec */
width: 100%;
}
Однако для таблиц вам также необходимо применить: table-layout: fixed
. Это означает, что ширины столбцов больше не являются текучими, но определяются на основе ширины столбцов только в первой строке (или с помощью указанной ширины). Подробнее читайте здесь.
Пример кода:
table {
table-layout: fixed;
width: 100%;
}
table td {
word-wrap: break-word; /* All browsers since IE 5.5+ */
overflow-wrap: break-word; /* Renamed property in CSS3 draft spec */
}
Надеюсь, что кто-то поможет.
​
- это объект HTML для символа Юникода, называемый пространством нулевой ширины (ZWSP), который является невидимым символом, который указывает возможность прерывания строки. Точно так же дефинитивная цель - указать возможность прерывания строки в пределах границы слова.
CSS word-wrap:break-word;
, протестирован в FireFox 3.6.3
Установлено, что при использовании flex-box и использовании width: auto
в большинстве основных браузеров используется Chrome, IE, Safari iOS/OSX, кроме Firefox (v50.0.2).
.your_element {
word-wrap: break-word;
overflow-wrap: break-word;
word-break: break-word;
}
Примечание: вам может потребоваться добавить префикс поставщика браузера, если вы не используете автоприемник.
Еще одна вещь, на которую следует обратить внимание, - это текст, использующий
для интервала, может вызвать разрывы строк в среднем слове.
Сначала вы должны определить ширину вашего элемента. Например:
<div id="sampleDiv">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>
#sampleDiv{
width: 80%;
word-wrap:break-word;
}
так что, когда текст достигнет ширины элемента, он будет разбит на строки.
Я решил проблему с кодом ниже.
display: table-caption;
От MDN:
Свойство CSS
overflow-wrap
указывает, должен ли браузер вставлять разрывы строк в словах, чтобы предотвратить переполнение содержимого его содержимого.В отличие от
word-break
,overflow-wrap
создаст только разрыв, если целое слово не может быть помещено на собственную строку без переполнения.
Итак, вы можете использовать:
overflow-wrap: break-word;
просто попробуйте это в нашем стиле
white-space: normal;
Сделайте это:
<div id="sampleDiv">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>
#sampleDiv{
overflow-wrap: break-word;
}