Ответ 1
Лучше
<h2><a href="">Some Title</a></h2>
потому что h
- это элемент с блоком отображения, и нет хорошей практики иметь block
в элементе a
.
Возможный дубликат:
Что является более правильным: <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>
Лучше
<h2><a href="">Some Title</a></h2>
потому что h
- это элемент с блоком отображения, и нет хорошей практики иметь block
в элементе a
.
Примечание. Вы не можете поместить заголовок внутри ссылки в HTML4.
В HTML5 это зависит от эффекта и смыслового значения, которое вы собираетесь делать. Ввод всего заголовка внутри ссылки приведет к тому, что область, на которую можно щелкнуть, будет охватывать всю ширину, тогда как размещение ссылки внутри заголовка приведет к тому, что текст будет доступен только для текста. Я использовал обе версии раньше, но это полностью зависит от того, где я помещаю заголовок.
Я предпочитаю второй:
<a href=""><h2>Some Title</h2></a>
потому что у вас больше контроля, например, если вы хотите сделать что-то вроде этого:
<a href=""><h2>Some Title</h2> <h1>biggest</h1></a>
Оба они отлично работают.
Вы можете проверить себя http://validator.w3.org/, если хотите.
С технической точки зрения, <a>
является встроенным элементом, а <h2>
является элементом уровня блока, поэтому:
<h2><a href="">Some Title</a></h2>
- правильное вложение.
Тем не менее, браузер обычно игнорирует неправильное вложенное расположение и позволяет вам делать это так, как вы хотите.
Мне, мне не нравится соблазнительная судьба, когда речь заходит о браузере, который хочет запустить мою страницу в режиме соответствия стандартам или режиме Quirks, поэтому я выберу правильную вложенность.
<h1><a href="#">text here</a></h1>
является правильным, так как HTML не допускает элемент block() внутри встроенного элемента() (src). ваш второй пример не пройдет проверку.
Как правило, элементы уровня блока могут содержать встроенные элементы и другие элементы уровня блока. Как правило, встроенные элементы могут содержать только данные и другие встроенные элементы. В основе этого структурного различия лежит идея о том, что блочные элементы создают "более крупные" структуры, чем встроенные элементы.
Я только что скопировал это из другого вопроса...