2008-09-30 13 views
5

Mam ten duży rodzaj strony wprowadzania danych, rodzaj tabeli przy użyciu div. Każdy rząd ma subrowy, które można przełączać otwarte/zamknięte. Przełączanie jest wyzwalane za pomocą ustawień widoczności css. Każda "komórka" tabeli ma mały obraz w swoim rogu, kliknięcie obrazu i otwiera się okno podręczne, które pozwala umieścić notatki na wpisie.Textarea w IE7 znika na myszy ponad

To okno wyskakujące ma obszar tekstowy i zestaw pól wyboru wraz z przyciskiem (typ wejściowy = wyślij, myślę). Wyskakujące okienko to element iframe zagnieżdżony wewnątrz ukrytego elementu div.

W IE7, po otworzeniu tego elementu iframe z notatkami i przewinięciu strony w dół, przesuwanie kursora nad polem tekstowym popup powoduje zniknięcie i wyświetlenie zawartości strony pod nim. Pola wyboru wyświetlają także poniższą stronę po kliknięciu myszą.

Tak, próbowałem kilka różnych poprawek. Z-index był tym, na co miałem nadzieję, mógł zostać użyty, aby to naprawić. nie ma takiego szczęścia. Mogę spróbować zastąpić pole tekstowe zwykłym typem wejściowym = tekstem, ale ponieważ pola wyboru również wykazują ten błąd, podejrzewam, że jedno-liniowy wpis tekstowy również spowoduje błąd.

Odpowiedz

6

oprócz blokowania elementów z-index działa dla wszystkich elementów, które mają co nazywa IE hasLayout read more

+0

dzięki za tę wskazówkę. ten link do haslayout.net jest NAPRAWDĘ pomocny. nadal nie mogę tego naprawić, ale to prawdopodobnie dlatego, że strona, nad którą pracuję, jest tak skomplikowana i pełna śmieci. ta informacja pomoże LOT. – the0ther

2

Jeśli dobrze pamiętam tylko pracę Z-Index na elementach blokowych, które są ustawione absolutnie. Więc spróbuj ustawić pozycję okna podręcznego na wartość bezwzględną, a następnie spróbuj z-index. Jeśli potrzebujesz, aby popup był w określonej pozycji, ustaw element zawijania na względny. Napotkałem ten problem już wcześniej i sądzę, że rozwiązałem go w sposób opisany przeze mnie.

9

Najprostszym sposobem, aby wywołać hasLayout (wspomniane w innym poście) jest dodanie zoom: 1.

Podczas debugowania niektóre najgłupszą IE 6/7 kwestii wyświetlaczy I czasami po prostu zrzucić tymczasowy

* { 
    zoom: 1; 
} 

do mojego CSS i sprawdzić, czy coś się zmieniło. Jeśli tak, zaczynam selektywnie dodawać go do elementów zaczynających się od elementu, rodzic/dzieci elementu itp.

zoom jest obsługiwany tylko przez IE, więc "bezpiecznie" mieć w dokumencie. To także oszczędza cię od konieczności zrobienia czegoś szalonego jak elementy pozycjonowania absolutnego, itp.

1

Miałem dokładnie ten sam problem z polami wejściowymi i tekstowymi w IE7, ale tylko wtedy, gdy dałem im szerokość.

Nie pamiętam, skąd je wziąłem, ale znalazłem to rozwiązanie, może nie być zbyt eleganckie, ale rozwiązało problem. Po prostu dodaj:

filter:alpha(opacity=100) 

do atrybutu stylu css dla kłopotliwych pól.