【发布时间】:2014-01-30 10:11:01
【问题描述】:
我想使用UL 将文章列表显示为图片、标题、小时和日期。但是当我在测试实际网站时在http://validator.w3.org/ 上测试它们时出现验证错误
以下是虚拟模式,几乎是实际 HTML 的副本
文档类型不允许在此处使用元素“hr”;缺少一个 “object”、“applet”、“map”、“iframe”、“button”、“ins”、“del”开始标签
<hr />所提到的元素不允许出现在上下文中 你已经放置了它;其他提到的元素是唯一的元素 都允许在那里并且可以包含提到的元素。这 可能意味着您需要一个包含元素,或者您可能已经 忘记关闭前一个元素。
此消息的一个可能原因是您试图将 块级元素(例如“
" 或 "") 内联 元素(例如“”、“”或“”)。
HTML 代码
<!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" >
<head>
<title></title>
</head>
<body>
<div class="listwrapper">
<ul>
<li>
<img src="http://lorempixum.com/100/100/nature/1" alt="image" />
<span>Headline</span>
<p>Lorem ipsum dolor sit amet...</p>
<hr/>
</li>
<li>
<img src="http://lorempixum.com/100/100/nature/2" alt="image"/>
<span>Headline</span>
<p>Lorem ipsum dolor sit amet...</p>
<hr/>
</li>
<li>
<img src="http://lorempixum.com/100/100/nature/3" alt="image"/>
<span>Headline</span>
<p>Lorem ipsum dolor sit amet...</p>
<hr/>
</li>
<li>
<img src="http://lorempixum.com/100/100/nature/4" alt="image"/>
<span>Headline</span>
<p>Lorem ipsum dolor sit amet...</p>
<hr/>
</li>
</ul>
</div>
</body>
</html>
更新:我尝试用 div、span 替换 html,但我一直产生同样的错误
【问题讨论】:
-
<hr/>不应在<ul>和<li>中使用。很确定这就是错误的意思。 -
这就是导致错误的原因,将其替换为 span div 也会产生相同的错误
-
而不是
,为什么不在 CSS 中为- 设置一些额外的边距/填充并添加边框底部?
-
就像汉斯在回答中所说的那样,您不能将块元素放入内联元素中。但是既然你已经解决了这个例子中的问题(这个例子does validate as XHTML),你为什么不简单地将相同的解决方案应用于实际的网页呢?
-
另外,你为什么还要使用 XHTML?您的问题的其余部分仅涉及 HTML,似乎对 XHTML 没有任何要求。
标签: html html-validation