2014-10-29 72 views
0

我想學習在HTML中使用框架集。所以,我和一位朋友開了一個小網站。 在下面的頁面(index.html)中,我收到第13行的錯誤:「頭部標籤雜散結束」。爲什麼我得到這個錯誤?標籤頭的雜散結尾​​

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
    <head> 
     <title>Metal's page</title> 

     <frameset cols = "20%,*" frameborder = "0"> 
      <frame src = "pages/menu.html"> 
      <frameset rows = "10%,*" frameborder = "0"> 
       <frame src = "pages/title.html"> 
       <frame name = "main" src = "index.html"> 
      </frameset> 
     </frameset> 
    </head> 

    <body bgcolor = red> 
     <br/><br/><br/> 
     <p>Hello, my name is Mihai, but one of my best friend call me "Metal". This is our web page. Enjoy!</p> 
     <br/><br/> 
    </body> 
</html> 

網站地址:metalblog.besaba.com 謝謝!

回答

1

除非您手動指示驗證程序忽略DOCTYPE並使用HTML 4.01 Frameset代替,否則實際上不會收到該文檔的錯誤消息。

如果你這樣做,或者如果你改變了DOCTYPE爲HTML 4.01框架集DOCTYPE,你得到錯誤HEAD「這是不開‘因爲<frameset ...>隱式地關閉head元素’爲元素結束標記」,所以你不允許再關閉它。

的原因隱閉的是,在一個Frameset document,所述frameset元素出現代替body元件,所述元件head後。沒有body元素,因爲幀的內容都是顯示的內容。

以下文檔驗證:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" 
         "http://www.w3.org/TR/html4/frameset.dtd"> 
<html> 
    <head> 
     <title>Metal's page</title> 
    </head> 
     <frameset cols = "20%,*"> 
      <frame src = "pages/menu.html"> 
      <frameset rows = "10%,*"> 
       <frame src = "pages/title.html"> 
       <frame name = "main" src = "index.html"> 
      </frameset> 
     </frameset> 
</html> 

請注意,我已經刪除了frameborder屬性。它們在HTML 4.01(或任何其他HTML版本)中無效。如果要刪除幀之間的邊界,則必須使用該屬性並接受文檔無效。至少在幾個賽季之前,沒有辦法移除邊界,當時一些人仍在使用邊框,儘管上賽季有這樣的邊框。我不認爲這方面有任何改變。

0

這可能是因爲你已經把你的框架設置在頭標籤而不是身體標籤。所有內容都應該放在正文中。

+0

我跟着一個教程,說我需要把頭框架 – 2014-10-29 17:48:53

+0

你能鏈接我們的教程嗎? – codepuncher 2014-10-29 17:54:32

0

首先,您正在使用嚴格的DOCTYPE,它不允許框架集。更改爲框架集DOCTYPE。通過validator.w3.org運行你的標記,直到你沒有錯誤。

+0

更改爲:<!DOCTYPE HTML PUBLIC「 - // W3C // DTD HTML 4.01 Frameset // EN」「http://www.w3.org/TR/html4/frameset.dtd」>,但同樣的問題 – 2014-10-29 17:47:18

+0

請參閱我關於驗證你的標記的評論。 – nunzabar 2014-10-29 17:49:26