Jaka jest dokładna różnica między overflow-wrap
/ word-wrap
i word-break
? I czy ktoś może mi powiedzieć, co jest lepsze do zrywania bardzo długich połączeń? Większość ludzi twierdzi, że powinieneś używać łamania słów w połączeniu z, overflow-wrap
ale nie wygląda to zbyt logicznie. Myślę, że najlepszą metodą jest używanie overflow-wrap
w połączeniu z word-wrap
lepszą obsługą różnych przeglądarek. Co myślisz?
html
css
word-wrap
word-break
Anzelm
źródło
źródło
overflow-wrap
iword-wrap
powinny być w 100% identyczne funkcjonalności. Osobiście odnoszę wrażenie, żeword-wrap
powinno to być używane tylko do obsługi starszych przeglądarek i że może zostać wycofane lub usunięte w przyszłej wersji CSS.word-wrap
zword-break
word-wrap
. Chodzi o toword-break
. Zamknięcie tego jako zduplikowanego pytania nie ma sensu.Odpowiedzi:
Cytowanie ze źródła
zawijanie tekstu: właściwość CSS zawijania słów służy do określania, czy przeglądarka może łamać wiersze w słowach, aby zapobiec przepełnieniu, gdy w inny sposób nierozerwalny ciąg jest zbyt długi, aby zmieścić się w polu zawierającym.
overflow-wrap :
word-wrap
nazwa właściwości została zmienionaoverflow-wrap
w bieżącej wersji roboczej specyfikacji CSS3 Textpodział słów: Właściwość CSS dzielenia wyrazów służy do określania sposobu (lub czy) łamania linii w wyrazach
Potrzebujesz więc dzielenia wyrazów w połączeniu z zawijaniem, co jest właściwą kombinacją.
źródło
word-wrap
jest wystarczające, ale jeśli szerokość kontenera jest ograniczona, układ może zostać pomieszany.Pomaga zrozumieć, że w tym momencie
word-break: break-word
jest to tak naprawdę alias dlaoverflow-wrap: anywhere
.word-break: break-word
jest oficjalnie przestarzały; zobacz wersję roboczą modułu tekstowego CSS poziomu 3 :Należy tutaj zauważyć, że
word-break: break-word
jest to alias dlaoverflow-wrap: anywhere
, a NIE alias dlaoverflow-wrap: break-word
.(
word-break: normal
to tylko domyślna wartość dlaword-break
, więc możesz ją zignorować, chyba że ustawiasz inną wartośćword-break
).Czym się różnią
overflow-wrap: anywhere
i czymoverflow-wrap: break-word
różnią?Jedyna różnica w dokumentacji między nimi polega na tym, że
overflow-wrap: anywhere
„ bierze pod uwagę możliwości miękkiego zawijania wprowadzone przez podział słów” podczas „obliczania wewnętrznych rozmiarów minimalnej zawartości”, podczas gdyoverflow-wrap: break-word
NIE.Myślę, że szerokości mogą być dokładniejsze w niektórych przypadkach, jeśli je rozważa?
źródło
Oto dokładne różnice: (na podstawie testów w Chrome v81 i potwierdzeniu moich obserwacji przez odniesienie do specyfikacji)
Biała przestrzeń
normal
(domyślnie): zwija łańcuchy białych znaków i znaki końca linii; dodajenowrap
znaki końca wierszy w razie potrzeby : zwija łańcuchy białych znaków i znaki końca wiersza; nie dodajepre-line
znaków końca linii : zwija łańcuchy białych znaków; w razie potrzeby dodaje znaki końca wierszapre-wrap
: brak zwijania; w razie potrzeby dodaje znaki końca wierszabreak-spaces
: to samo, co zawijanie wstępne, z wyjątkiem spacji, które mogą wyzwalać dodawanie znaków podziału wierszapre
: brak zwijania; nie dodaje znaków końca liniiUwaga: Jeśli wybrana
white-space
wartość zawiera „nie dodaje znaków końca wiersza”, nie można zastosować podziału wiersza następujących właściwości (tj. Zignorować).podział słów
normal
(domyślnie): przerywa linię na końcu ostatniego słowa mieszczącego się w kontenerze [jeśli istnieje], w przeciwnym razie linia pozostaje nieprzerwanabreak-word
: przerywa linię na końcu ostatniego słowa mieszczącego się w kontenerze [jeśli istnieje], w przeciwnym razie na końcu kontenerabreak-all
: przerywa linię na koniec kontenera [można podzielić słowo, nawet z pobliskimi białymi znakami]overflow-wrap (starsza nazwa: zawijanie słów)
normal
(domyślnie): przerywa linię na końcu ostatniego słowa pasującego do kontenera [jeśli istnieje], w przeciwnym razie linia pozostaje nieprzerwanabreak-word
: przerywa linię na końcu ostatniego słowa mieszczącego się w kontenerze [jeśli istnieje], w przeciwnym razie na końcu kontenera [jeśli nie jest -flex kontener], w przeciwnym razie linia pozostaje nieprzerwanaanywhere
: przerywa linię na końcu ostatniego słowa pasującego do kontenera [jeśli istnieje], w przeciwnym razie na końcu kontenera [tak samo jakword-break: break-word
]Zauważ, że dla
overflow-wrap: break-word
(jak w przypadku dowolnej kombinacji, która pozostawia linie zbyt długie dla kontenera), nieprzerwana linia może spowodować rozszerzenie kontenera elastycznego poza określony współczynnik elastyczności (zmuszając inne pojemniki elastyczne do skurczenia się, aby uwzględnić zbyt długą zawartość).źródło