2010-01-20 18 views
15

Recientemente agregué CKEditor a mi aplicación y me gustaría incluir mis propias hojas de estilo CSS dentro del editor para poder seleccionarlas dentro del editor.Agregar estilos personalizados a CKEditor

¿Cómo puedo lograr esto? Mi código hasta ahora se ve así:

<script type="text/javascript"> 

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

</script> 
+4

Puede agregar estilos personalizados a un editor con bastante facilidad. [Esta página] (http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Styles) muestra cómo. –

Respuesta

-8

Por favor, busque en respuesta @metavida para una mejor respuesta que esta

<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> 

Aunque si está usando esto en más de un lugar que' Será mejor considerar poner esto en el archivo stylescombo \ styles \ default.js y actualizar su archivo config.js en consecuencia según api.

+8

¡Pero esto ni siquiera es válido JS! –

+0

@Matti ¿qué no es específicamente? – dove

+3

Su llamada a método sentada en el medio de un objeto literal no es válida. –

5

Llegó tarde a la fiesta aquí, pero los estilos predeterminados están en _source/plugins/styles/styles/default.js. Podrías usar eso como tu configuración de estilo y agregar estilos y se agregaría efectivamente.

41
<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> 

También puede leer la documentación completa de la sintaxis stylesSet.add:

+0

hey op - seleccione esta respuesta. – Bosworth99

+0

La mejor manera es utilizar esto: http://ckeditor.com/addon/stylesheetparser vea mi respuesta a continuación. –

+0

No estoy de acuerdo, de esta manera @joshua.empalme atraviesa cada selector en el archivo css, lo que significa crear un archivo dedicado para este fin. –

8

Como ya se ha mencionado, hay una página que explica cómo configurar un conjunto de custom styles. Lo que la pequeña joya escondida en esa página (y no muy claro) es que en lugar de crear un conjunto con nombre de estilos, puede definir los estilos en línea en su configuración, como esto:

stylesSet : [ 
    { 
     name : 'Green Title', 
     element : 'h3', 
     styles : 
     { 
      'color' : 'Green' 
     } 
    } ], 
13

Esto funciona para mí

CKEDITOR.addCss('body{background:blue;}'); 
+0

Justo lo que estaba buscando gracias. –

+0

Esta función debe llamarse ** antes ** de la creación de instancias de editor (desde [documentation] (http://docs.ckeditor.com/#!/api/CKEDITOR-method-addCss)). – Webars

4

La mejor manera es utilizar este plugin: http://ckeditor.com/addon/stylesheetparser

pegarla en el interior directorio 'ckeditor/plugins', a continuación, incluir algo como esto en su 'ckeditor/config.js':

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

Donde '/css/inline-text-styles.css' es una ruta a su propia carpeta CSS en su webroot, fuera de ckeditor. Eso te ahorra tener que mezclar css con javascript.

+0

Parece que podría ser útil, pero dice "su propia carpeta css" y luego muestra una ruta a un archivo. ¿El camino depende de la ubicación del propio ckeditor o siempre proviene de la raíz? No puedo hacer que funcione y creo que es el camino. – bcsteeve

Cuestiones relacionadas