Scriptia. Javascript y buenas prácticas en español



Scriptia / artículos / Ocultar elementos por CSS si y solo si disponemos de javascript

Ocultar elementos por CSS si y solo si disponemos de javascript

Saltar a Anotaciones relacionadas

Supongamos una linda interfaz en la que algunos elementos no se muestran hasta que el usuario realiza alguna acción. Supongamos que somos hombres de buen corazón y queremos que nuestra aplicación sea accesible sin necesidad de javascript.

1. Si ocultamos esos elementos mediante CSS, quien no tenga javascript no tendrá, jamás de los jamases, acceso a ellos.
2. Si ocultamos los elementos mediante javascript, se producirá algún que otro feo parpadeo (y si son muchos los elementos a ocultar, aumentará el tiempo de proceso).

Veamos cómo podemos evitar ambos problemas con una pequeña combinación de CSS y scripting.

Lo ideal sería que nuestra hoja de estilo supiera si disponemos o no de las funcionalidades javascript necesarias. ¿Imposible? No, amigo, nada es imposible.

Empezaremos por averiguar si el navegador utilizado es lo suficientemente poderoso como para manejar nuestro script:

var isSupported = document.getElementById && document.getElementsByTagName;

Si lo es, modificaremos el árbol del documento añadiendo una clase al elemento `html`:

if (isSupported) {
	document.documentElement.className = "js";
}

Un par de notas:

1. Para modificar `document.documentElement` no es necesario esperar a que se complete la carga del documento.
2. La especificación HTML 4.01 no permite el uso del atributo `class` en el elemento `html`. En mi opinión, como la jugada la hacemos por scripting, esto no invalida el documento.

Y en el CSS, la magia:

.js #eula {
	display: none;
}

Pruébalo, merece la pena.



Di la tuya

Puedes usar estas etiquetas HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> . Por favor, evita el abuso de las mayúsculas y cuida la ortografía.


Acerca de Scriptia

Saltar a la caja de búsqueda

Scriptia forma parte del PDM de Choan C. Gálvez, desarrollador web residente en Barcelona. Scriptia pretende mejorar la calidad de la documentación acerca de javascript disponible en español.