Span внутри якоря или якорь внутри пролета или не имеет значения? - PullRequest
99 голосов
/ 19 ноября 2009

Я хочу вложить теги span и a. Должен ли я

  1. Поместить <span> внутрь <a>
  2. Положите <a> внутрь <span>
  3. Это не имеет значения?

Ответы [ 10 ]

105 голосов
/ 19 ноября 2009

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>
32 голосов
/ 19 ноября 2009

Вполне допустимо (по крайней мере, по стандартам HTML 4.01 и XHTML 1.0) вкладывать <span> в <a> или <a> в <span>.

Просто чтобы доказать это самому, вы всегда можете проверить это в 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, и оба успешно прошли проверку!

Единственное, о чем нужно знать, это убедиться, что вы закрываете теги в правильном порядке. Поэтому, если вы начинаете с <span>, а затем <a>, убедитесь, что сначала вы закрыли тег <a>, прежде чем закрывать <span> и наоборот.

19 голосов
/ 19 ноября 2009

Это не имеет значения - они оба могут находиться внутри друг друга.

16 голосов
/ 20 ноября 2009

SPAN - это встроенный контейнер GENERIC . Не имеет значения, находится ли a внутри span или span внутри a, так как оба являются встроенными элементами. Не стесняйтесь делать то, что кажется вам логически правильным.

16 голосов
/ 19 ноября 2009

это зависит от того, что вы хотите разметить.

  • , если вы хотите ссылку внутри диапазона, поместите <a> в <span>.
  • если вы хотите разметить что-либо в ссылке, поместите <span> в <a>
2 голосов
/ 19 ноября 2009

Зависит от того, для чего предназначен диапазон. Если это относится к тексту ссылки, а не к факту, что это ссылка, выберите # 1. Если интервал относится к ссылке в целом, выберите # 2. Если вы не объясните, что представляет собой промежуток, ответа на этот вопрос будет немного больше. Оба они являются встроенными элементами и могут быть синтаксически вложены в любом порядке.

1 голос
/ 23 января 2015

Может иметь значение, например, если вы используете какой-либо вид значка шрифта. У меня было это только сейчас с:

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

Обычно я помещал бы промежуток внутри A, но стиль не вступал в силу, пока не поменял его местами.

1 голос
/ 14 июля 2011

Лично я, как веб-разработчик, помещаю интервал внутри тега привязки только в том случае, если я пытаюсь выделить часть текста ссылок, например, применяя фон к одному разделу.

0 голосов
/ 19 ноября 2009

Семантически, я думаю, имеет больше смысла, так как это контейнер для отдельного элемента, и если вам нужно вложить их, то это предполагает, что внутри внешнего элемента будет больше, чем элемент.

0 голосов
/ 19 ноября 2009

Это будет работать и то и другое, но лично я бы предпочел вариант 2, так что интервал «вокруг» ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...