Łamanie długich linii tekstu na Firefox

0

Mam taki kod służący do łamania długich linii tekstu, tak, aby <div> się nie rozjeżdzał:

@mixin break-word() {
  -ms-word-break: break-all;
  word-break: break-all;

  /* Non standard for webkit */
  word-break: break-word;

  -webkit-hyphens: auto;
  -moz-hyphens: auto;
  hyphens: auto;
}

Działa bardzo dobrze na Chrome, ale nie na IE oraz Firefox, na którym działa to zbyt "ambitnie". Tzn. łamie wyrazy w miejscach gdy nie jest to potrzebne:

screenshot-20161223101736.png

Jak można rozwiązać ten problem?

0

Moze tak:

word-break: break-word;
word-wrap: break-word;
0

Tak, ale w przypadku gdy ktoś napisze dłuuuuugą linię (aaaaaaaaaaaaaaaaa itd) to break-word nie zadziała, bo on (firefox) po takim ustawieniu rozbija linię w oparciu o słowa. Czyli użycie długiego wyrazu (albo URL) spowoduje, że layout się rozwali.

0

Niestety nie zadziała to dobrze. Nie pomoże to w sytuacji gdy ktoś wklei bardzo długi wyraz. Wtedy Firefox nie połamie takiej linii i wyraz "wyjdzie" poza <div>.

0

@Adam Boduch: nie wystarczyło by dodać max-width: 100% żeby wyraz nie wychodził poza diva?

0

Ustawienie szerokości kontenera nic tu nie daje. Szerokość będzie zachowana, ale tekst będzie wychodził poza <div>: https://jsfiddle.net/q56ebvto/

1

Chodziło mi o dorzucenie max-width mając już break-wordy, tak jak tu: https://jsfiddle.net/q56ebvto/2/
na firefoxie wygląda ok

0

Hmm, nie wiem czemu to nie działa:

screenshot-20170102124708.png

Na Chrome jest ok. Do przetestowania tutaj: https://dev.4programmers.info/Mikroblogi
Działa tylko wtedy gdy zdefiniuje szerokość w px.

1

@Adam Boduch: takie coś mi zadziałało, ale nie testowałem, czy nie psuje innych przeglądarek.
Dodane style do tego, co jest obecnie:

.microblog-text {
  display: table;
  overflow-wrap: break-word;
  table-layout: fixed;
  width: 100%;
}
1

Dzięki @Marooned. Sprawdziłem na Chrome oraz FF i wygląda dobrze :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1