【问题标题】:How to Rid of Large Spacing in CKEditor?如何摆脱 CKEditor 中的大间距?
【发布时间】:2011-12-27 06:50:30
【问题描述】:

我安装了 CKEditor,我发现它会导致行之间有很大的空间,即使我只是按一次 Enter 移动到下一个!我必须为每个输入按“Shift”才能获得断线!关于如何在不按 Shift 的情况下使其工作的任何想法?

第 2 行由按 Shift + enter 引起。 第 3 行是按 Enter 键引起的。

我正在使用 PHP

【问题讨论】:

  • 或者你基本上可以打SHIFT+ENTER<br>

标签: php html ckeditor


【解决方案1】:

您可以在 config.js 中设置使用 <br> 而不是 <p>,同时按下 ENTER 键:

config.enterMode = CKEDITOR.ENTER_BR;

可用的标志是

CKEDITOR.ENTER_P (1) – new <p> paragraphs are created;
CKEDITOR.ENTER_BR (2) – lines are broken with <br> elements;
CKEDITOR.ENTER_DIV (3) – new <div> blocks are created.

查看enterMode 的文档了解更多详情


扩展 Josepth Silber 答案(他知道已删除.. 他建议使用 config.autoParagraph = false; ),IIRC(手册并不清楚 create wrapping blocks around inline contents 的含义),autoParagraph 配置添加了一个 &lt;p&gt;&lt;/p&gt; 对围绕正文中的每个内联内容。因此,即使您在空行上按 Enter,它也会生成 &lt;p&gt;&lt;/p&gt;(或 &lt;p&gt;&amp;nbsp;&lt;/p&gt;,如果这样配置)。不过,手册建议保留该选项(因此设置为 true);

【讨论】:

  • +1 看来你的答案比我的更正确。我一定误解了autoParagraph 配置选项。那有什么作用?
  • AFAIK,它在每个内容周围添加了一个

    块。因此,如果您在空行上按 Enter,它仍然会写入

    。我更新我的答案
  • CKEditor 文档不建议使用“config.enterMode = CKEDITOR.ENTER_BR;”因为语义值和正确性。如果我使用BR模式,会不会造成安全威胁?
  • 没有任何安全威胁。简单地说,换行符就是换行符,而段落具有语义意义:它们标记不同的块。因此,要继续下一行(它没有真正的语义值,只是增加了可读性),您使用 SHIFT+ENTER,而按 Enter 表示您想要标记内容块的结尾并开始另一个。这就是他们推荐使用

    的原因,因为在这种情况下它是正确的标记(“因为语义值和正确性”)。对不起,如果我解释得不好,但英语不是我的母语 :)

  • 感谢您的回答!我注意到在使用此设置时,每输入 1 次就会添加 2 组 &lt;br/&gt;
【解决方案2】:

我发现硬编码更容易。在 Notepad++ 中打开文件 sites/all/libraries/ckeditor/ckeditor.js 转到第 22 行或搜索 shiftEnterMode

更改以下内容:

enterMode:1,forceEnterMode:false,shiftEnterMode:2,

进入:

enterMode:2,forceEnterMode:false,shiftEnterMode:1,

完成!

【讨论】:

  • 既然可以在 config.js 中完成,为什么还要去编辑核心文件?
最近更新 更多