我是css的新手,我的问题是这样的:我想在一个新行中使用水平线。
所以我认为这是一个好主意:
<p><hr/></p>
但它改为:
<p></p>
<hr>
<p></p>
为什么?
编辑:
谢谢你的答案。你说得对,这个问题很神秘。下次我将使用jsfiddle更具体^^
答案 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,但是现代浏览器会尝试自动更正错误:
<p>
,打开一个段落,确定<hr>
,伙计,您忘了关闭段落,我在</p>
之前添加了<hr>
</p>
,伙计,您忘了打开段落,我在<p>
之前添加了</p>
结果是:
<p>
</p> - added by the broswer
<hr>
<p> - added by the broswer
</p>