我无法弄清楚如何修改CKeditor iframe的body
CSS样式。我已经尝试了一系列基于网络上各种潜在解决方案的选项,但我对CKeditor的API并不是很熟悉,这使得事情变得相当困难。这是(具体)CKeditor 4.4.3。
您可以在以下JSfiddle中看到各种尝试(已评论):
CKEDITOR.stylesSet.add( 'style_updates', [
// ATTEMPT 1
// Block-level styles...this is for the dropdown menu (not shown in current config)
{ name: 'Body Margin Fix', element: 'body', styles: { margin: '10px' } }
]);
editor = $('textarea').ckeditor( function(editor){
// ATTEMPT 2
//callback `this` refers to CKEDITOR.editor
this.ckeditorGet().addCss('body { margin:10px; }')
}, {
// ATTEMTP 3
addCss: 'body { margin:10px; }',
stylesSet: 'styles_updates',
uiColor: '#FFFFFF',
scayt_autoStartup: true,
autoGrow_onStartup: true,
enterMode: CKEDITOR.ENTER_BR,
removePlugins: 'elementspath, resize',
toolbar: [
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ], items: [ 'Bold', 'Italic', 'Underline' ] },
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ], items: [ 'PasteFromWord', 'Undo', 'Redo' ] },
{ name: 'links', items: [ 'Link', 'Unlink' ] },
{ name: 'editing', groups: [ 'spellchecker' ], items: [ 'Scayt' ] },
{ name: 'tools', items: [ 'Maximize' ] }
]
// ATTEMPT 4
}).ckeditorGet().addCss('body { margin:10px; }');
答案 0 :(得分:14)
编辑位于主CKEditor目录中的contents.css
文件,或使用config.contentsCss
设置加载其他文件。
我看到你将样式系统设置与内容样式混淆了。这是两个完全不同的东西 - 样式系统负责应用和删除所选内容的“样式” - 例如它使用它按样式和格式下拉以及粗体或斜体按钮 - 所有这些都是“样式”。
至于CKEDITOR.addCss()
- 这个方法主要由插件使用,必须在创建编辑器之前使用。实际上,它的文档正好说明了这一点,并提到你应该使用contents.css
;)。
答案 1 :(得分:2)
在CKEditor 4.5.9中确认我能够通过config.js
简单地添加一些所需的自定义覆盖CSS样式(因此不太可能在将来通过更新CKEdtor版本而意外覆盖)
我补充说:
// Add override CSS styles for inside editable contents area.
CKEDITOR.addCss( '.cke_editable { font-size: 14px; } @media screen and (max-device-width: 767px) and (-webkit-min-device-pixel-ratio:0) { .cke_editable { font-size: 16px !important; } }' );
在现有CKEDITOR.editorConfig = function( config ) { ... }
部分内:
这意味着我没有必要从默认情况下编辑CKEditor的content.css
只有2x简单的CSS覆盖。
CKEditor的.addCss方法参考http://docs.ckeditor.com/#!/api/CKEDITOR-method-addCss
如果您确实想要执行多个CSS覆盖,则应该使用config.contentsCss = '/css/mysitestyles.css';
来重新指定您自己的CKEditor默认content.css
版本。
或者您可以使用config.contentsCss = [ 'content.css', '/css/anotherfile.css' ];
CKEditor的.contentsCSS方法参考http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-contentsCss