2012-11-24 27 views
5

我可以在jQuery中打開一個對話框如下:jQuery的定位需要<!DOCTYPE HTML>

position: { 
    of: $("#Parent"), 
    my: "left top", 
    at: "left top" 
} 

這在FF罰款,但在IE9它,只有當文檔類型設置爲<!DOCTYPE HTML>而不是其他作品像下面這樣:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

似乎所有其他的doctype把IE怪癖模式。

問題是使用<!DOCTYPE HTML>弄亂了ActiveWidgets;網格不會在任何瀏覽器中顯示。

我可以在IE中使用沒有<!DOCTYPE HTML>的jQuery定位嗎?或者,我可以讓ActiveWidgets使用這個推薦的DOCTYPE嗎?


感謝您的答案

花總有一天,jqwidgets更換activeWidgets網後,我終於不喜歡的結果。我使用PHP模板從ini文本文件生成動態網格。

我最終將文檔分成2個iframe。一個與對話以及其他與電網

這樣的方式我無法動彈對話框架之外,但它的工作原理

這是偉大的社會,幫助了我很多 感謝

設計大內部網站
+0

您是否通過w3c驗證程序運行頁面以確保您的某處沒有損壞的標記? 「ActiveWidgets」是什麼? – charlietfl

+5

這聽起來像你有一些代碼依賴於標準模式,並且ActiveWidgets作爲依賴於怪異模式的第三方庫。您不能在同一個文檔中同時激活兩種模式,因此適當的操作是將ActiveWidget替換爲合理設計的內容,而不是非專業混亂。 (基於ActiveWidgets的描述 - 用YUI,jQuery UI或Dojo代替) – Quentin

回答

0

您可以強制MSIE使用你的頭>這裏面meta標籤提供的最新版本:

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

tldr;使用有效/認可 DOCTYPE,以確保非怪癖模式

的HTML4過渡DOCTYPE listed in the W3C informational reference包括的DTD URI:

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

每所述模式矩陣列表的Quirks mode維基百科文章<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">在(沒有系統標識符)將IE8 +置於怪癖模式。哎呀。最好使用嚴格的DTD和/或HTML5 DOCTYPE,以便最近的瀏覽器能夠在標準模式下運行。)注意,即使使用過渡系統標識符,它仍然處於幾乎標準模式。

查看Quentin對某些解決方案的評論 - 之後修復DOCTYPE以確保幾乎標準/標準模式。

+0

感謝answaers – Ben