空的段落标签 – 我应该允许在HTML编辑器吗?

前端之家收集整理的这篇文章主要介绍了空的段落标签 – 我应该允许在HTML编辑器吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用CKEditor 4,它似乎有一个默认设置,使用< p>< / p>以表示空行.到目前为止,我一直看到以< p>& nbsp;< / p>表示的 HTML中的空白行 – 即不是空标签.

所以CKEditor的默认输出代表空行,例如:

<p>paragraph before blank line</p>
<p></p>
<p>paragraph after blank line</p>

问题是,对于一个变化,IE7,8,9似乎将这个“正确”呈现为一个空白行,而Firefox和Chrome不会 – 他们似乎忽略空的< p>和< div>标签,在布局方面.

所以,现在我要告诉CKEditor来加入& nbsp;空白行(由于某种原因而不是其默认设置),而在后端,将替换空的< p>可能滑过的标签.

我的问题是,在HTML中表示空白行的黄金标准是什么?古老的< p>< / p>或其他内容

另外,由于CKEditor的默认设置是空的< p>标记为空白行,Chrome和Firefox是否错误忽略?或者是将IE作为空行显示错误,CKEditor的默认值应该是使用< p>& nbsp;< / p>?

解决方法

根据 HTML 4.01 on the p element,< p>< / p>是有效的,但不应该使用,浏览器应该忽略它.浏览器行为不一致,一般不遵守规范.您可以使用< hr>< hr>< p>< / p>< hr>例如,在Chrome上,它表明虽然p元素具有零高度,但它具有顶部和底部边距,因此它影响渲染,即不被忽略. – 对于这个问题,HTML5 CR似乎没有任何意见,也就是说没有任何关于具有空的内容的p元素的具体内容.更新:HTML5有一个关于元素的内容,包含内容模式(如p)的元素:这样的元素应该包含“应该至少有一个后代的文本节点,不是元素间空格,或至少一个后代元素嵌入内容的节点“.这意味着< p>< / p>不应该使用;但这是一个建议,而不是一致性要求(“应该”而不是“应”).

< p>< / p>的效果是未定义的规范(无休止空格字符的渲染尚未定义),但浏览器通常将不间断空格视为另一个图形字符,恰好恰好以空字形呈现.所以在实践中它会生成一个线框,其高度由线高度的计算值决定.

默认情况下,p元素之间存在边距,对应一个空行.因此,任何对p元素之间的空白行的需求似乎都是通过覆盖默认样式引起的,例如CSS中的p {margin:0}.为了覆盖它,应该使用附加的CSS而不是人造p元素.也就是说,一些p元素应该具有合适的非零底或上边距.

HTML 4.01将“white space characters”定义为Ascii空间,Ascii选项卡,Ascii表单Feed和零宽度空间(因此,不以空格为例),定义了它们的呈现,并补充说:“本规范并不表示行为,呈现或其他方式,除了这些明确标识为空白字符之外的空格字符.因此,作者应该使用适当的元素和样式来实现涉及空格而不是空格字符的视觉格式化效果.

猜你在找的HTML相关文章