Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Maquetación de un recuadro con pestañas con CSS


Un taller de maquetación CSS en el que creamos un recuadro que tiene diversas pestañas para mostrar contenidos diversos en un mismo espacio.


12/3/08 - Vamos a hacer con CSS una maquetación de un recuadro que tiene una serie de pestañas o solapas, que habremos visto en numerosas ocasiones en interfaces de usuario diversas y en páginas web. Estos recuadros permiten hacer clic en cada una de las solapas o pestañas para mostrar contenidos en un área. Pulsando una pestaña distinta se muestran otros contenidos en el mismo espacio donde estaban los anteriores, por lo que esta interfaz de usuario nos puede servir para mostrar distintos contenidos, bajo demanda de usuario, en un mismo espacio.

Este artículo sólo va a especificar cómo se podría maquetar con HTML y CSS este sistema de etiquetas, sin hacer los scripts necesarios para ponerlo en marcha. En otros artículos explicaremos cómo hacer que esta interfaz responda a las acciones del usuario, para que pulsando cada pestaña se cambien los contenidos del recuadro para mostrar los relacionados con esta solapa. Como la creación de esta maqueta ya reviste una relativa complejidad por si sola, la vamos a explicar en este taller de CSS.

Para entender bien de qué estamos hablando, lo mejor es ver uno de los ejemplos que hemos creado.

Código HTML de la interfaz

Hemos creado un sencillo código HTML que sea suficientemente versátil para soportar varios tipos de diseño, simplemente alterando la hoja de estilos en cascada CSS.

<div class="interfazpestanas">
   <div class="pestanas">
      <ul>
      <li class="pestanaseleccionada">Opción 1</li>
      <li>Opción 2</li>
      <li>Opción 3</li>
      </ul>
      <div class="cuerpopestanas">
         Esto es el cuerpo de las pestañas?
      </div>
   </div>
</div>


Como se puede ver, ha quedado un HTML bastante sencillo. Está claro que se podría haber complicado algo más para poder alcanzar un grado mayor de detalle, pero con lo que hemos hecho obtenemos un resultado bastante versátil y potente de cara a darle un aspecto atractivo con CSS.

Como se puede ver, tenemos una capa de class "pestanas" donde vamos a colocar el conjunto de solapas o pestañas y el cuerpo donde se mostrará toda la información de cada pestaña.

Dentro hemos colocado una lista UL donde cada uno de sus elementos LI serán cada una de las pestañas del conjunto. Además, vemos que la pestaña que está seleccionada en un momento dado tiene una clase class="pestanaseleccionada", para poder asignarle un estilo distinto.

Por último, para definir el lugar donde se muestra el cuerpo de cada pestaña hemos utilizado otra capa con class="cuerpopestanas".

Bueno… resulta bastante sencillo y esquemático. Ahora veremos la parte más interesante, que es donde damos estilos CSS al diseño HTML.

Estilos CSS para definir el aspecto de la interfaz de pestañas

Veamos las hojas de estilos utilizadas para definir el aspecto de la interfaz de pestañas.

.pestanas{
   width: 350px;
}
.pestanas ul{
   margin:0px;
   padding:0px;
   list-style: none;
}
.pestanas li{
   float:left;
   margin:0px 6px 0px 0px;
   padding:4px 6px 4px 6px;
   background-color: #999999;
   color: #eeeeee;
   font-size:8pt;
}
li.pestanaseleccionada{
   background-color: #333366;
   color: #ffffff;
   font-weight: bold;
}
.cuerpopestanas{
   background-color: #333366;
   color: ffffff;
   clear:both;   
   margin:0px;
   padding:4px;
   height: 300px;
   overflow: auto;
}


Como vemos, a la interfaz le hemos dado un espacio de 300 pixel.

La lista la hemos definido para que no tenga márgenes ni bullets (esos puntitos que se colocan antes de cada elemento) de ningún tipo. Luego, los elementos de la lista tienen ya un margen y un padding y, lo más importante, es que tienen el float:left; para que se pongan uno detrás de otro en lugar de uno debajo de otro. Como habíamos marcado en HTML, la pestaña seleccionada tiene un estilo particular que hemos definido con la clase li.pestanaseleccionada, que simplemente tiene un cambio de color de fondo y del texto.

Para acabar, tenemos la clase cuerpopestanas, que es donde definimos la altura de la interfaz. Tenemos también un clear:both; para que el cuerpo no tenga en cuenta el float de los elementos de la lista donde hemos colocado las pestañas. Pero lo más importante es el overflow: auto para que salgan unas barras de desplazamiento verticales, en caso que el contenido del texto, o lo que haya dentro, ocupe más que el alto del cuerpo de las pestañas.

Con esta declaración de estilos hemos conseguido este efecto, que podemos ver en la URL: http://www.desarrolloweb.com/articulos/ejemplos/tallercss/pestanas/pestanas.html

Pero hemos creado otras declaraciones de estilos CSS para hacer este mismo esquema pero con otros aspectos:

Ejemplo 2:
Ver ejemplo
Con esta hoja de estilos

Ejemplo 3:
Ver ejemplo
Con esta hoja de estilos

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 3 comentarios (Añadir)

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de CSS
Anterior: Hacks CSS

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en CSS


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestran 3 comentarios revisados

 Comentario de Anonimo
22/3/08 
Ya que usáis la propiedad left en la listas, deberéis añadir la propiedad

<strong>overflow:hidden;</strong> para englobar cualquier elemento flotante de dentro ;)

1 salu2!


 Comentario de Hernán
27/3/08 
No funciona en Mozilla Firefox 2.0.0.8

 Comentario de Carles
28/3/08 
He añadido un javaScript para controlar la navegación entre las distintas pestañas y no tener que recargar.

<html>
<head>
<style type="text/css">
.pestanas{
width: 350px;
}
.pestanas ul{
margin:0px;
padding:0px;
list-style: none;
}
.pestanas li{
float:left;
margin:0px 6px 0px 0px;
padding:4px 6px 4px 6px;
background-color: #999999;
color: #eeeeee;
font-size:8pt;
}
li.pestanaseleccionada{
background-color: #333366;
color: #ffffff;
font-weight: bold;
}
.cuerpopestanas{
background-color: #333366;
color: ffffff;
clear:both;
margin:0px;
padding:4px;
height: 300px;
overflow: auto;
}
</style>
<script language="JavaScript">
function cambioPestana(idPestana, visible)
{
if (visible)
{
this.document.getElementById('pest'+idPestana).style.display = 'block';
this.document.getElementById('tit'+idPestana).className = 'pestanaseleccionada';
}
else
{
this.document.getElementById('pest'+idPestana).style.display = 'none';
this.document.getElementById('tit'+idPestana).className = '';
}
}

function actualizarPestanas(idPest)
{
cambioPestana(idPest, true);

var lstTags = this.document.getElementsByTagName('div');
for(i=0;i<lstTags.length;i++)
{
var nomPestAux = lstTags[i].id;

if (nomPestAux.substring(0, 4) == 'pest' && nomPestAux != 'pest'+idPest)
{
var idPestAux = nomPestAux.substring(4, nomPestAux.length);
cambioPestana(idPestAux, false);
}
}
}


</script>
</head>
<body>

<div class="interfazpestanas">
<div class="pestanas">
<ul>
<li id="tit1" onClick="JavaScript: actualizarPestanas('1');">Opción 1</li>
<li id="tit2" onClick="JavaScript: actualizarPestanas('2');">Opción 2</a></li>
<li id="tit3" onClick="JavaScript: actualizarPestanas('3');">Opción 3</li>
</ul>
<div class="cuerpopestanas" id="pest1" >
Esto es el cuerpo de las pestañas?1
</div>
<div class="cuerpopestanas" id="pest2">
Esto es el cuerpo de las pestañas?2
</div>
<div class="cuerpopestanas" id="pest3">
Esto es el cuerpo de las pestañas?3
</div>
</div>
</div>

<script language="JavaScript">
actualizarPestanas('1');
</script>

</body>
</html>
Saludos

Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de CSS
Categorías
+CSS

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia