Firefox ломает слово от слеша - PullRequest
6 голосов
/ 29 мая 2019

Почему Firefox разбивает слова из / (косая черта) и - (дефис) в строки.

Пример с / и -

table {
  width: 100%;
}
<table>
  <tbody>
    <tr>
      <td>
        LoremipsumdolorsitametconsecteturadipisicingelitLaboredistinctionamdoloresmodiamet/etblanditiisarchitectsundolorem/qnullobcaecatnobilibermollitia/sialiquiodiomagncommodi.

      </td>
    </tr>
  </tbody>
</table>

Пример без / и -

table {
  width: 100%;
}
<table>
  <tbody>
    <tr>
      <td>
        LoremipsumdolorsitametconsecteturadipisicingelitLaboredistinctionamdoloresmodiametetblanditiisarchitectsundoloremqnullobcaecatnobilibermollitiasialiquiodiomagncommodi.
      </td>
    </tr>
  </tbody>
</table>

Оба примера хорошо работают в других браузерах, я пробовал overflow-wrap, но не работал.

Я использую Firefox 67.0 (64-bit).

Пожалуйста, откройте его в Firefox.

Ответы [ 5 ]

6 голосов
/ 03 июня 2019

Похоже, что Mozilla рассматривает / и - в качестве разделителей пробелов. После небольшого исследования я предлагаю экранировать / и - с его html-эквивалентным кодом, прежде чем отправлять его в таблицу.

UPDATE
Нашел еще одно чистое CSS-решение, которое работает и в Mozilla

table {
  width: 100%;
}

table td { 
    word-break: keep-all; 
}
<table>
  <tbody>
    <tr>
      <td>
        LoremipsumdolorsitametconsecteturadipisicingelitLaboredistinctionamdoloresmodiamet/etblanditiisarchitectsundolorem/qnullobcaecatnobilibermollitia/sialiquiodiomagncommodi.

      </td>
    </tr>
  </tbody>
</table>

Вот небольшой фрагмент JS, который экранирует / и - в его эквивалентном HTML-коде.

var str = 'Loremipsumdolorsitametconsectetura-dipisicingelitLaboredistinctionamdol-oresmodiamet/etblanditiisarchitectsundolorem/qnullobcaecatnobilibermollitia/sialiquiodiomagncommodi.';

const escaped = str.replace(/\//g, '&#47;').replace(/-/g, '&#45;');
0 голосов
/ 09 июня 2019

Если идея не прерывать линию вообще, тогда вы можете использовать white-space: nowrap;.

0 голосов
/ 09 июня 2019

Просто добавьте word-break: keep-all; к тд в CSS, у меня работает

0 голосов
/ 06 июня 2019

table {
  width: 100%;
}
table tr td {
    word-break: break-all;
}
<table>
  <tbody>
    <tr>
      <td>
        LoremipsumdolorsitametconsecteturadipisicingelitLaboredistinctionamdoloresmodiamet/etblanditiisarchitectsundolorem/qnullobcaecatnobilibermollitia/sialiquiodiomagncommodi.
      </td>
    </tr>
  </tbody>
</table>
0 голосов
/ 29 мая 2019

Возможно, вы захотите попробовать HTML-код для прямого слэша и тире.

For / use &#47;
For - use &#8211;

Подробнее здесь: https://www.ascii.cl/htmlcodes.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...