Заголовок внутри ссылки или ссылки внутри заголовка в разметке HTML?

Возможный дубликат:
Что является более правильным: <h1 > <a> .. </a> </h1 > OR <a> <h1 > </h1 > </a>
Семантически, что является более правильным: a в h2 или h2 в?

Это простой вопрос о HTML. Каков правильный/наиболее предпочтительный способ поместить ссылку в заголовок, абзац или другой элемент HTML?

Таким образом:

<h2><a href="">Some Title</a></h2>

Или так:

<a href=""><h2>Some Title</h2></a>

Ответы

Ответ 1

Лучше

<h2><a href="">Some Title</a></h2>

потому что h - это элемент с блоком отображения, и нет хорошей практики иметь block в элементе a.

Ответ 2

Примечание. Вы не можете поместить заголовок внутри ссылки в HTML4.

В HTML5 это зависит от эффекта и смыслового значения, которое вы собираетесь делать. Ввод всего заголовка внутри ссылки приведет к тому, что область, на которую можно щелкнуть, будет охватывать всю ширину, тогда как размещение ссылки внутри заголовка приведет к тому, что текст будет доступен только для текста. Я использовал обе версии раньше, но это полностью зависит от того, где я помещаю заголовок.

Ответ 3

Я предпочитаю второй:

<a href=""><h2>Some Title</h2></a>

потому что у вас больше контроля, например, если вы хотите сделать что-то вроде этого:

<a href=""><h2>Some Title</h2> <h1>biggest</h1></a>

Ответ 4

Оба они отлично работают.

Вы можете проверить себя http://validator.w3.org/, если хотите.

Ответ 5

С технической точки зрения, <a> является встроенным элементом, а <h2> является элементом уровня блока, поэтому:

<h2><a href="">Some Title</a></h2>

- правильное вложение.

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

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

Ответ 6

<h1><a href="#">text here</a></h1>

является правильным, так как HTML не допускает элемент block() внутри встроенного элемента() (src). ваш второй пример не пройдет проверку.

Как правило, элементы уровня блока могут содержать встроенные элементы и другие элементы уровня блока. Как правило, встроенные элементы могут содержать только данные и другие встроенные элементы. В основе этого структурного различия лежит идея о том, что блочные элементы создают "более крупные" структуры, чем встроенные элементы.

Я только что скопировал это из другого вопроса...