Какие элементы может содержать тег 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