2009-10-27 10 views

Odpowiedz

23

Nie potrzebujesz ścisłego DOCTYPE dla wsparcia fixed. Potrzebujesz tylko DOCTYPE, który wyzwala Standards Mode (lub "prawie standardy"). To może być typ dokumentu przejściowe, takie jak:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

lub XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

tak długo, jak identyfikator systemu (URI na końcu) jest włączone.

Jeśli strony są naprawdę powołując się na osobliwości trybie (ugh!), Przykro mi, ale nie można używać fixed i będzie musiał uciekać się do sztuczek JavaScript (ale to może trzeba tych, dla IE6 i tak).

+1

Czy html5 uruchamia tryb "prawie standardów"? '' –

+9

@Jonny: HTML5 '' wyzwala pełny tryb standardów. – bobince

10

Naprawiono pozycję nie działa dla mnie, nawet z typem Transitional/Strict Doc. Jednak używam IE9 w trybie zgodności i to jest renderowanie przy użyciu bibliotek uruchomieniowych IE8. Aby naprawić ten problem, musiałem dodać następujące elementy CSS do elementu.

.elementToBeFixed { 
    position: fixed; 
    top: 0; 
    left: 0; 
} 

To nie działa z górnej lub lewej bycia brakuje trzeba jawnie ustawić je do zera (lub pożądana wartość) na to, aby pracować we wszystkich wersjach IE .... Nie trzeba powiedzieć IE bani.

+0

pracował jak urok! dzięki! – marsalal1014

+0

Tylko na zasadzie FIF: nawet w IE9 tryb zgodności wykorzystuje silnik renderujący IE7 w * trybie dziwactw *. Nie renderuje niczego takiego jak IE8. –

+0

@Chris, zdałem sobie sprawę, że ostatnio, to nawet wysyła agenta użytkownika IE7 ... Dzięki –

Powiązane problemy