Как указано в спецификации HTML5
Элемент a может быть обернут вокруг целых абзацев, списков, таблиц и т. Д., Даже целых разделов, если в них нет интерактивного содержимого (например, кнопок или других ссылок).
Имея это в виду, у меня есть документ WordPress PHP, начинающийся с doctype HTML5 (<!DOCTYPE html>
), и я обертываю <article>
с <a>
, и установил <a>
в display: block
.
Мой источник PHP:
<a href="<?php the_permalink(); ?>">
<article>
<header>
Some header content
</header>
<footer>
Some footer content
</footer>
</article>
</a>
Но когда я просматриваю его в нескольких современных браузерах (протестированных в Chrome, Firefox и Safari), я получаю следующее:
<a href="the-correctly-rendered-url">
</a>
<article>
<a href="the-correctly-rendered-url"></a>
<header>
<a href="the-correctly-rendered-url">
Some header content
</a>
</header>
<footer>
Some footer content
</footer>
</article>
Обертка <a>
полностью перемещается за пределы <article>
и дублируется, чтобы обернуть некоторые элементы внутри нее.
Эти браузеры просто не соответствуют спецификациям HTML5? Что можно сделать, если отображаемая страница не соответствует заданной спецификации?