我将我的HTML代码简化为此
<!doctype html>
<body>
<div class="index-div">
<p id="whoarewe">
<h2>Who are we?</h2>
wersfgse
</p>
</div>
</body>
</html>
但是,当我运行它并打开页面源时,它会显示&#34;范围内没有p元素但是看到了p结束标记&#34;。它运行正常,但由于一些奇怪的原因,Intellij Idea和Firefox都将它显示为不必要的/ p标签。我的电脑是否出现故障?
答案 0 :(得分:2)
该错误消息的含义是,当HTML处理器遇到p#whoarewe
元素时,h2
元素已被隐式关闭,因此该特定点的</p>
结束标记似乎是无偿的因为没有开放的p
元素可以关闭结束标记。
所以不,你的电脑没有故障。标记确实是格式错误。
根据您要完成的操作,#whoarewe
看起来应该是自己的div
元素或切片元素,而不是p
。段落不能包含标题;它们是两个主题上独立的结构,不能存在于另一个中。
答案 1 :(得分:2)
属于Phrasing content类别的固定元素集可以是<p>
元素的子元素:
短语内容是文档的文本,以及元素 在段落内标记该文本。短语的运行 内容形式段落。
a abbr area (if it is a descendant of a map element) audio b bdi bdo br button canvas cite code data datalist del dfn em embed i iframe img input ins kbd keygen label map mark math meter noscript object output progress q ruby s samp script select small span strong sub sup svg template textarea time u var video wbr Text
<h2>
元素和许多其他块级元素一样,不属于此处。在这种情况下,<p>
元素会自动关闭。引用the docs:
如果p元素是立即的,则可以省略p元素的结束标记 接着是
address
,article
,aside
,blockquote
,div
,dl
,fieldset
,footer
,form
,h1
,h2
,h3
,h4
,h5
,h6
,{{ 1}},header
,hgroup
,hr
,main
,nav
,ol
,p
,pre
,section
或table
,元素,或者如果没有更多内容 父元素和父元素中的内容不是a 元件。
在这种特殊情况下,DOM的结构如下:
ul
...而且,正如您所看到的,结束标记并不受欢迎。实际上,您应该感谢Firefox DOM Inspector标记此错误。 )