@dyus1
// TODO

Тэги внутри ссылки это нормально?

Считается ли хорошим тоном, вставлять различные html тэги в тэг a? Например, будет ли правильно обернуть заголовок h3 в ссылку, или же лучше ссылку обернуть в заголовок?
  • Вопрос задан
  • 226 просмотров
Решения вопроса 3
bingumd
@bingumd
...
Ответ написан
Комментировать
nikolayshabalin
@nikolayshabalin
Автор профессиональных курсов в HTML Academy
Отличный вопрос, так как нужно разобраться с тем в какую категорию входит тег и какой контент он ожидает. И с ссылками не всё так просто.

Категория: если посмотреть в спецификацию, то <a> входит в категорию потока, фраз, ощутимых элементов. Каждый элемент имеет категории, которые используются при определении контентной модели.

Контентная модель: прозрачная. И вот тут самый интересный момент, потому что чаще всего элемент ждёт такие же стандартные категории как поток или фраза, а что значит прозрачный не совсем понятно. Если коротко, то прозрачная - зависит от контентной модели родителя. Какой родитель у ссылки такая контентная модель у ссылки.

То есть на ваш вопрос "будет ли правильно обернуть заголовок h3 в ссылку" ответить нельзя пока мы не узнаем какой родитель у ссылки.

Вот так нельзя
<span>
  <a href="">
    <h3>Заголовок</h3>
  </a> 
</span>


А вот так уже можно
<div>
  <a href="">
    <h3>Заголовок</h3>
  </a> 
</div>


По поводу "или же лучше ссылку обернуть в заголовок" - можно

<h3>
  <a href="">Заголовок</a>
</h3>


Если у вас ещё проблемы с вкладыванием элементов, то лучше спеки не найти - https://html.spec.whatwg.org/multipage/text-level-...

Смотрите на:
1. интерсующий элемент: span, div, button, a
2. его категорию: flow, phrasing
3. его контентную модель: flow, phrasing

Категория - отвечает за тип элемента. Контентная модель - что можно вставить в элемент.
Ответ написан
Vlatqa
@Vlatqa Куратор тега HTML
Да
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@mirayo
начинающий
Насколько мне известно, блочные элементы внутрь ссылки не вставляют, а делают ровно наоборот
Т.е. хороший тон - это
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы