117

我想嵌套spana标记。我是不是该

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

10 回答 10

113

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>
于 2009-11-19T13:25:46.680 回答
34

将 a 嵌套<span>在 an内<a>或将a 嵌套在.<a><span>

只是为了向自己证明这一点,您可以随时查看W3C 标记验证服务

我尝试验证:

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

IE

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

使用 HTML 4.01 和 XHTML 1.0 文档类型,并且都成功通过了验证!

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

于 2009-11-19T13:32:56.980 回答
20

没关系 - 他们都被允许进入彼此。

于 2009-11-19T13:21:19.247 回答
18

这取决于您要标记的内容。

  • 如果你想要一个跨度内的链接,请<a>放入<span>.
  • 如果您想在链接中标记某些内容,请<span>放入<a>
于 2009-11-19T13:22:06.893 回答
16

SPAN 是一个GENERIC内联容器。aan是在内部span还是span在内部都没有关系,a因为两者都是内联元素。随意做任何对你来说逻辑上正确的事情。

于 2009-11-20T14:14:41.353 回答
2

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

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

通常我会将跨度放在 A 内,但样式直到交换它才生效。

于 2015-01-23T09:22:44.507 回答
2

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

于 2009-11-19T13:22:40.820 回答
1

就个人而言,作为一名 Web 开发人员,如果我试图突出显示链接文本的一部分,例如为一个部分应用背景,我只会在锚标记中放置一个跨度。

于 2011-07-14T09:10:43.183 回答
0

从语义上讲,我认为作为单个元素的容器更有意义,如果您需要嵌套它们,那么这表明不止一个元素将位于外部元素的内部。

于 2009-11-19T13:49:57.850 回答
0

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

于 2009-11-19T13:22:53.520 回答