it-swarm.com.ru

Span внутри якоря или якорь внутри пролета или не имеет значения?

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

  1. Поместите <span> внутри <a>
  2. Поместите <a> внутри <span>
  3. Это не важно? 
94
user214582

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>
101
Jon Hadley

Вполне допустимо (по крайней мере, согласно стандартам 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> и наоборот.

32
CraigTP

Это не имеет значения - они оба позволены друг другу.

18
Greg

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

  • если вам нужна ссылка внутри промежутка, поместите <a> внутри <span>.
  • если вы хотите разметить что-то в ссылке, поместите <span> в <a>
16
knittl

SPAN - этоУНИВЕРСАЛЬНЫЙвстроенный контейнер. Не имеет значения, находится ли a внутри span или span находится внутри a, так как оба являются встроенными элементами. Не стесняйтесь делать то, что кажется вам логически правильным.

16
Salman A

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

2
sykora

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

1
Xopa

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

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

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

1
user1368737

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

0
Toby

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

0
Oldskool