Какие элементы может содержать тег span в HTML5?

Так что я большую часть своей карьеры был разработчиком CLI или Cron на PHP, и теперь я узнаю, почему мне не нравится работа с пользовательским интерфейсом в школе;) Я имею дело с проверкой HTML5 здесь, и я не нахожу ответа на вопрос, который для любопытства. Я запустил валидацию W3C HTML5 на своей домашней странице и получил несколько ошибок, связанных с тем, что div находится внутри <span> и это не разрешено. Я пытался изменить все <div> в промежутках до <p> но получить в значительной степени ту же ошибку. http://www.w3schools.com/html5/tag_span.asp прямо не говорит, какие элементы разрешены в <span> и также не делает ошибку от валидатора:

Строка 85, столбец 69: Элемент p не допускается как дочерний элемент span в этом контексте. (Подавление дальнейших ошибок из этого поддерева.)

2 вопроса:

1) Какие элементы, если таковые имеются, разрешены в <span>?

2) Где я могу ссылаться на то, какие элементы разрешены в другом? Я гуглил, но не вижу ничего, на котором есть штамп "W3C".

1 ответ

Решение

Только встроенные элементы могут содержаться внутри встроенных элементов. span это встроенный элемент. Итак, теги вроде a, img, supи т. д. могут входить в диапазон, но элементы уровня блока div а также p не могу.

ОБНОВИТЬ

В действительности разные элементы, которые по умолчанию встроены в дисплей, ведут себя по-разному. Некоторые "встроенные" элементы могут разрешать блочные элементы (a например), а другие нет (как span).

Если вас интересует, что может содержать тег HTML, ваш самый официальный источник - это страница WHATWG с элементами HTML. Вы можете проверить любой элемент HTML и посмотреть, какой контент разрешен (см. "Модель содержимого" для каждого элемента):

http://www.whatwg.org/specs/web-apps/current-work/multipage/

Вот определение тега span, который указывает, что разрешено только "фразовое" содержимое.

http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html

Другие вопросы по тегам