2010-09-21 12 views
5

Mam najdziwniejszy błąd w historii ... Eksperymentuję z wyświetlaniem: tabelą, a mój dowód koncepcji działa przy pierwszej próbie po otwarciu nowego procesu, ale po każdym ponownym załadowaniu strony łamie projekt. Oto prosta strona HTML:Błąd przeglądarki Internet Explorer 8 z tabelą:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Untitled Page</title> 
    <style> 
     .container { 
      display: table; 
     } 

     .row { 
      display: table-row; 
     } 

     .cell { 
      display: table-cell; 
      width: 100px; 
      height: 100px; 
      border: 1px solid blue; 
      padding: 1em; 
     } 
    </style> 
</head> 
<body> 
    <div class="container"> 
     <div class="row"> 
      <div class="cell">CELL A</div> 
      <div class="cell">CELL B</div> 
      <div class="cell">CELL C</div> 
     </div> 
    </div> 
</body> 
</html> 

Oto spodziewany wynik, który otrzymuję po załadowaniu za pierwszym razem.

alt text

Teraz to, co dostaję po przeładowania strony, z F5:

alt text

To szaleństwo !!!

Czy ktoś może wypróbować urządzenie i poinformować mnie, w jaki sposób im to wychodzi? Dziękuję Ci. Mam nadzieję, że nie zabiłbym się, gdy przeczytałem rozwiązanie :-)

+0

działa dobrze dla mnie na Vista. – Brandon

+1

@ md1337: Rozważmy, że IE8 nie działa od jakiegoś czasu. Dlaczego jesteś pierwszą osobą, która zobaczyła ten błąd? –

+0

Działa dobrze dla mnie. (WindowsXP, 8.0.6001.18702) –

Odpowiedz

18

Okazuje się, że, jak sugerują niektórzy, tryb zgodności IE został jakoś uruchomiony.

Dowiedziałem się, że dzieje się tak, ponieważ uruchamiam stronę w intranecie i domyślnie tryb zgodności jest włączony dla witryn intranetowych.

Można to wyłączyć, przechodząc do menu Narzędzia> Ustawienia widoku zgodności i odznaczając wyświetlane witryny intranetowe w widoku zgodności. Oczywiście nie jest to coś, co koniecznie zadać wszyscy użytkownicy zrobić, więc zaproponowano mi dodać

<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 

w nagłówku, który działa świetnie.

Więcej informacji na ten temat: http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx

+0

dzięki ... to bardzo pomogło –

6

Problem, gdy przeglądarka jest w widoku zgodności. (zgodnie z sugestią taylorjes)

Gdy strona jest wyświetlana w widoku normalnym, komórki są poziome. Po wyświetleniu w widoku zgodności komórki są pionowe.

Jak powiedziałem w swoim komentarzu, bardzo zniechęciłbym wyświetlacz: (tabela/tabela-wiersz/tabela-komórka) właściwość CSS. Nie jest dobrze obsługiwany i musi mieć dziwactwa.

Szczerze mówiąc, jeśli wyświetlane są dane tabelaryczne, , użyj tabeli. Tabele są tylko złe, gdy są używane dla układu .

+0

@ md1337 - Nie. Piszesz swój kod, aby był kompatybilny w wielu przeglądarkach (stąd moje uwagi zniechęcają do używania tych właściwości CSS). – riwalk

+0

@ md1337. Aha, i zanim pomyślisz inaczej, głosowanie w dół nie było ode mnie. Jest to uzasadnione pytanie, nawet jeśli odpowiedź nie jest tym, czego potrzebujesz;) – riwalk

+7

'alert (document.documentMode)' powie ci '8' lub' 7' (lub '5' dla trybu dziwactwa). Użyj '', aby zmusić IE do korzystania z "najlepszego" trybu standardowego, jaki jest dostępny. W przeciwnym razie możesz stać się ofiarą trybu zgodności na żądanie, domyślnie lub przypadkowo kliknięty przez użytkownika lub jeśli Microsoft umieści Cię na liście zgodności. – bobince

Powiązane problemy