Я думаю, что это довольно сложный вопрос для ответа. Возможно, лучший подход к несколько разумному ответу будет заключаться в том, чтобы сосредоточиться на том, почему должно быть не, как описано, чем это возможно.
Прежде всего, речь идет о HTML-языке разметки HyperText. Давайте рассмотрим это как язык описания ресурса. Имея в виду свою историю, давайте также предположим, что с точки зрения ресурсов мы говорим о простых текстовых документах.
Итак, теперь есть очень простые понятия для описания такого документа семантически, например «это заголовок» (h1), «это абзац» (p), «это список» (li), и поэтому на.
Одна из этих концепций - это ссылка, которая используется для ссылки на другой ресурс. Существует несколько типов ссылок, например. г. для ссылки на таблицу стилей (ссылку), изображение (img) или другой документ (форму).
А-элемент семантически (!) Связан с этой концепцией и представляет/описывает взаимосвязь между двумя ресурсами. Таким образом, вы бросаете якорь из источника в пункт назначения и, возможно, описываете это отношение. Это как рисование линии между двумя объектами в диаграмме UML и описание того, как они связаны.
Таким образом, элементы <p>
и <a>
описывают совершенно разные понятия. Он объявляет абзац в тексте, а другой описывает взаимосвязь между ресурсами.
Итак, с семантической точки зрения, что-то вроде <p href="other-page.html">Some Text</p>
означает? Что абзац в тексте связан с другим ресурсом ...? Что пункт описывает взаимосвязь между ресурсами? Это даже имеет смысл? В реальной книге, которая была бы как абзац на странице 1, говоря «эй, я связан со стр. 123». Но тогда это будет не абзац, а описание отношения - и у нас уже есть эта концепция, реализованная тегом <a>
.
Это в основном, как говорят
<p>
<a href="other-page.html">
I'll just put the whole relationship description in a paragraph.
</a>
</p>
Какой смысл? Абзац - это абзац, а описание ссылки - это описание ссылки. Параграф может содержать ссылку, но не только состоять из ссылки, потому что это не имеет большого смысла с точки зрения семантики.
Но вернемся к будущему сейчас. В настоящее время мы имеем дело с более сложными документами и больше фокусируемся на пользовательском интерфейсе и как сделать его привлекательным, а не семантикой. Пока это выглядит хорошо, нам (в основном) все равно, если текст завернут в p
, a div
, article
или span
- в конце концов, это просто описание, и в большинстве случаев нам просто нужно что-то сделать ссылка из CSS или JS.
Таким образом, люди не заботятся о разметке, но компьютеры это делают.Та же семантика по-прежнему верна, и они являются единственным способом для компьютеров, таких как бот Google, выяснить, в какой части документа они имеют дело и как его обрабатывать (например: «эй, это статья, это, вероятно, самая важная часть "или" это только нижний колонтитул, не обращайте внимания на дублированный контент ").
В первые дни не существовало никакого способа «стилизовать» элементы, поэтому, вероятно, он выглядел несколько иначе в разных пользовательских агентах. Пользовательский агент просто знал: «Хорошо, это заголовок, давайте сделаем это полужирным шрифтом и немного увеличим размер шрифта».
Таким образом, у каждого элемента есть своя цель и отдельные проблемы. И когда вы пытаетесь объединить их, вам не нужно будет комбинировать свойства обоих (дублирующие атрибуты, различную обработку в браузерах, ...), но вам также придется описать, что это значит. И вы, вероятно, узнаете, что это не имеет никакого смысла.
Я надеюсь, что хотя бы этот ответ имел какой-то смысл и что он каким-то образом отвечает на ваш вопрос.
Многие хорошие вопросы порождают определенное мнение, основанное на опыте экспертов, но ответы на этот вопрос будут, как правило, почти полностью основаны на мнениях, а не на фактах, ссылках или конкретном опыте. – MarsOne
Почему бы не добавить 'src' на' div' вместо 'img'? Потому что это «по дизайну». –
Наиболее важным атрибутом элемента является атрибут href, который указывает назначение ссылки. –