使用<p> </p>在新行中获取<hr />

时间:2014-05-08 08:07:07

标签: html

我是css的新手,我的问题是这样的:我想在一个新行中使用水平线。

所以我认为这是一个好主意:

<p><hr/></p>

但它改为:

<p></p>
<hr>
<p></p>

为什么?

编辑:

谢谢你的答案。你说得对,这个问题很神秘。下次我将使用jsfiddle更具体^^

5 个答案:

答案 0 :(得分:4)

段落元素只允许phrasing content嵌套在其中。由于可以省略</p>,因此浏览器会在看到&#34;非法&#34;内容,例如<hr>

参见&#34;允许的内容&#34;和#34;标记遗漏&#34;在https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p

答案 1 :(得分:3)

HTML <p>元素是一个块级元素,只能包含Phrasing Content;也就是说,文本和标记文本包含。

<hr>元素表示段落元素之间的主题中断,并且在中包含一个是没有意义的。该标准规定,在<hr>块级元素之前,会生成一个隐式</p>,用于关闭所有打开的<p>元素。

简而言之,您尝试做的事情违反了段落和横向规则的语义。

答案 2 :(得分:0)

要创建新行,请使用<br /><p></p>用于段落。

答案 3 :(得分:0)

唯一的解决方案是:

<hr style="clear:both;">

此代码在整个宽度上产生小时。它自动从文本区域的左侧开始,即使前一段有一个小图片,所以它永远不会从该图片旁边开始。

答案 4 :(得分:0)

该网站返回您的HTML且未做任何更改。您可以在浏览器网络调试器中进行检查。

如@Wooble所述,<p><hr></p>是不正确的html,但是现代浏览器会尝试自动更正错误:

  1. <p>,打开一个段落,确定
  2. <hr>,伙计,您忘了关闭段落,我在</p>之前添加了<hr>
  3. </p>,伙计,您忘了打开段落,我在<p>之前添加了</p>

结果是:

<p>
</p> - added by the broswer
<hr>
<p>  - added by the broswer
</p>