CSS3 Content Tabs
En artículos anteriores ya habíamos hablado de los tabs utilizando jQuery. En este artículo vamos a ver como crear tabs sin necesidad de utilizar javascript ni plugins jQuery. Vamos a trabajar con HTML5 y CSS3.
Necesitaremos crear una hoja de estilos con el siguiente contenido para nuestro ejemplo:
.tabs {
position: relative;
margin: 40px auto;
width: 750px;
}
.tabs input {
position: absolute;
z-index: 1000;
width: 120px;
height: 40px;
left: 0px;
top: 0px;
opacity: 0;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
cursor: pointer;
}
.tabs input#tab-2{
left: 120px;
}
.tabs input#tab-3{
left: 240px;
}
.tabs input#tab-4{
left: 360px;
}
.tabs label {
background: #5ba4a4;
background: -moz-linear-gradient(top, #5ba4a4 0%, #4e8c8a 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#5ba4a4), color-stop(100%,#4e8c8a));
background: -webkit-linear-gradient(top, #5ba4a4 0%,#4e8c8a 100%);
background: -o-linear-gradient(top, #5ba4a4 0%,#4e8c8a 100%);
background: -ms-linear-gradient(top, #5ba4a4 0%,#4e8c8a 100%);
background: linear-gradient(top, #5ba4a4 0%,#4e8c8a 100%);
font-size: 15px;
line-height: 40px;
height: 40px;
position: relative;
padding: 0 20px;
float: left;
display: block;
width: 80px;
color: #385c5b;
letter-spacing: 1px;
text-transform: uppercase;
font-weight: bold;
text-align: center;
text-shadow: 1px 1px 1px rgba(255,255,255,0.3);
border-radius: 3px 3px 0 0;
box-shadow: 2px 0 2px rgba(0,0,0,0.1), -2px 0 2px rgba(0,0,0,0.1);
}
.tabs label:after {
content: '';
background: #fff;
position: absolute;
bottom: -2px;
left: 0;
width: 100%;
height: 2px;
display: block;
}
.tabs input:hover + label {
background: #5ba4a4;
}
.tabs label:first-of-type {
z-index: 4;
box-shadow: 2px 0 2px rgba(0,0,0,0.1);
}
.tab-label-2 {
z-index: 3;
}
.tab-label-3 {
z-index: 2;
}
.tab-label-4 {
z-index: 1;
}
.tabs input:checked + label {
background: #fff;
z-index: 6;
}
.clear-shadow {
clear: both;
}
.content {
background: #fff;
position: relative;
width: 100%;
height: 370px;
z-index: 5;
box-shadow: 0 -2px 3px -2px rgba(0,0,0,0.2), 0 2px 2px rgba(0,0,0,0.1);
border-radius: 0 3px 3px 3px;
}
.content div {
position: absolute;
top: 0;
left: 0;
padding: 10px 40px;
z-index: 1;
opacity: 0;
-webkit-transition: opacity linear 0.1s;
-moz-transition: opacity linear 0.1s;
-o-transition: opacity linear 0.1s;
-ms-transition: opacity linear 0.1s;
transition: opacity linear 0.1s;
}
.tabs input.tab-selector-1:checked ~ .content .content-1,
.tabs input.tab-selector-2:checked ~ .content .content-2,
.tabs input.tab-selector-3:checked ~ .content .content-3,
.tabs input.tab-selector-4:checked ~ .content .content-4 {
z-index: 100;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
opacity: 1;
-webkit-transition: opacity ease-out 0.2s 0.1s;
-moz-transition: opacity ease-out 0.2s 0.1s;
-o-transition: opacity ease-out 0.2s 0.1s;
-ms-transition: opacity ease-out 0.2s 0.1s;
transition: opacity ease-out 0.2s 0.1s;
}
Y del código HTML que deberemos incorporar dentro de nuestro <body> será algo como lo siguiente:
<section class="tabs"> <input id="tab-1" type="radio" name="radio-set" class="tab-selector-1" checked="checked" /> <label for="tab-1">About</label> <input id="tab-2" type="radio" name="radio-set" class="tab-selector-2" /> <label for="tab-2">Services</label> <input id="tab-3" type="radio" name="radio-set" class="tab-selector-3" /> <label for="tab-3">Work</label> <input id="tab-4" type="radio" name="radio-set" class="tab-selector-4" /> <label for="tab-4">Contact</label> <div class="clear-shadow"></div> <div class="content"> <div class="content-1"> <!--Tu contenido 1--> </div> <div class="content-2"> <!--Tu contenido 2--> </div> <div class="content-3"> <!--Tu contenido 3--> </div> <div class="content-4"> <!--Tu contenido 4--> </div> </div> </section>
Parece un poco extraño que utilice inputs en vez de links pero si lo piensas no está tan mal del todo.
Te ha servido? Valora esta entrada!
Autor
Escrito por Jose Aguilar - Consultor estratégico y tecnológico

Hola Jose
Como te deje en otro apartado..
Puedo aplicar este efecto para reemplazar la paginacion por defecto de Joomla?
Atento a tus comentarios
Saludos!
Si pero tendrás que investigar como cambiar la paginación de joomla
Codrops?
No.
http://www.ajaxshake.com/es/JS/2410851/como-crear-tabs-animados-con-css3-contenttabs.html