html - 空段落标签 - 我是否应该允许在 HTML 编辑器中使用?

标签 html blank-line

我正在使用 CKEditor 4,它的默认设置似乎是使用 <p></p>表示空行。到目前为止,我总是看到 HTML 中的空行由 <p>&nbsp;</p> 表示- IE。不是空标签。

所以 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>&nbsp;</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 有一个 general statement关于以短语内容作为内容模式的元素(例如 p ):这样的元素应该包含“应该至少有一个非元素间空白的后代文本节点,或者至少有一个嵌入的后代元素节点内容”。这意味着 <p></p>不应使用;但这是一个建议,而不是一个一致性要求(“应该”,而不是“应该”)。

<p>&nbsp;</p>的效果规范未定义(不间断空格字符的呈现尚未定义),但浏览器通常将不间断空格视为另一个图形字符,恰好用空字形呈现。所以实际上它会生成一个线框,其高度由 line-height 的计算值决定。 .

默认情况下,p 之间有边距元素,对应一个空行。所以在 p 之间需要一个空行元素似乎是由覆盖默认样式引起的,例如 p { margin: 0 }在 CSS 中。为了覆盖它,额外的 CSS 而不是人为的 p应使用元素。即 p 中的一些元素应该有一个合适的非零底部或顶部边距。

HTML 4.01 定义了“white space characters”作为引用 Ascii 空间、Ascii 选项卡、Ascii 换页和零宽度空间(因此,不是例如不间断空间),定义了它们的呈现,并补充说:“本规范不指示除了此处明确标识为空白字符的空格字符的行为、呈现或其他方式。出于这个原因,作者应该使用适当的元素和样式来实现涉及空白而不是空格字符的视觉格式效果。”

关于html - 空段落标签 - 我是否应该允许在 HTML 编辑器中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14848326/

相关文章:

sql - 过滤掉雪花中的空字符串

perl - 比较两个文件时,如何跳过(忽略)空行?

Vbscript 修剪函数

html - 使用图像标签在网页上显示原始像素阵列

html - 如何解决移动设备上的 Bootstrap Grid 问题?

html - 在html css中实现不规则矩形图像 mask

C++ 忽略空的第一行

html - 样式化容器内的最后一个 div

HTML - 在页脚上对齐图像