簡體   English   中英

HTML5 驗證錯誤:看到正文開始標記,但已打開相同類型的元素

[英]HTML5 Validation Error: body start tag seen but an element of the same type was already open

我希望有人可能知道如何解決這個 HTML5 驗證錯誤。 當我嘗試使用http://validator.w3.org驗證我的頁面: http : //blog.genesispetaluma.com 時,它給了我以下錯誤代碼:

錯誤第 90 行,第 63 列:看到正文開始標記,但已打開相同類型的元素。

<body class="home blog single-author two-column right-sidebar">

我將此錯誤解釋為我在代碼中有兩個正文標記。 但是,我到處搜索,只能找到一個<body> (錯誤引用的那個)和一個</body> 誰能告訴我如何解決這個錯誤?

我有一個類似的問題,但是<head> ,給出了以下 W3C 標記錯誤:

看到了一個開頭標簽,但相同類型的元素已經打開

我有這個代碼:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<head>

當它應該是:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

我知道這是錯誤的,但有時很難發現,因為您已經習慣了 99% 的標題代碼都是正確的。 我顯然剪切 n 粘貼了一些代碼,結果放在錯誤的地方。

我知道,這不是針對您的問題,因為您的錯誤與<body>標簽有關,但這是您正在尋找的類型。 也許你身體的某個地方有一個<link><meta>標簽,這意味着在<head> 沒有看到你的代碼,很難給你一個完美的答案。

可能是因為:

<div id="wrapFix">

<div id="drawLogo1">
    <div id="drawLogo2">
        <img src="http://genesispetaluma.com/img/logoNew.png" alt="Genesis Fitness G stylelogo">
    </div>
</div> <!-- end of drawLogo1 -->

位於結束頭標簽和開始身體標簽之間。 即第 81-87 行

您正在使用的小部件之一(我相信像 facebook 的按鈕)是將 HTML 插入到頁面中,並且該 HTML 的一部分是正文標記。 不確定您是否可以對此采取任何措施,但我認為這就是引發錯誤的原因。 看起來像這樣:

<body class="plugin transparent_widget ff4 win Locale_en_US">
</html>
</iframe>

我收到此錯誤:

看到了一個開頭標簽,但相同類型的元素已經打開

我讀了這篇文章,然后我注意到我的標簽列在這樣的頭部之前。

<title>Home</title>
<head>
</head>

it should have been
<head>
<title>Home</title>
</head>

據我所知,它發生在下面所說的場景中 -

  1. 當你誤選<head>想着<header>標簽。
  2. 當您的<header><nav><section><footer>標簽位於<body>標簽之外時。

因此,在創建頁面后,您可以在此處驗證這些更改。

我收到相同的錯誤消息:檢查<head><body>之間是否顯示任何 body-inside <element> <body> ,如上所述。

我的錯誤是由具有絕對位置的<div>標記引起的,它在開發過程中顯示一些頁面信息 - 只是代碼中錯誤位置一行

就我而言,它是 facebook 標簽

<div id="fb-root"></div>

它位於頁面的<head>

將其移至相關頁面的<body> (全局不需要)對其進行排序。 所以是的,上面由 Emil H 提供的答案是正確的。

嗨,在我的情況下,hgroup 標簽是我遇到驗證錯誤的原因,我從 head 標簽中刪除了這個標簽,然后將它放在 body 標簽之后,文檔現在有效。

只是為了記錄,我遇到了完全相同的問題,似乎在 head 元素中包含一些 php 文件奇怪地給出了問題,即使 Firefox 的視圖源沒有打印這樣的 php 代碼或標簽

<head>
  <? include("./file.php"); ?>
  <title><? echo $title ?></title>
</head>

解決使用:

<? include("./file.php"); ?>
<!DOCTYPE html>
<html>
<head>
  <title><? echo $title ?></title>
</head>
<body>
...
...

如果您的 head 和 body 問題都顯示驗證錯誤,只需從 head 中刪除顯示文本並將其保留在 body 中。我最近遇到了這個問題。 例如,您有文本要顯示在頭部內部的標題中,只需從頭部刪除標題並將其保留在正文中......問題已解決......謝謝

另請記住,如果您從 slack 等內容復制/粘貼代碼,它們將具有用於格式化的“特殊字符”(通常是不可見的),這可能會導致該問題。

這是一個演示視頻: https : //drive.google.com/file/d/1OJS15zmSvzhVXVLcQGGhePZGNCxWHocN/view

如果您放入限制在那里的<head>標記,則可能會發生此錯誤。 例如:

 <head> <audio preload="auto" class="menu-beep" id="sound-01"> <source src="sound-01.mp3"> </audio> </head>

在這種情況下,標簽將立即在瀏覽器內存中打開。 但是稍后瀏覽器會找到打開頁面的body標簽。 這就是事實證明有第二個身體標簽的方式。

我對<head>標簽有類似的問題。 我使用https://validator.w3.org

看幾個例子來解決這個問題:

  • <script>應該在<head>里面

在此處輸入圖片說明

  • css 應該在<head>里面

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM