stringtranslate.com

Destello de contenido sin estilo

FOUC al cargar la página principal de Wikipedia.

Un destello de contenido sin estilo ( FOUC , o destello de texto sin estilo ) [1] [2] es una instancia en la que una página web aparece brevemente con los estilos predeterminados del navegador antes de cargar una hoja de estilo CSS externa , debido a que el motor del navegador web procesa la página antes de que se recupere toda la información. [3] La página se corrige a sí misma tan pronto como se cargan y aplican las reglas de estilo; sin embargo, el cambio puede distraer. Los problemas relacionados incluyen el destello de texto invisible y el destello de texto falso . [1] [2]

Información técnica

Animación de FOUC mientras se carga una página HTML/CSS. El texto del encabezado de la página web se muestra primero antes que los archivos CSS de Bootstrap .

El problema se documentó en un artículo llamado "Flash of Unstyled Content" [4] . Al principio, FOUC parecía ser un problema exclusivo de Internet Explorer , pero luego se hizo evidente en otros navegadores [5] [6] y desde entonces se ha descrito como "una epidemia de Safari ". [7]

Un destello de contenido sin estilo es indiferente a los cambios en las versiones CSS o HTML . Este problema, que no afecta al contenido principal, se origina a partir de un conjunto de prioridades programadas en el navegador. [ cita requerida ] A medida que el navegador recopila HTML y todos los archivos auxiliares a los que se hace referencia en el marcado, el navegador construye el Modelo de objetos del documento sobre la marcha. El navegador puede elegir mostrar primero el texto para poder analizarlo más rápidamente.

Los destellos de contenido sin estilo son más frecuentes ahora que las páginas HTML son más propensas a hacer referencia a varias hojas de estilo. Las páginas web a menudo incluyen referencias de estilo a medios distintos de la pantalla del navegador, como reglas CSS para impresoras y dispositivos móviles. Las páginas web pueden importar capas de archivos de estilo y hacer referencia a hojas de estilo alternativas. Los anuncios en línea y otro contenido externo insertado, como videos y motores de búsqueda, a menudo dictan sus propias reglas de estilo dentro de su bloque de código. La naturaleza en cascada de las reglas CSS alienta a algunos navegadores a esperar hasta que se hayan recopilado todos los conjuntos de datos de estilo antes de aplicarlos.

Con la llegada de bibliotecas de JavaScript como jQuery , que se pueden utilizar para definir y aplicar con más detalle el estilo de una página web, los destellos de contenido sin estilo también se han vuelto más prominentes. En un intento por evitar el contenido sin estilo, los desarrolladores front-end pueden optar por ocultar todo el contenido hasta que se haya cargado por completo, momento en el que se activa un controlador de eventos de carga y aparece el contenido, aunque una interrupción de la carga puede dejar una página en blanco, a la que sería preferible el contenido sin estilo.

Para emular un destello de contenido sin estilo, los desarrolladores pueden utilizar complementos del navegador que son capaces de deshabilitar el CSS de una página web sobre la marcha. Firebug y Async CSS son complementos de este tipo. Otras técnicas incluyen detener manualmente una página antes de que complete la carga de los componentes CSS. Otra opción implica el uso de herramientas de bloqueo de scripts.

Si bien, en 2016, se habían desarrollado varias técnicas diferentes para evitar comportamientos de visualización no deseados, [2] un cambio en el comportamiento de representación en la versión 50 de Google Chrome , por el cual se evita que las hojas de estilo inyectadas por JavaScript bloqueen la carga de la página, como lo requiere la especificación HTML5 , trajo la situación a la atención de los creadores de sitios web nuevamente, afectando particularmente a los usuarios de Typekit , un producto de tipografía web de Adobe Systems . [1] En 2 meses, Adobe había cambiado la forma en que sus fuentes se incluían en sitios web de terceros para evitar el comportamiento de representación no deseado. [8]

Véase también

Referencias

  1. ^ abc Tim Brown (3 de junio de 2016). "Respecto al destello de texto sin estilo en Chrome 50". Blog de Adobe Typekit . Adobe Systems . Archivado desde el original el 1 de septiembre de 2016 . Consultado el 9 de agosto de 2016 .
  2. ^ abc Coyier, Chris (1 de abril de 2015). "FOUT, FOIT, FOFT". Trucos CSS . Archivado desde el original el 15 de agosto de 2020. Consultado el 9 de agosto de 2016 .
  3. ^ Boudreaux, Ryan (18 de octubre de 2013). "Cómo evitar que aparezcan destellos de contenido sin estilo en sus sitios web". TechRepublic . Archivado desde el original el 2021-03-05 . Consultado el 2021-10-09 .
  4. ^ "Flash of Unstyled Content (FOUC)". Blue Robot. 2001. Archivado desde el original el 13 de mayo de 2015. Consultado el 12 de octubre de 2012 .
  5. ^ Ganadora, Judith (19 de abril de 2010). «Flash of Unstyled Content (FOUC)». Bugzilla@Mozilla. Archivado desde el original el 5 de noviembre de 2016. Consultado el 14 de octubre de 2016 .
  6. ^ "Errores de Chromium que contienen 'FOUC'". bugs.chromium.org. Archivado desde el original el 18 de octubre de 2016. Consultado el 14 de octubre de 2016 .
  7. ^ Dave Hyatt (1 de septiembre de 2006). "El problema de FOUC". Surfin' Safari . The WebKit Open Source Project . Archivado desde el original el 30 de agosto de 2012 . Consultado el 16 de octubre de 2012 . El problema de FOUC normalmente sería un suceso menor. Sin embargo, con la llegada de Google AdSense , FOUC se ha convertido en una epidemia de Safari . Debido a que estos anuncios de Google no solo ejecutan secuencias de comandos en línea, sino que también acceden a información de diseño que a menudo ni siquiera terminan utilizando en la página, el problema de FOUC es mucho más grave de lo que debería ser.
  8. ^ Bram Stein (28 de julio de 2016). «Cambios en el servicio de fuentes web en Typekit». Blog de Adobe Typekit . Adobe Systems . Archivado desde el original el 15 de agosto de 2016 . Consultado el 9 de agosto de 2016 .