He encontrado numerosas respuestas parciales a esta pregunta, pero nada que parezca una respuesta definitiva. Para una técnica tan importante, encuentro esto un poco extraño.¿Cuál es la forma correcta de ocultar elementos HTML en la carga de la página antes de que se muestren?
¿Cómo debo ocultar elementos (usando javascript) para que no aparezcan brevemente cuando la página se carga antes de que el JS pueda ocultarlos? No quiero configurarlos inicialmente con CSS, como si un usuario no tuviera Javascript, no verán nada.
Para ser claros. No estoy preguntando cómo manejar la visualización de contenido a los usuarios que no tienen JS. Ese es un tema completamente diferente. Solo quiero una forma confiable de ocultar elementos HTML antes de que se muestren.
Así que mis requisitos: Elementos
- HTML no se ocultan inicialmente el uso de CSS
- Si JS está disponible, estos elementos están ocultos para que no se muestran nunca, ni siquiera por un instante. Esto significa esconderlos de JS cargados al final del cuerpo está fuera).
Suena como dos problemas separados. En primer lugar, ¿cómo se ocultan los elementos inicialmente, y en segundo lugar, qué haces si los clientes no tienen javascript (habilitado). Cuidado de no hacer estas preguntas. –
Creo que quizás usar [modernizr] (http://modernizr.com/) sería útil. Aún puede especificar el uso de CSS para ocultar elementos, por lo que para navegadores sin javascript, puede usar la clase '.no-js' para anular los estilos para mostrarlos. Pero no estoy tan seguro del "destello" inicial de los elementos que se muestran.Eso tiene que ver con cómo se estructura el código y cómo los navegadores web lo analizan y lo analizan. – VKen
@Erik Philips. Solo menciono ese requisito para evitar recibir respuestas como "configurar los elementos para mostrar: ocultos" en su hoja de estilo. – Undistraction