2012-09-11 22 views
5

Właśnie odkryłem ten mały klejnot błędu IE9. Wydaje się, że IE9 nie rozpoznaje spacji poprzedzającej kropkę jako punkt przełomowy. Jak na liście domen lub rozszerzeń plików. Otwórz następujące skrzypce w IE9.IE9 Okres Wrap Bug

http://jsfiddle.net/cssguru/nNnzM/1/

Próbowałem za pomocą znaków ewakuacyjnych, ale to nie pomogło. Wszelkie sugestie dotyczące obejścia tego problemu?

+0

Hmmm .. Ten sam problem w IE8. –

+0

IE10 ma ten sam problem, chociaż nie jestem pewien, czy to błąd. To może być celowe. –

+0

Zauważyłem, że dodanie "  .web   .blog   .nyc ..." działa, ale kończy się na dwóch miejscach. To zadziała dla tego, co robię, ale myślę, że zostawię wątek otwarty i zobaczę, czy ktoś inny wymyśli czystszą poprawkę. Zobacz http://jsfiddle.net/cssguru/nNnzM/4/ –

Odpowiedz

6

Jest to irytująca funkcja, ale prawdopodobnie jest zamierzona i nie jest uważana przez sprzedawcę za błąd. Zamiast tego jest uważany za implementację Unicode line breaking rules (które są po części dość dziwne). Zgodnie z tymi regułami, okres (lub PEŁNY STOP, jak go nazywają) ma klasę IS, separator numeryczny, i "Kiedy nie są używane w kontekście liczbowym, separatory typu" infix "są interpunkcjami kończącymi zdanie. Dlatego zawsze zapobiegają przerwom. "

Aby poradzić sobie z takimi problemami, najlepiej obecnie wstawić U + 200B ZERO WIDTH SPACE między normalną przestrzenią a kropką, np.

.web ​.shop ​.blog ​.nyc ... 

U + 200B jest znak kontrolny, który umożliwia łamanie wierszy w miejscu, gdzie nie będzie inaczej być dozwolone.

Stare wersje IE (IE 6) mogą mieć z tym problemy, wyświetlając symbol niereprezentowalnego charakteru zamiast U + 200B. Alternatywna metoda, tag <wbr>, nie miałaby tego problemu, ale wydaje się, że IE 8 i nowsze często nie są w stanie uhonorować tego odwiecznego tagu (być może dlatego, że mimo swojej użyteczności nigdy nie trafił do żadnego standardu).

+0

Wow! Dzięki za wnikliwą odpowiedź. Myślę, że nadal faworyzuję mój "  .web   .shop ...", ale dam ci kredyt za odpowiedź, jeśli nie otrzymam lepszej odpowiedzi. –

+0

+1 Jedna z najbardziej pouczających odpowiedzi, jakie widziałem tutaj. –

+0

Zrobiłem więcej testów i wygląda na to, że & # x200b; lub praca w IE8 ... http://jsfiddle.net/cssguru/nNzz/17/ –