Javascript 有效HTML:ul、p、div-inside';a';要素

Javascript 有效HTML:ul、p、div-inside';a';要素,javascript,html,css,Javascript,Html,Css,我有一个div,如果你点击div上的任何地方,它会打开另一个网页。所以本质上整个div是一个巨大的超链接。因此,我有一个div,然后在里面我有一个a元素,然后在里面我有div的所有元素(一些ul,一些p等等) 我的问题:当我尝试在w3标记验证器中验证我的HTML时,我会出现错误,因为我在a元素内部有一个ul、p等 实际误差: 文档类型此处不允许元素“p”;少了一个 “对象”、“小程序”、“映射”、“iframe”、“按钮”、“ins”、“del”开始标记 我怎样才能使我的HTML有效&仍然保持我

我有一个div,如果你点击div上的任何地方,它会打开另一个网页。所以本质上整个div是一个巨大的超链接。因此,我有一个div,然后在里面我有一个a元素,然后在里面我有div的所有元素(一些ul,一些p等等)

我的问题:当我尝试在w3标记验证器中验证我的HTML时,我会出现错误,因为我在a元素内部有一个ul、p等

实际误差:

文档类型此处不允许元素“p”;少了一个 “对象”、“小程序”、“映射”、“iframe”、“按钮”、“ins”、“del”开始标记

我怎样才能使我的HTML有效&仍然保持我的div作为一个大链接

<div id="rentalAnnc">
    <a class="sidebarLink" href="facilitiesForHire.html">
        <p>KAZCARE has a range of Education Facilities available for Lease &amp; Hire at its Bowral location.</p>
        <!--<p>Click here for more information.</p>-->
    </a>
</div>

在HTML5中,只能在锚点中包含块级内容。您不能在任何非草稿版本中使用。如果您希望它符合规范,请切换到HTML5

请注意,这样做


*我们不要讨论
黑客,它允许您以有效但不一致的方式进行操作,因为DTD的表达能力不足以禁止它,但是规范的文本是锚定的,您可以拥有的只有其他内联元素。查看W3C文档:


如果可能,在
div
中添加
onclick
属性,而不是使用
a
标记。 例如:


KAZCARE拥有一系列可供租赁的教育设施;在其Bowral位置雇佣员工


正如“昆汀”在回复中所说,这种链接只能通过HTML5进行验证。为此,请将文档的定义(HTML的第一行)更改为:


这样,您的HTML现在将成为HTML5(魔法!),并且在a href标记中允许使用块元素[h1]和[p],遵守以下标准:

<a href=”Destination.html”>
    <h3>Cool link</h3>
    <p>The coolest link in the world.</p>
</a>

当然,这有一个问题,因为您可能有一个以前的文档定义,如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

将doc类型从“strict”更改为“Transitional”或HTML5会使浏览器呈现的元素略有不同(特别是当它们处于quircks模式时),因此您应该再次检查页面如何使用新doctype呈现

我讨厌HTML从HTML5开始就不允许这样做,因为如果HTML的语义需要有一个标题和一个parragraf作为链接,标准应该允许您这样做

无论如何,请注意思考“锚定内的块级别”将如何影响可访问性,因为链接内很长的内容对于使用屏幕阅读器的盲人来说可能是一个问题


现在,为你的锚提供一个漂亮的css样式,里面有块元素,并享受它吧!:)

您可以为

改用:

这不仅仅是针对你的,而是针对所有“回答者”,伙计们,我想让我的整个div成为一个链接并成为有效的HTML。我知道它不是有效的HTML,我正在寻求一种方法来做到这一点,建议一个库,css技巧等。设置一个Anchor为一个块,100%的高度,改变p元素的跨度,并设置他们也显示:块。值得注意的是,这种方法意味着它不是一个真正的链接,因此它不会出现在链接列表中(这对屏幕阅读器用户非常有用),并且在没有指针设备的情况下无法导航(有些人喜欢使用键盘,有些人有残疾,无法使用鼠标),如果没有JavaScript,它也无法工作。在div中也包含一个链接!
<a href=”Destination.html”>
    <h3>Cool link</h3>
    <p>The coolest link in the world.</p>
</a>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">