Добавление пользовательских стилей в CKEditor

Недавно я добавил CKEditor в свое приложение и хотел бы включить в редактор свои собственные таблицы стилей CSS, чтобы я мог выбирать их в редакторе.

Как мне это сделать? Мой код пока выглядит так:

<script type="text/javascript">

    CKEDITOR.replace( 'editor1',{
        uiColor : '#9AB8F3',
    });

</script>

person Elitmiar    schedule 20.01.2010    source источник
comment
Вы можете легко добавлять пользовательские стили в редактор. На на этой странице показано, как это сделать.   -  person Vincent Ramdhanie    schedule 20.01.2010
comment
Пожалуйста, выберите правильный ответ, так как текущий выбранный ответ предполагает, что другой ответ лучше.   -  person Paul    schedule 09.08.2018


Ответы (6)


Пожалуйста, посмотрите ответ @metavida, чтобы найти лучший ответ, чем этот

<script type="text/javascript">

    CKEDITOR.replace( 'editor1',{

          uiColor : '#9AB8F3',
          stylesSet.add('default', [
               { name: 'My Custom Block', element: 'h3', styles: { color: 'Blue'} },
               { name: 'My Custom inline style', element: 'q'}
          ]);    
    });

</script>

Хотя, если вы используете это более чем в одном месте, было бы лучше подумать о том, чтобы поместить это в файл stylescombo\styles\default.js и соответствующим образом обновить файл config.js в соответствии с API.

person dove    schedule 29.03.2010
comment
Но это даже не действительный JS! - person Matti Virkkunen; 09.06.2011
comment
@Matti, что конкретно не так? - person dove; 16.06.2011
comment
Ваш вызов метода, находящийся в середине литерала объекта, недействителен. - person Matti Virkkunen; 16.06.2011
comment
Я только что добавил ответ, который разбивает параметры CKEDITOR.stylesSet.add и stylesSet на отдельные вызовы. Я использовал вариант кода в своем ответе на своем собственном веб-сайте. - person metavida; 24.06.2011
comment
для всех тех, кто отрицает, я не могу удалить это, так как это принятый ответ! - person dove; 02.10.2014

<script type="text/javascript">
  // This code could (may be should) go in your config.js file
  CKEDITOR.stylesSet.add('my_custom_style', [
    { name: 'My Custom Block', element: 'h3', styles: { color: 'blue'} },
    { name: 'My Custom Inline', element: 'span', attributes: {'class': 'mine'} }
  ]);
  // This code is for when you start up a CKEditor instance
  CKEDITOR.replace( 'editor1',{
    uiColor: '#9AB8F3',
    stylesSet: 'my_custom_style'
  });
</script>

Вы также можете прочитать полную документацию по синтаксису stylesSet.add:

person metavida    schedule 23.06.2011
comment
эй оп - выберите этот ответ. - person Bosworth99; 17.05.2013
comment
На самом деле лучше всего использовать это: ckeditor.com/addon/stylesheetparser см. мой ответ ниже. - person joshua.paling; 05.03.2014
comment
Я не согласен, таким образом @joshua.paling вы просматриваете каждый селектор в файле css, что означает создание специального файла для этой цели. - person Shannon Hochkins; 14.10.2014

Это работает для меня

CKEDITOR.addCss('body{background:blue;}');
person surtyaar    schedule 24.07.2013
comment
Эту функцию следует вызывать перед созданием экземпляров редактора (из документация). - person Webars; 16.01.2016
comment
Такой хороший, простой ответ. - person Andy Brown; 07.12.2020

Как уже упоминалось, есть страница, объясняющая, как настроить набор пользовательских стилей. Маленькая жемчужина, скрытая на этой странице (и не очень понятная), заключается в том, что вместо создания именованного набора стилей вы можете определить стили, встроенные в вашу конфигурацию, например:

    stylesSet : [
    {
        name : 'Green Title',
        element : 'h3',
        styles :
        {
            'color' : 'Green'
        }
    } ],
person Garret Wilson    schedule 22.02.2012

Лучше всего использовать этот плагин: http://ckeditor.com/addon/stylesheetparser.

Вставьте его в каталог «ckeditor/plugins», затем включите что-то вроде этого в свой «ckeditor/config.js»:

config.extraPlugins = 'stylesheetparser';
config.contentsCss = '/css/inline-text-styles.css';
config.stylesSet = [];

Где '/css/inline-text-styles.css' — это путь к вашей собственной папке css в вашем корневом каталоге вне ckeditor. Это избавляет вас от необходимости смешивать CSS с JavaScript.

person joshua.paling    schedule 05.03.2014
comment
Кажется, это может быть полезно, но вы говорите, что ваша собственная папка css, а затем показываете путь к файлу. Зависит ли путь от расположения самого ckeditor или он всегда от root? Я не могу заставить его работать, и я думаю, что это путь. - person bcsteeve; 06.11.2015

Немного поздно для вечеринки здесь, но стили по умолчанию находятся в _source/plugins/styles/styles/default.js. Вы можете использовать это как свою конфигурацию стиля и добавлять стили, и это будет эффективно добавляться.

person ZiggyTheHamster    schedule 24.01.2011