2010-09-21 45 views
5

Tôi có lỗi lạ nhất từ ​​trước tới giờ ... Tôi đang thử nghiệm với màn hình: bảng và chứng minh của tôi hoạt động trong lần thử đầu tiên sau khi mở một quy trình mới, nhưng mọi lần tải lại tiếp theo của trang phá vỡ thiết kế. Đây là trang HTML đơn giản:Lỗi Internet Explorer 8 có hiển thị: bảng

<!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> 

Và đây là kết quả mong đợi, đây là những gì tôi nhận được sau khi tải lần đầu tiên.

alt text

Bây giờ đó là những gì tôi nhận được sau khi tải lại trang, với F5:

alt text

Đó là điên !!!

Ai đó có thể vui lòng thử nó và cho tôi biết cách nó xuất hiện cho họ không? Cảm ơn bạn. Tôi hy vọng tôi sẽ không tự giết mình khi tôi đọc giải pháp :-)

+0

Hoạt động tốt cho tôi trên Vista. – Brandon

+1

@ md1337: xem xét rằng IE8 đã được ra trong một thời gian. Tại sao bạn lại là người đầu tiên nhìn thấy lỗi này? –

+0

Làm việc tốt cho tôi. (WindowsXP, 8.0.6001.18702) –

Trả lời

18

Nó chỉ ra rằng, như đề xuất của một số, chế độ tương thích của IE đã được kích hoạt bằng cách nào đó.

Tôi phát hiện ra rằng đó là vì tôi đang chạy trang trên mạng nội bộ và theo chế độ tương thích mặc định được bật cho các trang web Intranet.

Điều này có thể bị tắt bằng cách chuyển đến Công cụ> Cài đặt chế độ xem tương thích và bỏ chọn các trang web Mạng nội bộ hiển thị trong hộp Chế độ xem tương thích. Tất nhiên đây không phải là điều bạn nhất thiết muốn yêu cầu tất cả người dùng của bạn thực hiện, vì vậy tôi được đề xuất thêm

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

trong tiêu đề, hoạt động tuyệt vời.

Thông tin thêm về điều đó: http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx

+0

cảm ơn .. điều này đã giúp rất nhiều –

6

Sự cố khi trình duyệt ở chế độ xem tương thích. (theo gợi ý của taylorjes)

Khi trang được hiển thị ở chế độ xem bình thường, các ô nằm ngang. Khi được hiển thị trong chế độ xem tương thích, các ô là dọc.

Như tôi đã nói trong nhận xét của mình, tôi sẽ đánh giá cao việc không hiển thị thuộc tính CSS: (table/table-row/table-cell). Nó không được hỗ trợ tốt và bị ràng buộc có quirks.

Thành thật nếu nội dung bạn hiển thị là dữ liệu dạng bảng, thì sử dụng bảng. Bàn chỉ là ác khi được sử dụng cho bố cục .

+0

@ md1337 - Bạn không. Bạn viết mã của bạn để tương thích trên nhiều trình duyệt (do đó nhận xét của tôi không khuyến khích việc sử dụng các thuộc tính CSS đó). – riwalk

+0

@ md1337. Ồ, và trước khi bạn nghĩ khác đi, sự bỏ phiếu xuống không phải từ tôi. Đó là một câu hỏi hợp pháp, ngay cả khi câu trả lời không phải là những gì bạn muốn;) – riwalk

+7

'alert (document.documentMode)' sẽ cho bạn biết '8' hoặc' 7' (hoặc '5' cho chế độ quirks). Sử dụng nội dung '' để buộc IE sử dụng Chế độ tiêu chuẩn "tốt nhất" mà nó có sẵn. Nếu không, bạn có thể trở thành nạn nhân của Chế độ tương thích nếu được người dùng yêu cầu, mặc định hoặc vô tình nhấp vào hoặc nếu Microsoft đưa bạn vào danh sách Tương thích. – bobince

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