Issue #1024💬 RespondidoAbierto el 10 de abril de 2018por tommedemaReacciones 0

Modo dispositivo realmente responsivo

Respuesta rápidapor nojacko

Construye tu CSS con 'min-width' en lugar de 'min-device-width', etc. Y todo bien.

Lee la respuesta completa abajo ↓

Pregunta

Podrías pensar que cambiar el ancho de un iframe por el ancho de un dispositivo actúa igual que un emulador de dispositivo, pero en realidad no lo hac https://developers.google.com/web/tools/chrome-devtools/device-mode/emulate-mobile-viewports e.

Aquí tienes un ejemplo: si cargas pages.github.io en un iframe con un ancho de 320px, obtienes:

<img width="359" alt="captura de pantalla 2018-04-09 a las 4:44 24 pm" src="https://user-images.githubusercontent.com/331833/38528599-4c6ef62c-3c15-11e8-97e6-6c2bf2448da5.png">

Puedes probarlo tú mismo:

<!doctype html>
<html>
    <body>
        <iframe src="https://pages.github.com/" ancho="320" altura="568" permitido pantalla completa></iframe>
    </body>
</html>

Si vas a pages.github.io y activas las devtools de Chrome para emular un dispositivo con el mismo ancho (320px), se verá mucho más responsivo:

<img width="385" alt="captura de pantalla 2018-04-09 a las 4:45 16 pm" src="https://user-images.githubusercontent.com/331833/38528633-6743c5cc-3c15-11e8-97ff-24afbf514a7f.png">

Lo que ocurre aquí es que el navegador en realidad respeta el ancho forzado de la página (980px forzado; no hay consultas de medios en esta página) y escala el contenido para que encaje. Creo que también puede hacer más zoom de texto:

<img width="398" alt="captura de pantalla 2018-04-09 a las 4:47:04 pm" src="https://user-images.githubusercontent.com/331833/38528724-a9994bf4-3c15-11e8-8737-e08dcd46f9c8.png">

Aquí puedes ver que, aunque el ancho del dispositivo es de 320px, el ancho del componente sigue siendo de 980px. Como todo el componente es visible, debe haber algún tipo de escala de vista .

Para que Grapes sea realmente un editor WYSIWYG de "próxima generación", el modo de respuesta completa parece imprescindible.

¿Alguien tiene alguna idea de cómo podemos lograr el mismo efecto que el emulador de Devtools? ¿Quizá usando Javascript para cambiar dinámicamente el escalado del viewport? ¿O usando transformaciones CSS de forma inteligente?

Respuestas (3)

nojacko13 de abril de 2018

Construye tu CSS con 'min-width' en lugar de 'min-device-width', etc. Y todo bien.

tommedema13 de abril de 2018

@nojacko eso supone que tengo control sobre el CSS. No es así ;)

Además, el ejemplo anterior no utiliza 'mínimo de ancho de dispositivo'. Simplemente usa 'ancho: 900px'. Los dispositivos pequeños son lo suficientemente inteligentes para escalar en consecuencia. Por tanto, un modo realmente responsive haría lo mismo.

artf14 de abril de 2018

Gracias por la sugerencia@tommedema pero ahora mismo no veo ningún valor en empezar a trabajar en esa mejora; la implementación actual funciona si quieres crear una plantilla responsive y eso es lo que realmente importa. Por cierto, si realmente quieres trabajar en esto, los récords personales son bienvenidos :)

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 →

Explorar categorías de plugins

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