2014-05-20 20 views
13

Soft break wydaje się nie działać w IE. Czy jest jakaś alternatywa czy jak to działa?tag wbr nie działa w IE

http://fiddle.jshell.net/88q54/1/

body { 
font-size: 272px;  
} 


<div>W<wbr/>o<wbr/>r<wbr/>d</div> 

chcę „słowo” być krucha, gdy nie pasuje do okna szerokość. Praca jest opakowana w webkit i mozila, ale nie w IE (10/11).

Wiem, że dla słów, które są łamliwe, mogę używać css word-break: break-all;

ale chcę być w stanie umieścić miękką przerwę w pewnej pozycji tego słowa, więc css word-break nie działa poprawnie dla mnie.

+1

css wordwrap: break-word; InterNet Explorer łamie słowo, gdy słowo przekroczy szerokość w miejscu, w którym znak przekracza limit. wbr nie może być użyty do łamania słów. jest używany wewnątrz bloków nobr do łamania zdań, ale nie słów –

+1

Jak zawsze mówią - " Nie be [nieśmiały] (https://developer.mozilla.org/en/docs/Web/CSS/hyphens#Suggesting_line_break_opportunities) " – CBroe

Odpowiedz

35

Dodaj następujące do swojego arkusza stylów:

wbr:after { content: "\00200B"; } 

to wstawienie U + 200B ZERO szerokości spacji, która jest odpowiednikiem charakter poziomu dobrego starego <wbr> że przeglądarki mają w dużej mierze zepsuty (a sad story).

Można również zastąpić tagi <wbr> przez tę postać, którą można napisać w HTML jako &#x200b;.

+0

Dzięki, że działa dobrze. – WHITECOLOR

+1

Dodano '& # x200b;', w którym możliwe jest dzielenie wyrazów. W moim przypadku po podkreśleniach ("_"). Działa idealnie w IE11 i Chrome 42 –

+1

wbr: after nie wydaje się działać dla IE11, ponieważ uważam, że byłby uważany za pusty tag. Zgodnie z tym postem: https://stackoverflow.com/a/24702765/2499165 większość przeglądarek nie implementuje: po dla pustych tagów. – jessewolfe

4

Jukka za answer jest dobry. Jednak w poniższym przypadku jest pożądane, aby zezwolić użytkownikowi na kopiowanie tekstu, którym jest adres e-mail. W tym scenariuszu postać &#x200b; nie może wkraść się do napisu. Dlatego musi zostać rozwiązany inaczej, używając wielu elementów śródliniowych (np. <span> lub <i>) z display: inline-block;.

W tym przypadku znaczniki <i> otaczają komponenty adresów e-mail zakończone znakiem . lub rozpoczynając od @.

.wbr-i-container i { 
    display: inline-block; 
    font-style: inherit; 
} 

<a class="wbr-i-container" 
><i>FirstName.</i 
><i>MiddleName.</i 
><i>LastName</i 
><i>@company.</i 
><i>com</i 
></a> 

<i> służy do zwięzłość & czytelności podczas <span> byłoby semantycznie poprawne.

Działa w bieżących wersjach Chrome, Firefox, IE i Safari.