Ventana modal sólo con CSS
A raíz de mi proyecto musical más reciente lanzado, incluyendo el sitio web donde me divertí mucho utilizando Mootools para sus diferentes funcionalidades, iré ampliando los artículos relacionados con este framework de JS explicando los puntos más importantes de su desarrollo. Pero para comenzar, mostraré un modo de crear ventanas modales (lightbox, thickbox, greybox, modalbox… son todas ventanas modales) sólo con CSS. Mientras puedo, ahorro en plugins para no recargar los sitios, y en el caso de las ventanas emergentes no-obstructivas utilicé un elegante método donde a través de simple CSS se abren ventanas con mensajes varios. Para gatillarla, utilicé, claro, Mootools. Pero donde tomé prestado la idea, utilizaban Javascript puro para ello. Mostraré ambos métodos, a gusto y necesidad del usuario cuál decidir ocupar.
Comenzamos con el marcado HTML. Primero, un el que será el fondo semi-transparente que cubrirá la página entera, y albergará la ventana del mensaje. Luego, un Nada de eso nos sirve sin un correcto uso de CSS. Para la base semi-transparente le damos opacidad a través del [método cross-browser][1]: Y la ventana modal del contenido mismo: [Ver ejemplo sólo con CSS][2]{.verejemplo} Ahora, lo echamos a andar. A ambos div‘s debemos darle id‘s únicos, los que nos ayudarán a identificar los elementos que serán mostrados vía Javascript. La orden para ejecutarlos es en Javascript puro: Y a través de Mootools: Lo que dice ahí, en castellano universal es: toma los elementos con el id light y fade, y agrégales estilo display: block; a cada uno. O sea, los hará aparecer desde display: none (oculto) a display: block; (visible). [Ver ejemplo funcionando con JS][3]{.verejemplo} [1]: http://www.csslab.cl/2007/01/24/transparencias-a-prueba-de-browsers-2/ “Enlace en CSSLab a “Transparencias a prueba de browsers””
[2]: http://www.csslab.cl/ejemplos/modal/solo_css.html “Enlace en CSSLab a “Ejemplo Modal sólo con CSS””
[3]: http://www.csslab.cl/ejemplos/modal/modal.html “Enlace en CSSLab a “Ejemplo Modal con JS””<div id="fade" class="overlay"></div>>
<div id="light" class="modal">
<p>Lorem ipsum dolor sit.....</p>
</div>
<p>Texto del sitio web. Con un <a href="">link</a> abriremos la ventana.</p>
.overlay{
display: none;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #000;
z-index:1001;
opacity:.75;
-moz-opacity: 0.75;
filter: alpha(opacity=75);
}
.modal {
display: none;
position: absolute;
top: 25%;
left: 25%;
width: 50%;
height: 50%;
padding: 16px;
background: #fff;
color: #333;
z-index:1002;
overflow: auto;
}
document.getElementById('light').style.display='block';
document.getElementById('fade').style.display='block'
$('light').setStyle('display', 'block');
$('fade').setStyle('display', 'block');
Links⌗