2009-10-27 38 views
17

Tôi biết rằng position:fixed; không được IE hỗ trợ cho đến IE 7 và nó chỉ hoạt động trong IE 7 nếu bạn có STRICT DOCTYPE.Làm thế nào để có được "vị trí: cố định" css để làm việc trong IE 7+ với DOCITIONAL DOCTYPE?

Câu hỏi của tôi là: "Làm cách nào để làm việc với IE 7 với TRANSITIONAL DOCTYPE?"

Vui lòng không đề xuất thay đổi số DOCTYPE vì điều này không trả lời được câu hỏi của tôi, cảm ơn bạn.

+0

Ít thời gian hơn để chi tiêu cho gia đình - nhờ có IE. – user3383675

Trả lời

23

Bạn không cần DOCTYPE nghiêm ngặt để được hỗ trợ fixed. Bạn chỉ cần DOCTYPE kích hoạt Standards Mode (hoặc ‘hầu hết các tiêu chuẩn’). Đó có thể là một loại tài liệu được chuyển tiếp như:

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

hoặc XHTML:

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

chừng nào hệ thống ID (URI ở cuối) được bao gồm.

Nếu các trang của bạn thực sự dựa trên chế độ Quirks (ugh!), Tôi xin lỗi nhưng bạn không thể sử dụng fixed và sẽ phải sử dụng để hack JavaScript (nhưng sau đó bạn có thể cần đến IE6).

+1

Chế độ html5 có kích hoạt 'hầu hết các tiêu chuẩn' không? '' –

+9

@Jonny: HTML5 '' kích hoạt Chế độ tiêu chuẩn đầy đủ. – bobince

10

Vị trí cố định không hoạt động đối với tôi ngay cả với các loại Tài liệu chuyển tiếp/nghiêm ngặt. Tuy nhiên tôi đang sử dụng IE9 trong chế độ tương thích và đó là giả sử để render bằng cách sử dụng các thư viện thời gian chạy IE8. Để khắc phục sự cố này, tôi phải thêm phần tử CSS vào phần sau.

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

Nó không làm việc với Top hoặc trái bị mất tích, bạn phải thiết lập một cách rõ ràng họ không (hoặc giá trị mong muốn của bạn) cho nó hoạt động trong tất cả các phiên bản của IE .... Không cần phải nói IE sucks.

+0

hoạt động như sự quyến rũ! cảm ơn! – marsalal1014

+0

Chỉ cần FYI: Ngay cả trong IE9, chế độ tương thích sử dụng công cụ hiển thị IE7 ở chế độ * quirks *. Nó không hiển thị bất cứ thứ gì như IE8. –

+0

@ Chris, tôi nhận ra rằng gần đây, nó thậm chí còn gửi ra các đại lý người dùng IE7 ... Cảm ơn –

Các vấn đề liên quan