Okej, to mnie naprawdę dezorientuje. Mam trochę treści w div, takie jak:
<div style="background-color: green; width: 200px; height: 300px;">
Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.Thisisatest.
</div>
Jednak treść przepełnia DIV (zgodnie z oczekiwaniami), ponieważ „słowo” jest za długie.
Jak mogę zmusić przeglądarkę do „złamania” słowa w razie potrzeby, aby zmieściło się w całej zawartości?
html
css
line-breaks
Nathan Osman
źródło
źródło
Odpowiedzi:
Posługiwać sięword-wrap:break-word;
Działa nawet w IE6, co jest miłym zaskoczeniem.word-wrap: break-word
został zastąpiony tym,overflow-wrap: break-word;
który działa w każdej nowoczesnej przeglądarce. IE, jako martwa przeglądarka, zawsze będzie polegać na przestarzałym i niestandardowymword-wrap
.Istniejące obecnie zastosowania
word-wrap
nadal działają, ponieważ jest to alias dlaoverflow-wrap
specyfikacji.źródło
table-layout: fixed;
do stołuword-wrap: break-word
nie działało dla mnie, aleword-break: break-word
jak sugeruje @rahul poniżej działało.Nie jestem pewien kompatybilności przeglądarki
Możesz także użyć
<wbr>
znacznikaźródło
Można to dodać do zaakceptowanej odpowiedzi w przypadku rozwiązania „dla wielu przeglądarek”.
Źródła:
źródło
Właśnie googlowałem ten sam problem i swoje ostateczne rozwiązanie opublikowałem TUTAJ . Dotyczy to również tego pytania.
Możesz to łatwo zrobić za pomocą div, nadając mu styl
word-wrap: break-word
(i może być konieczne ustawienie jego szerokości).Jednak dla tabel , trzeba także stosować:
table-layout: fixed
. Oznacza to, że szerokości kolumn nie są już płynne, ale są zdefiniowane na podstawie szerokości kolumn tylko w pierwszym rzędzie (lub poprzez określone szerokości). Przeczytaj więcej tutaj .Przykładowy kod:
źródło
width: 100%;
było jedynym sposobem, aby uruchomić to dla mnie na FF i chrome!​
jest jednostką HTML dla znaku Unicode zwanego przestrzenią zerowej szerokości (ZWSP), która jest niewidocznym znakiem określającym możliwość łamania linii. Podobnie celem łącznika jest określenie możliwości przełamania linii w granicach słowa.źródło
​
ma niższy priorytet niż biała spacja (tzn. Jeśli w pobliżu jest biała linia, zamiast tego zostanie przerwana biała spacja).<wbr/>
ekwiwalentem Unicode, którego szukałemStwierdzono, że korzystanie z poniższych działało w większości głównych przeglądarek (Chrome, IE, Safari iOS / OSX) z wyjątkiem Firefoksa (v50.0.2) podczas korzystania z Flexboksa i polegania na nim
width: auto
.Uwaga: może być konieczne dodanie prefiksów dostawcy przeglądarki, jeśli nie używasz autoprefiksera.
Inną rzeczą, na którą należy zwrócić uwagę, jest to, że użycie tekstu
do spacji może powodować łamanie wiersza w środku słowa.źródło
CSS
word-wrap:break-word;
, testowany w FireFox 3.6.3źródło
Rozwiązałem problem z kodem poniżej.
źródło
Usunąć
white-space: nowrap
, jeśli istnieje.Wprowadzić w życie:
źródło
Biała spacja jest zachowywana przez przeglądarkę. Tekst będzie zawijany, gdy to konieczne, i przerwy w linii
PRÓBNY
źródło
Z MDN :
Możesz więc użyć:
Czy mogę użyć ?
źródło
Najpierw powinieneś określić szerokość swojego elementu. Na przykład:
tak, że gdy tekst osiągnie szerokość elementu, zostanie podzielony na linie.
źródło
Jak wspomniano w odpowiedzi @ davidcondrey, istnieje nie tylko ZWSP, ale także SHY,
­ ­
którego można używać w bardzo długich, skonstruowanych słowach (myślenie w języku niemieckim lub holenderskim), które należy rozbić w miejscu, w którym chcesz. Niewidoczny, ale zapewnia łącznik w momencie, gdy jest potrzebny, dzięki czemu słowo jest połączone, a linia wypełniona do końca.W ten sposób można zauważyć słowo luchthavenpolitieagent ,
lucht­haven­politie­agent
które daje dłuższe części niż sylaby tego słowa.Chociaż nigdy nie czytałem na ten temat niczego oficjalnego, te miękkie myślniki potrafią uzyskać wyższy priorytet w przeglądarkach niż oficjalne myślniki w pojedynczych słowach konstruktu ( jeśli w ogóle mają jakieś rozszerzenie).
W praktyce żadna przeglądarka nie jest w stanie sama złamać tak długiego, skonstruowanego słowa; na mniejszych ekranach, w wyniku czego powstaje nowa linia, aw niektórych przypadkach nawet linia jednego słowa (na przykład, gdy następują dwa z tych skonstruowanych słów).
FYI: holenderski dla funkcjonariusza policji na lotnisku
źródło
dzielenie wyrazów: normalne wydaje się być lepsze niż dzielenie wyrazów: dzielenie wyrazów, ponieważ słowo dzielące łamie początkowe, takie jak EN
źródło
Zrób to:
źródło
po prostu spróbuj tego w naszym stylu
źródło
normal
jestwhite-space
wartością domyślną . Myślę, że dodanie go nie miałoby wpływu na przykład w pytaniu. Popraw mnie, jeśli się mylę.