2012-02-13 89 views
13

我正在使用偉大的HTML5樣板。這是一個偉大的工程,但我有一些大的問題,在IE 8和7的渲染(可能是8,但還沒有嘗試過)IE和HTML5文檔類型問題

的文件具有HTML5的doctype:

<!doctype html> 
<head> 

但問題是使用不具有充分的和醜陋的doctype像...

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

我得到的所有類型的渲染問題:通過保證金爲中心:汽車不能正常工作,高度,寬度,martings和補白的行爲都像瘋了似的我所有的佈局被打破只是<!doctype>但如果我切換到舊的,everythin g工程偉大(好,不是很好,它仍然是IE,但如預期)

HTML5 Boilerplate帶有Modernizer,我認爲應該解決這個問題,但它不工作。從我的「研究」(谷歌),我發現,IE怪癖模式寬度<!doctype>進入,所以問題是...

有沒有一種方法,以防止IE瀏覽器進入怪癖模式<!doctype>

或者至少不打破邊緣,寬度,填充等?

編輯:這是全頭:

<!doctype html> 
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> 
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> 
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> 
<head> 
    <meta charset="utf-8"> 
+0

這個問題的解決方案是什麼? – pal4life 2013-08-28 20:00:50

回答

14

IE不進入怪癖模式與DOCTYPE。樣板文件應該修復IE問題,而不是導致它們。您在doctype後缺少<html>元素。加上這個來看看事情是否改變。 HTML5不需要它,但如果缺少,根據文檔,IE或樣板可能會變得瘋狂。

此外,只要刪除DOCTYPE之後的評論,並應該讓問題消失。

+1

我不會錯過它,樣板有: – Juan 2012-02-13 18:31:25

+0

@Juan - 然後我們需要看到我們只是猜測完整的標記原因。 – Rob 2012-02-13 18:33:28

+7

這個答案的實際解決方案是什麼? – Catfish 2013-07-11 14:18:26

7

嘗試把這個在<head></head>標籤:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

如果它已經存在,然後將其刪除,您可能會收到您的預期的結果。

+0

它在那裏,我刪除它,但沒有任何改變 – Juan 2012-02-13 18:19:10

0

我不是一個太大的「鬼才」的,但不會是工作做的條件html和聲明HTML 4.01的doctype爲IE8和下面這樣:

<!-- HTML 5 doctype --> 
<!doctype html> 

<!-- HTML 4.01 Doctype --> 
<!--[if lte IE 8]> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 
<![endif]--> 

如果還是不行在舊的瀏覽器工作(由於瀏覽器讀取兩個文檔類型),你可以試試這個:

<!DOCTYPE HTML <!--[if lte IE 8]>PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd" 
<![endif]-->> 
+3

您的評論是否把IE放入怪癖模式。你不能把任何東西放在文檔類型前面。 – Rob 2012-02-13 18:21:03

6

IE瀏覽器並沒有進入HTML文檔類型的怪癖 - 這就是整個觀點!

什麼是這個新DOCTYPE不錯,尤其是目前所有 瀏覽器(IE,FF,歌劇,Safari)會看它和 內容切換到標準模式 - 即使他們沒有實現HTML5。 這意味着你可以開始使用HTML5 來編寫你的網頁,讓它們持續很長很長的時間。

(http://ejohn.org/blog/html5-doctype/)

然而,DOCTYPE之前有什麼(換行,註釋等)會。

我會檢查你在做什麼--HTML5文檔不會讓你的瀏覽器陷入怪癖。

0

它可能正在進入與條件註釋的兼容模式。我們建議您在.htaccess文件或其他服務器配置文件中設置x-ua-compatible標頭服務器端。

-4

嘗試使用DOCTYPE html代替doctype html doctype標記區分大小寫,這將是原因。

+7

它不區分大小寫。 – 2013-03-22 20:13:37

0

我看到沒有錯滿頭標記你張貼。這是一個廣泛用於樣板文件的標準標記,包括Modernizr,一個用於檢測瀏覽器功能的漂亮JavaScript庫。

<!doctype html> 
<!--[if lt IE 7]>  <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> 
<!--[if IE 7]>   <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> 
<!--[if IE 8]>   <html class="no-js lt-ie9" lang="en"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> 
<head> 

我在當前的應用程序中使用它,並且在任何瀏覽器上都沒有問題。雖然我使用它像這樣:

<!DOCTYPE html> 
<!--[if lt IE 7]>  <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> 
<!--[if IE 7]>   <html class="no-js lt-ie9 lt-ie8"> <![endif]--> 
<!--[if IE 8]>   <html class="no-js lt-ie9"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> 
<head> 

爲了測試IE條件註釋的緣故,我對IE9IE8IE7測試,用大寫和小寫DOCTYPE兩者只是雙重檢查。

我已經IE7觀察到的唯一奇怪的是網絡字體(所有四個在我的應用程序)會失敗有時呈現,當我用<!doctype html>而不是<!DOCTYPE html>

FYI:我剛剛檢查,看到HTML5 Boilerplate Projectremoved support for IE conditional comments在9月24日2013年我無法證實當條件註釋被引入該項目,但可以看出,it used to be around the body tag when the project was ported to Github在1月24日2010年

0

嘗試保存文件爲UTF-8,不含BOM。它幫助了我。