跨度内的锚或锚是跨度还是无关紧要?

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

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

3 – 没关系。

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

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

这是完全有效的(至less通过HTML 4.01和XHTML 1.0标准)将<span>嵌套在<a><span><a>内。

为了certificate这一点,您可以随时查看W3C MarkUpvalidation服务

我尝试validation:

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

也和上面一样,但是在<span><a>

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

同时使用HTML 4.01和XHTML 1.0文档types,并且都通过了validation成功!

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

这取决于你想要标记的东西。

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

这并不重要 – 它们都是相互允许的。

SPAN是一个GENERIC内联容器。 无论a是内部span还是span内部都是内联元素。 随意做任何似乎在逻辑上正确的你。

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

就个人而言,作为一个Web开发人员,如果我想突出显示链接文本的一部分,比如将一个背景应用到一个部分,我只能将一个范围放在一个定位标记中。

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

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

通常我会把跨度放在A里面,但是直到交换之后,造型才会生效。

它将同时工作,但我个人更喜欢选项2,所以跨度是“在”链接“左右”。

在语义上,我觉得更像是单个元素的容器,如果你需要嵌套它们,那么表明多个元素将在外部元素内。