我们可以在<a> tag?</a> </ul>中添加<ul>

时间:2012-06-08 09:03:54

标签: html dreamweaver markup

当我在锚标签内部编写html代码时,我的Dreamweaver编辑器显示了锚标记中的错误。不应该使用内部标签?是否有编写/使用标签的规则?

我使用的是Html 5.这是我的代码。 http://jsfiddle.net/CfPnj/

6 个答案:

答案 0 :(得分:7)

在HTML5中,您可以放置​​块元素insize <a>元素。见http://dev.w3.org/html5/markup/a.html#a-changes
这是HTML5中的新功能。在任何其他版本的HTML中,它都是非法的。

更新(稍后添加,当我更好地理解HTML5时)

这是因为<a>的内容模型已从内联更改为透明。换句话说,你可以放在<a>里面的东西现在和你在<a>的父亲身上放的东西相同。这里问题的实际答案是“它取决于” 例如,

<div><a><ul><li></ul></a></div>

是完全有效的HTML5,而

<span><a><ul><li></ul></a></span>

不是(因为span是内联元素) 希望这有帮助!

答案 1 :(得分:6)

<ul>是一个块元素标记,而<a>是一个内联元素标记 - 块元素标记应该永远不会进入内联元素标记,只是反过来(或其他内联元素标签内的内联元素标签)......

从这里开始,然后谷歌了解更多信息:http://line25.com/articles/10-html-tag-crimes-you-really-shouldnt-commit

答案 2 :(得分:1)

通常,内联元素仅允许其他内联元素作为子元素。如果您查看HTML 4.01 Doctype Definition,您会发现<a>代码确实如此(第342行)。您的IDE将<ul>标记内的<a>标记标记为无效是正确的,但大多数浏览器仍会“做正确的事情”。

答案 3 :(得分:1)

你是否想要做这样的事情:

<a href="google.com">
    <ul>
        <li>Google.com</li>
        <li>Gmail.com</li>
    </ul>
</a>​

根据HTML规则,它的语法正确,因为HTML没有显示任何error因此它在您的Dreamweaver中显示为 bug

它会播种这样的东西:

- Google.com
- Gmail.com

但这两个链接的位置相同 google.com

我以为你正试图做这样的事情:

<ul>
    <li><a href="google.com">Google.com</a></li>
    <li><a href="stackoverflow.com">stackoverflow.com</a></li>
</ul>

它将呈现为:

那没有任何错误..

答案 4 :(得分:0)

您不必将代码放在锚链接中,因为当您单击链接时,您将被重定向到锚点的顶部,因此您不需要在<a>中编写所有代码

答案 5 :(得分:0)

根据http://validator.w3.org,这在HTML5中有效

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>title</title>
  </head>
  <body>
     <a href="#"><ul><li>foo</li></ul></a>
  </body>
</html>

但不是HTML4.1(严格)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
  <html lang="en">
    <head>
      <title>title</title>
    </head>
    <body>
      <p>
        <a href="#"><ul><li>foo</li></ul></a>
      </p>
   </body>
  </html>

但是在语义上(对我来说)这样做感觉不对: - )

查看规范<ul> is allowed 预期流内容<a> is categorized 流内容