如何重写此HTML以验证XHTML1.0的严格性?
如何重写此HTML以验证XHTML1.0的严格性如何重写此HTML以验证XHTML1.0的严格性?,html,validation,xhtml,Html,Validation,Xhtml,如何重写此HTML以验证XHTML1.0的严格性 <div> <a href="link.html"> <p>Some text</p> <ul> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </u
<div>
<a href="link.html">
<p>Some text</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</a>
</div>
我的目的是让整个div作为一个可点击的链接。其中的内容仅描述目标页面的内容。W3验证器说我不能在span标记(
)中包含块元素(
)
我如何重新排列它,使我的div保持块链接?不允许将块级元素包装在内联级元素中,因此您有一些选择
- 您可以在
- 如果您使用Javascript,请确保使用CSS使内容明显是链接。我建议使用伪类
div { text-decoration: underline; color: #0000FF;//or whatever your link color is } div li:hover, p:hover { color: #CC00FF; cursor: pointer; }
- 如果您使用Javascript,请确保使用CSS使内容明显是链接。我建议使用伪类
<div style="cursor:pointer" onclick="location.href='link.html'">
<!-- ... -->
</div>
您的
- 也是一个块元素,因此它在那里也不起作用。那么:
<div onclick="location.href = 'link.html'">
<p>Some text</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
一些文本
- 项目1
- 项目2
- 项目3
按原样,您的片段是有效的HTML5。使用它,你的问题就会消失。您只需将doctype更改为
是否可以在CSS中为a标记设置display:block?这行吗?a标记已经设置为display block,这就是为什么它能按我所希望的那样工作。但是它并没有验证…您应该提到,这个解决方案依赖于jQuery。嗨,Robert!如果我使用jQuery函数,我应该把它放在哪里?讨论中的页面有5到30个div块,每个块指向不同的页面确保将div
选择器更改为相关的。我通常不鼓励使用onclick
作为属性,但我赞成您使用cursor:pointer
,这在其他帖子中被忽略了+1@LeguRi,我同意你的看法,通常我也不使用它,但我想提出一个快速而简短的解决方案。罗伯特已经提出了更好的解决方案。真的吗!?你有什么可以引用的链接吗?他们抛弃了HTML5中的“块级与内联级”吗?是的。请参阅——特别是“流量内容”的描述,它似乎包含了这两个类别;另外,在
元素中,特别允许包含“任何流内容”,但如果其内容完全是“语法内容”,则仍然可以将其视为“语法内容”。此外,它还是一个HTML5验证程序。我通过将OP的片段粘贴到它提供给您的框架文档中来确定我的原始答案。没有错误。
<div style="cursor:pointer" onclick="location.href='link.html'">
<!-- ... -->
</div>
<div onclick="location.href = 'link.html'">
<p>Some text</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>