Issue #922💬 RespondidoAbierto el 2 de marzo de 2018por mbleverageReacciones 0

PREGUNTA: Añadir estilo por defecto a un componente

Respuesta rápidapor artf

Tu cambio en el bloque no funciona porque no cambias el componente real (solo la propiedad del bloque). '''js editor. BlockManager.get('image').get('content').style = { 'max-width':'100%' } Una forma más sencilla de añadir CSS personalizado podría ser esta '''js editor.addComponents('<style> ... </style>');

Lee la respuesta completa abajo ↓

Pregunta

He estado trabajando en integrar grapesjs en un nuevo desarrollo en el que estoy trabajando. He tenido mucho éxito con la documentación y el foro de la wiki, pero me estoy encontrando con algunos problemas con los que espero que alguien pueda ayudarme. Estoy trabajando solo con una vista móvil, he puesto el dispositivo por defecto en móvil y he ocultado la opción de cambiar.

Cuando insiro una imagen, me gustaría que el CSS por defecto incluyera el ancho máximo: 100%, ya que si cargo una imagen grande en la vista móvil obtendré una imagen mucho más grande que la pantalla que estoy viendo.

He intentado:

blockManager.get('image').set({
    estilo:{
        'max-width':'100%'
    }
});

Pero sé que puede ser un uso incorrecto y quizá solo el ancho (no el ancho máximo) sea válido allí. También he probado a usar cssComposer sin éxito.

var sm = editor. SelectorManager;
var cssComposer = editor. CssCompositor;
var sel1 = sm.add('img');
var rule = cssComposer.add([sel1]);
rule.set('style', {'max-width': '100%'});

Cualquier ayuda sería muy apreciada. Gracias.

Respuestas (3)

artf4 de marzo de 2018

Tu cambio en el bloque no funciona porque no cambias el componente real (solo la propiedad del bloque). '''js editor. BlockManager.get('image').get('content').style = { 'max-width':'100%' }

Con 'cssComposer' en su lugar, por defecto, SelectorManager acepta clases
'''js
...
var sel1 = sm.add('img'); Aquí estás añadiendo el selector '.img' y no 'IMG'

Una forma más sencilla de añadir CSS personalizado podría ser esta '''js editor.addComponents('<style> ... </style>');

Pero ten cuidado, si guardas tus plantillas y luego ejecutas este comando en cualquier actualización, esto seguirá creando estilos. Para CSS por defecto recomendaría:
'''js
grapesjs.init({
  CSS que solo podía verse (por ejemplo, dentro del visor de código)
  protectedCss: 'img { ... }',
  
Si tienes un archivo externo, por ejemplo, algo de reinicio CSS
  Puedes usar esto
  lienzo: {
	Styles: ['https://... file.css']
  }
})
mbleverage5 de marzo de 2018

¡Gracias! Pude conseguirlo funcionando con: 'protectedCss: 'img {max-width:100%;}',' Tengo el mismo problema con vídeos e iframes (para YouTube) que se colocan en la plantilla más grandes que el tamaño de pantalla y la solución protectedCss no funcionó para eso. ¿Alguna sugerencia?

artf6 de marzo de 2018

'protectedCss' está cargado, así que el CSS está aquí; si no funciona, probablemente tu técnica CSS no sea correcta

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.

Explora plugins gratuitos →
Opción premium

Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.

Explora plugins premium →

Tutoriales relacionados

Guías detalladas sobre el mismo tema.

Todos los tutoriales →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.