Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何重写此HTML以验证XHTML1.0的严格性?_Html_Validation_Xhtml - Fatal编程技术网

如何重写此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

如何重写此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>
        </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

<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>