【问题标题】:Fixing W3C errors, trying to make website 100% error free修复 W3C 错误,努力让网站 100% 无错误
【发布时间】:2014-02-25 22:16:16
【问题描述】:

我刚刚使用 HTML W3C 验证服务测试了我的网站,并且收到了多个我不确定的意外错误。我希望我的页面 100% 没有错误并通过测试。

如果您知道这些错误是什么,请帮我解决这些错误,因为我不知道它们的意思。

1.0 元素 a 在此上下文中不允许作为元素 ul 的子元素。 (抑制来自该子树的更多错误。)

<a href="#home" id="sTop" class="subNavBtn">Home</a> 

2.0 看到结束标签 div,但有打开的元素。

<img src="images/smalllogo.png" id="smalllogo"></div>   

3.0 元素 li 在此上下文中不允许作为元素 div 的子元素。 (抑制来自该子树的更多错误。)

 <li class="nav-dots">

4.0 重复 ID 行。

<img src="images/imagepage/200x2001.jpg" id="row"> 

我以为我可以拥有多个具有相同 ID 的图像??

5.0 label元素的for属性必须引用表单控件。

<label for="img-6" class="prev">&#x2039;</label>

【问题讨论】:

  • 您不能拥有多个具有相同 ID 的任何东西。如果你想要多个东西,那就给它一个类。 ID 是唯一的。
  • 您需要为生成的 HTML 代码提供更多上下文。
  • 你的问题在哪里?你不明白错误信息吗?例如,“元素a 不允许作为元素ul 的子元素”似乎很明显。你有什么不明白的地方?

标签: html validation


【解决方案1】:

1.0 元素 a 在此上下文中不允许作为元素 ul 的子元素。

<a href="#home" id="sTop" class="subNavBtn">Home</a>

a 元素不能直接位于 ul 元素下方。仅允许在 ul 元素下直接使用 li 元素。

正确:

<ul>
  <li><a href="#home" id="sTop" class="subNavBtn">Home</a></li>
</ul>

不正确:

<ul>
  <a href="#home" id="sTop" class="subNavBtn"><li>Home</li></a>
</ul>

2.0 结束标签 div 可见,但有开放元素。

<img src="images/smalllogo.png" id="smalllogo"></div> 

意味着您错误地关闭了div(或其他)元素。如果没有看到您的实际代码,我无法告诉您更多信息,但请确保您正确关闭了所有元素。


3.0 元素 li 在此上下文中不允许作为元素 div 的子元素。

 <li class="nav-dots">

li 元素只能存在于ulol 元素之后。

正确:

<ul>
  <li class="nav-dots">Something</li>
</ul>

不正确:

<div>
  <li class="nav-dots">Something</li>
</div>

4.0 重复 ID 行。

<img src="images/imagepage/200x2001.jpg" id="row"> 

You may only ever have ONE unique id on a page. 如果您需要将多个图像识别为row,请使用class

正确:

<img src="images/imagepage/200x2001.jpg" id="image-1" class="row"> 
<img src="images/imagepage/400x4001.jpg" id="image-2" class="row"> 

5.0 label元素的for属性必须引用表单控件。

<label for="img-6" class="prev">&#x2039;</label>

label 上的for 属性必须指向表单元素的id

正确:

<label for="name">Name:</label><input type="input" id="name" value="name" />

【讨论】:

    【解决方案2】:

    1.0 听起来您的 &lt;a&gt; 标记直接在 &lt;ul&gt; 内,它必须首先在 &lt;li&gt;

    2.0 您关闭了您的 &lt;div&gt;,而其他打开的标签仍在元素内。

    3.0 &lt;li&gt; 必须是 &lt;ul&gt;&lt;ol&gt; 的直接子代,而不是 &lt;div&gt;@的直接子代

    4.0 一个ID只能用一次,用过两次,改用一个类吧。

    5.0 &lt;label&gt; 将在 &lt;form&gt; 元素内部使用,您似乎在其他地方使用过它。

    【讨论】:

      【解决方案3】:

      1.0 元素 a 在此上下文中不允许作为元素 ul 的子元素。 (抑制来自该子树的更多错误。) - 您试图将一个元素嵌套在另一个不接受该元素作为子元素的元素中,例如,&lt;a&gt;&lt;head&gt;

      2.0 结束标签 div 可见,但有开放元素。 - 您在关闭其父容器之前忘记关闭元素。在这种情况下,您正在使用的 &lt;img&gt; 标签未关闭。

      3.0 元素 li 在此上下文中不允许作为元素 div 的子元素。 (抑制来自该子树的更多错误。) - &lt;li&gt; 需要在 &lt;ul&gt; 内。

      4.0 重复 ID 行。 - ID 必须是唯一的。您不能使用重复的 ID。

      5.0 标签元素的 for 属性必须引用表单控件。 - for 属性引用的是什么元素?它需要是一个表单元素。 (inputselect等)

      【讨论】:

        猜你喜欢
        • 2014-01-05
        • 2015-01-20
        • 2018-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多