2009-03-11 9 views
17

Kilka dni temu ponownie udekorowałem moją witrynę. Rozwój tej skóry był przede wszystkim wykonywany przy użyciu safari, a zgodnie z oczekiwaniami wszystko dobrze się robi przy użyciu firefox i opery. Musiałem wprowadzić kilka drobnych usprawnień dla IE7, ale nic poza wyjątkiem jednego problemu ...IE7 przycina mój tekst. Jak mogę poprawić jej nastawienie?

Wskaźniki daty dla wpisu są obcięte w IE. Ten problem zdaje się występować tylko w przypadku zagnieżdżonych znaczników span wewnątrz lewego pływającego elementu div. Myślę, że potrzebuję pływających elementów div w celu rozmieszczenia tekstu po lewej i prawej stronie ekranu.

Czy ktoś z was wie, jak zatrzymać IE7 przed przycinaniem mojego tekstu?

Edycja: Poddałem się temu problemowi. Moje skrypty sprawdzają teraz IE7 i karmię go nieco uproszczonym kodem HTML, który może obsłużyć jego ograniczony silnik. Działa w IE8, więc na razie tylko specjalny przypadek dla IE7 będzie musiał ...

+2

+1 Nie mogę zapewnić wglądu w ten problem, ale daję ci rekwizyty, by włożyć w to prawdziwy wysiłek. Sposób na ustawienie przykładu! –

+0

Świetne pytanie, doceń wysiłek w wyjaśnianiu, na czym dokładnie polega problem. –

+0

Skopiowałem twoje źródło i grałem z nim, ale nie mogłem wymyślić czystego rozwiązania. Mam jednak wrażenie, że coś pachnie na ogólnym poziomie. co jeśli IE rzeczywiście robi to, co trzeba? Nigdy przedtem nie widziałem, żeby ktoś tak przepełnił czcionkę. – markus

Odpowiedz

0

dla klasy .bigdate, spróbuj zastąpić margines z dopełnieniem; wydaje mi się, że ma to coś wspólnego z zarządzaniem depozytem IE.

1

Spróbuj dodać przepełnienie: widoczny; do twojej klasy .postdate. Może to pomaga.

0

Dodanie określonej wysokości do .title przytwierdza to dla mnie (w IE6):

.title { 
    PADDING: 0 10px 0 0; MARGIN-top: 0.3em; FLOAT: right; height: 1em; 
+0

Tak, ale mniej szczęścia z IE7. Interesujące jest to, że kiedy przeglądam divy i spany za pomocą paska narzędzi dewelopera przeglądarki internetowej, kwadraty wokół nich są odpowiednie! Wydaje się, że po prostu go przycina podczas renderowania. – Emiel

+0

Dlaczego czapki na nieruchomościach? – alex

+0

Dlaczego czapki? Dobre pytanie - prawdopodobnie stworzone przez IE, gdy wypełniłem stronę "Zapisz jako" - dodałem tylko "wysokość". Nie zapisał go po poprawieniu, więc nie mógł powiedzieć z całą pewnością. – Traingamer

0

Pomimo stanie przetestować go na moim obecnym maszyny: Podejrzewam, że jest to hasLayout bug. Metody radzenia sobie z tym są wymienione w sekcji "properties" tego linku.

19

W większości przypadków, gdy IE6 lub 7 Teledyski off dole tekstu, wystarczy dodać:

line-height: normal; 

z regułami CSS zainteresowanych. Powinien dobrze to naprawić, ale jak zrozumiesz, rozszerza to pudełko.

0

Z mojego doświadczenia wynika, że ​​jest niezmiennie dnem tekstu, który zostaje przycięty, a także z powodu nachodzących na siebie podziałów. Jeśli jesteś w stanie upewnić się, że elementy div nie pokrywają się, problem zostanie rozwiązany. To oprócz dodania przepełnienia: widoczne czasami pomaga.

0

spróbuj dodać

div.postmeta { height: 100px; } 
div.postdate { height: 75px; } 

dowolną wartość wysokość ... ale trzeba znać dokładną wysokość chcesz. To powinno zapobiegać przycinaniu kontenerów tekstowych w IE7.

11

Jest hack, który wymyśliłem, który rozwiązuje problem odcięcia tekstu w IE. Zauważyłem, że ostatnia linia w nagłówku była jedyną odciętą.

Mój oryginalny CSS co było odcięcie ostatnią linię w IE7, ale wyglądał dobrze w innych przeglądarkach:

h2 { 
    font-size: 22px; 
    line-height: 1em; 
} 

Zobacz obraz problemu tutaj: https://skitch.com/pablohart/f4g3i/windows-7-x64

Rozwiązaniem zrobiłem zawarte prostu dodając dopełnienie do dno, a następnie branie z powrotem z marginesem.Tak:

h2 { 
    font-size: 22px; 
    line-height: 1em; 
    padding-bottom: 5px; 
    margin-bottom: -5px; 
} 

Zobacz obraz poprawki w tym obrazie: https://skitch.com/pablohart/f4g4h/windows-7-x64

Problem z line-height: normal; polega na tym, że przyjmuje domyślną wysokość linii dla czcionki, zwykle 1.3em.

+0

Och, za miłość boską, dziękuję ci za tę odpowiedź ... to doprowadzało mnie do szaleństwa! – potench

+0

Naprawiłem mój problem! Ustawienie wysokości linii do niczego nie działało lub pokazywało dodatkowy wiersz tekstu, ale tylko go posiadał. Dodanie dolnej padding naprawiono moje. Mój problem to js wygenerowany tekst wewnątrz 'textarea'. – jlafay

1

Miałem podobny problem. Zmieniłem zakres na div i problem został rozwiązany. Myślę, że IE7 może mieć problem z przetwarzaniem wysokości linii na rozpiętości. Nie potwierdziłem, że to jest problem. Były inne elementy CSS. (Praca nad czyimś kodem.) Ale zmiana z zakresu na div (blok) rozwiązała problem.

0

Myślę, że problem dotyczy wypełnienia. Próbowałem usunąć styl "padding: 3px" i działało poprawnie. Wcześniej nic nie pokazywał. Odpowiedź Paul'a Hart'a pokazała mi to.
Prawdopodobnie pomocne może być również usunięcie/przesłanianie właściwości marginesów.

Powiązane problemy