跨越锚或锚内跨度或无关紧要?

时间:2009-11-19 13:18:48

标签: html css semantic-markup

我想嵌套spana标签。我应该

  1. <span>放入<a>
  2. <a>放入<span>
  3. 没关系?

10 个答案:

答案 0 :(得分:103)

3 - 没关系。

但是,我倾向于只在<span>内使用<a>,如果它仅用于标签内容的部分,即

<a href="#">some <span class="red">text</span></a>

而不是:

<a href="#"><span class="red">some text</span></a>

显然应该是:

<a href="#" class="red">some text</a>

答案 1 :(得分:32)

完全有效(至少通过HTML 4.01和XHTML 1.0标准)在<span>内嵌<a>或在<a>内嵌套<span>。 / p>

为了向自己证明,您可以随时查看W3C MarkUp Validation Service

我尝试过验证:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  <html>
    <head>
      <title>Title</title>
    </head>
    <body>
       <p>
         <a href="http://www.google.com/"><span>Google</span></a>
       </p>
    </body>
  </html>

也与上述相同,但<a>

中有<span>

<span><a href="http://www.google.com">Google</a></span>

同时使用HTML 4.01和XHTML 1.0 doctypes,并且两者都成功通过了验证!

唯一需要注意的是确保以正确的顺序关闭标记。因此,如果您从<span>开始<a>,请确保先关闭<a>代码,然后再关闭<span>,反之亦然。

答案 2 :(得分:19)

没关系 - 他们都被允许进入对方。

答案 3 :(得分:16)

取决于你想要标记的内容。

  • 如果您想要跨度内的链接,请将<a>放在<span>
  • 如果您想在链接中标记某些内容,请将<span>放入<a>

答案 4 :(得分:16)

SPAN是 GENERIC 内联容器。 a内的spanspan内的a是否为内联元素并不重要。随意做一些看似逻辑正确的事情。

答案 5 :(得分:2)

这取决于跨度的范围。如果它引用链接的文本,而不是链接的事实,请选择#1。如果跨度指的是整个链接,则选择#2。除非你解释跨度代表什么,否则没有更多的答案。它们都是内联元素,可以按任何顺序在语法上嵌套。

答案 6 :(得分:1)

就个人而言,作为一名网络开发者,如果我试图突出显示链接文本的一部分,例如将背景应用于一个部分,我只会在一个锚标记中添加一个范围。

答案 7 :(得分:1)

例如,如果您使用某种排序图标字体,则可能很重要。我刚才有这个:

<span class="fa fa-print fa-3x"><a href="some_link"></a></span>

通常情况下,我会将跨度放在A中,但样式在交换之前不会生效。

答案 8 :(得分:0)

它可以同时工作,但我个人更喜欢选项2,所以跨度是“环绕”链接。

答案 9 :(得分:0)

语义上我认为更有意义,因为它是单个元素的容器,如果你需要嵌套它们,那么这表明元素将在外部元素内部。