2016-06-15 4 views
2

Я думал, что в HTML5 вы могли бы блокировать элементы, как дети <a> элементов, как и понятно из спецификации:Возможно ли figcaption быть дочерним элементом тега <a> в HTML5?

https://www.w3.org/TR/html-markup/a.html#a

Although previous versions of HTML restricted the a element to only containing phrasing content (essentially, what was in previous versions referred to as “inline” content), the a element is now transparent; that is, an instance of the a element is now allowed to also contain flow content (essentially, what was in previous versions referred to as “block” content)—if the parent element of that instance of the a element is an element that is allowed to contain flow content.

Но теперь, когда я проверил мою страницу с HTML валидатор я нашел это сообщение об ошибке:

Error: Element “figcaption” not allowed as child of element “a” in this context. (Suppressing further errors from this subtree.)

код выглядит следующим образом:

<figure class="post"> 
 
    <a href="#" title="foo"> 
 
    <figcaption class="articuloInfo "> 
 
     <h3>FOO</h3> 
 
     <p class="fecha">4/04/2014</p> 
 
     <div class="descripcion"> 
 
     </div> 
 
    </figcaption> 
 
    <div class="imagen"> 
 
     <img src="foo.jpg" alt="foo"> 
 
    </div> 
 
    </a> 
 
</figure>

Может кто-нибудь объяснить мне, где ошибка и почему?

+1

'

' s не [содержание потока] (http://w3c.github.io/html/dom.html#flow-content). – Alohci

+0

@ Алохчи, что это значит? – Vandervals

ответ

2

Вы не должны использовать https://www.w3.org/TR/html-markup/, потому что он устарел (it’s a Рабочая записка Рабочей группы от 2013 года). Спецификация HTML5 является: https://www.w3.org/TR/2014/REC-html5-20141028/

Для figcaption element, списки спецификации "Контексты, в которых этот элемент может быть использован", которым являются:

As the first or last child of a figure element.

Это говорит ребенок (не потомок), поэтому он не может иметь элемент a как родительский.

Вы можете поместить a элемент вокруг figure элемента вместо (что возможно из-за части вы цитируемыми: a может содержать содержимое потока в настоящее время):

<a href="#" title="foo"> 
    <figure class="post"> 
    <!-- … --> 
    </figure> 
</a> 
+2

Фактически, моментальный снимок спецификации HTML5.0 также устарел. Текущая версия HTML W3C, HTML5.1 (которая планируется стать этой осенью), позволяет 'figcaption' [в любом месте' figure'] (https://github.com/w3c/html/pull/181) , Однако в текущем выпуске WHATWG Living Standard по-прежнему требуется, чтобы 'figcaption' должен был быть только первым или последним дочерним элементом (не« потомком ») фигуры, как W3C HTML5.0. –

+0

@IlyaStreltsyn: Хорошая информация об изменении HTML 5.1, спасибо! (Но я не считаю, что HTML5 устарел, так как это самая последняя рекомендация W3C для HTML, поскольку HTML 5.1 по-прежнему является рабочим проектом.) – unor

+1

Я также думал, что опубликованные снимки спецификаций W3C являются фактическими стандартами, а рабочие черновики экспериментальные вещи на будущее. Но мне пришлось передумать после [этой темы] (https://www.webmasterworld.com/html/4672800.htm#msg4679983). Похоже, что даже не рабочие черновики, а самые последние редакционные проекты - это версии спецификаций, которые заинтересованы разработчиками. –

 Смежные вопросы

  • Нет связанных вопросов^_^