HTML5/CSS3

Cómo crear un efecto Lightbox sólo con CSS

Índice
  1. Lightbox y sus plugins
    1. El Html
    2. El CSS3
    3. Demo

Gracias a CSS podemos crear hermosas animaciones sin necesidad de utilizar plugins externos. Es por ello que hoy os voy a enseñar a crear vuestro propio Lightbox. ¿Te invito a que pruebes!

Lightbox y sus plugins

Generalmente para realizar este efecto se suelen utilizar librerías de JavaScript. En JQuery podemos encontrar algunos conocidos como Lightbox por Lokesh Dhakar, o FancyBox.

Si bien nos ahorra tiempo tecleando código, pueden también afectar al rendimiento de nuestra web. Por tanto mi recomendación es usarlos únicamente en casos extremadamente necesarios.

Para evitarlo vamos a crearlo nosotros mismo utilizándo únicamente Html5 y Css3, generando así un código limpio para nuestra web.

Crea una Barra de Progreso Animada en CSS3

El Html

Creamos un archivo html. En éste incluimos una imagen para aplicarle el efecto.

<div id="content">
  <h2>Efecto LightBox en CSS3</h2>
 <a href="#image1" class="wiggle"><img src="http://placehold.it/150x150"/></a>
  <div class="lightbox short-animate" id="image1">
    <img class="long-animate" src="http://placehold.it/650x650"/>
  </div>
  <div id="lightbox-controls" class="short-animate">
    <a id="close-lightbox" class="long-animate" href="#!">Close Lightbox</a>
  </div>
</div>

El CSS3

Aquí nos encargaremos de generar el efecto mediante el uso de transiciones y transformaciones en CSS3.

* {
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html,body {
  height:100%;
  max-height:100%;
}

body {
  background:#476C9B;
}

h2 {
  font-weight:200;
  font-size:40px;
  padding:50px 0;
  text-align:center;
  color:#ADD9F4;
}

.wiggle {
  display:block;
  margin:0 auto;
  width:150px;
  height:150px;
  box-shadow:8px 8px 1px 0 rgba(0,0,0,.15);
}

.wiggle:hover {
  -webkit-animation:none;
}

.short-animate {
  -webkit-transition:.5s ease-in-out;
  -moz-transition:.5s ease-in-out;
  -ms-transition:.5s ease-in-out;
  -o-transition:.5s ease-in-out;
  transition:.5s ease-in-out;
}

.long-animate {
  -webkit-transition: .5s .5s ease-in-out;
  -moz-transition: .5s .5s ease-in-out;
  -ms-transition: .5s .5s ease-in-out;
  -o-transition:.5s .5s ease-in-out;
  transition:.5s .5s ease-in-out;
}

html,body {
  height:100%;
  min-height:100%;
}

.lightbox {
  position:fixed;
  top:-100%;
  bottom:100%;
  left:0;
  right:0;
  background:#984447;
  z-index:501;
  opacity:0;
}

.lightbox img {
  position:absolute;
  margin:auto;
  top:0;
  left:0;
  right:0;
  bottom:0;
  max-width:0%;
  max-height:0%;
}

#lightbox-controls {
  position:fixed;
  height:70px;
  width:70px;
  top:-70px;
  right:0;
  z-index:502;
  background:rgba(0,0,0,.1);
}

#close-lightbox {
  display:block;
  position:absolute;
  overflow:hidden;
  height:50px;
  width:50px;
  text-indent:-5000px;
  right:10px;
  top:10px;
  -webkit-transform:rotate(45deg);
  -moz-transform:rotate(45deg);
  -ms-transform:rotate(45deg);
  -o-transform:rotate(45deg);
  transform:rotate(45deg);
}

#close-lightbox:before {
  content:'';
  display:block;
  position:absolute;
  height:0px;
  width:3px;
  left:24px;
  top:0;
  background:white;
  border-radius:2px;
  -webkit-transition: .5s .5s ease-in-out;
  -moz-transition: .5s .5s ease-in-out;
  -ms-transition: .5s .5s ease-in-out;
  -o-transition:.5s .5s ease-in-out;
  transition:.5s .5s ease-in-out;
}

#close-lightbox:after {
  content:'';
  display:block;
  position:absolute;
  width:0px;
  height:3px;
  top:24px;
  left:0;
  background:white;
  border-radius:2px;
  -webkit-transition: .5s 1s ease-in-out;
  -moz-transition: .5s 1s ease-in-out;
  -ms-transition: .5s 1s ease-in-out;
  -o-transition:.5s 1s ease-in-out;
  transition:.5s 1s ease-in-out;
}

.lightbox:target {
  top:0%;
  bottom:0%;
  opacity:1;
}

.lightbox:target img {
  max-width:100%;
  max-height:100%;
}

.lightbox:target ~ #lightbox-controls {
  top:0px;
}

.lightbox:target ~ #lightbox-controls #close-lightbox:after {
  width:50px;
}

.lightbox:target ~ #lightbox-controls #close-lightbox:before {
  height:50px;
}

@-webkit-keyframes wiggle {
 0% {
   -webkit-transform:rotate(2deg);
  }
  20% {-webkit-transform:rotate(-2deg);}
  40% {-webkit-transform:rotate(2deg);}
  60% {-webkit-transform:rotate(-2deg);}
  80% {-webkit-transform:rotate(2deg);}
 100% {-webkit-transform:rotate(-2deg);}
}

Demo

Aquí os dejo una demostración funcional del código anteriormente expuesto. Espero que os sea de gran utilidad y podáis utilizarlos en vuestros proyectos web.

Ver mi Snippet Responsive CSS LightBox by Antonio José (@ajmorales73) on CodePen.

Olvidate del Copy/Paste y ve escribiendo el código poco a poco y viendo los resultados. Así aprenderás y te convertirás en un ninja del diseño web. 😉

No olvides dejarme tus estrellas, likes y compartir en vuestras redes sociales. ¡Gracias!

AJ Morales

Consultor de Marketing Digital, especializado en Marketing de Contenidos y Posicionamiento SEO 🚀. Me considero un apasionado de la tecnología y de la edición profesional de fotografías con Adobe Photoshop. Málaga ciudad con alma.

Ver comentarios

Publicaciones Recientes

Gemini Deep Research en Google Drive: Analiza Múltiples Documentos en Segundos y Ahorra Horas de Trabajo

Todos hemos estado allí: tienes 20 pestañas abiertas, cinco PDFs y tres hojas de cálculo,…

1 día Hace

Quitar la Marca de Agua en las Imágenes de Google Nano Banana

Si ya estás usando Google Nano Banana, sabes que es la herramienta que está redefiniendo…

3 semanas Hace

Límites de Gemini Gratis ¿Qué te ofrece la IA de Google sin pagar?

¿Te ha pasado? Estás en plena conversación con Gemini, fluyendo con ideas, y de repente……

3 meses Hace

Convierte una foto en una figura coleccionable con Nano Banana Gratis

¿Alguna vez soñaste con ser una de esas figuras coleccionables que tanto te fascinaban de…

3 meses Hace

Cómo Hacer un Video de Ciudad Emblemática con Veo 3

Imagina caminar por las calles iluminadas de París al atardecer, con la Torre Eiffel brillando…

3 meses Hace

Google Opal: Automatiza Tareas Diarias y Revoluciona Tu Productividad

¿Imaginas crear aplicaciones inteligentes que resuelvan tus problemas cotidianos sin escribir una sola línea de…

3 meses Hace

Esta página utiliza cookies para mejorar su rendimiento