Diseñamos
CSS
Navegación con pestañas
Las pestañas son una de las técnicas más comunes que nos podemos encontrar en la navegación de un sitio web. Incluso grandes sitios como Amazon y Barnes & Noble encontraron en este tipo de navegación un sistema que le es familiar al usuario y fácil de entender. En su descripción, es un sistema simple: se trata de simular en el navegador un folder o cuaderno con separadores o "pestañas" y por esto, el usuario encuentra tan cómoda la navegación por un sitio diseñado con este sistema.
El Marcado
En este tutorial mostraremos las bases de la técnica para diseñar una navegación con pestañas utilizando XHTML y CSS.
Nuestro resultado final se verá algo así
Vamos a comenzar por el archivo XHTML. Este se compone simplemente de una lista desordenada que en sus elementos tiene los enlaces a las secciones del sitio y necesitaremos también una capa donde irá el contenido. Es bastante simple y no hay mucho que comentar al respecto.
<ul>
<li><a href="1.html">Sección 1</a></li>
<li><a href="2.html">Sección 2</a></li>
<li><a href="3.html">Sección 3</a></li>
<li><a href="4.html">Sección 4</a></li>
</ul>
<div id="contenido">
<!--Contenido-->
</div>
Los Estilos
Antes de aplicar estilo, la lista se ve de lo más aburrida.
Pasando a la parte interesante, vamos a crear el archivo CSS que será el que en realidad hará todo el trabajo.
Comenzamos por definir los estilos para las etiquetas relacionadas con la lista. Eliminamos el "estilo de lista" para que no se muestre ninguna imagen anterior a los elementos. Después "flotamos" cada uno de los elementos de la lista hacia la izquierda con lo cual logramos el despliegue horizontal de los enlaces.
ul {
width: 750px;
list-style: none;
padding: 0;
margin: 0;
display: inline;
float: left;
border-bottom: 1px Solid Black;
}
ul li {
width: 100px;
display: block;
float: left;
text-align: center;
margin-right: 10px;
position: relative;
top: 1px;
}
El resto de las propiedades no decorativas es para arreglar algunos detalles de compatibilidad entre navegadores, esto se explica en los comentarios del archivo CSS, mientras que la parte de la posición relativa la explicaré más tarde.
A continuación viene la parte de los enlaces internos.Parte del concepto de la barra de navegación por pestañas se basa en que uno de los elementos (por lo general el referente a la página o sección actual) sobresalga de algún modo. Por esto, vamos a requerir de la creación de una clase o identificador especial que aplicaremos al enlace correspondiente en cada una de las páginas.
ul li a {
width: 100px;
display: block;
background: #3B9CCC;
border: 1px Solid #000;
text-decoration: none;
}
a.actual {
width: 100px;
display: block;
background: #77BADB;
border-top: 1px Solid #000;
border-bottom: 1px Solid #77BADB;
text-decoration: none;
}
Lo único que queda por hacer es crear el estilo para la capa de contenido. Aquí el único detalle es dejar el margen en 0 para que ésta quede pegada a la barra de navegación y se pueda conjuntar.
#contenido {
width: 750px;
background: #77BADB;
float: left;
margin: 0;
border-left: 1px Solid #000;
border-bottom: 1px Solid #000;
border-right: 1px Solid #000;
}
En este caso y regresando al punto del cambio de posición de 1 pixel en los elementos de la lista,
dejé la capa de contenido sin borde superior, este borde se simula poniendo el inferior del elemento ul.
Los elementos de la lista se mueven 1 pixel hacia abajo para sobreponerse a este borde. Para simular la integración con el
contenido, cambiamos el color del borde en la clase actual. Como nota, el borde en el que
sobreponemos los elementos de la lista podría ser el superior de la capa de contenido y nos ahorraríamos un par de líneas de código,
sin embargo hay algunos navegadores que presentan problemas con esto.
Existen otras formas de resaltar las pestañas sin necesidad de jugar tanto con los bordes, por ejemplo, se pueden usar imágenes de fondo o cambiar el tamaño, color u otros atributos de éstas.
Conclusiones
Como se puede ver, la técnica es relativamente sencilla y tiene muchos otros modos de aplicación pero los pasos a seguir son los mismos que los de este ejemplo.
Aquí están los enlaces al ejemplo terminado y a la hoja de estilos, la cual comenté un poco para aclarar algunas dudas extra y resaltar los puntos importantes.
Comentarios sobre este artículo
Muy bien explicado. :)
Ya lo había leido no me acuerdo donde pero en inglés, no cabe duda que el idioma ayuda bastante a que le perdamos el miedo, muy bueno el tutorial...
Creo que al articulo le faltan un poco mas de imagenes, de como es que va cambiando la lista cuando se le van aplicando los estilos, si quieren mas de como darle estilos a sus listas chequen la siguiente pagina http://css.maxdesign.com.au/listutorial/index.htm es un tutorial con bastantes ejempls de listas y CSS, tambien lean el tutorial de float esta muy bueno
CSS es lo mejor
Muy buen ejemplo.. los felicito por el sitio...
Yo, lo siento, pero he tenido que dejar de leer cuando he visto el título 'El Marcado' (traducción libre de The Markup)
Por lo demás, bien por la traducción ..
ElQueFaltaba: No es una traducción, es un artículo original... pero bueno, ¿Como ibas a saberlo si no lo leíste completo?
Tienes en mente una mejor traducción para markup?
Muy bueno el articulo, voy a ponerlo en pracatica y luego veo los resultados
Si ha esto añadimos AJAX... sería lo mejor XD !! :P
Eso mas AJAX y algo de imagenes, que maravilla ;)
En lo personal me encanta la navegacion por tabs/pestanias, me encantan tanto en los softwares, como en las webs. Es obvio que en la web esto es muy relativo, depende mucho del tema del site a tratar.
Saludos!
Personalmente me parece que existe la costumbre de decir "el código", más alla de que no es lo más correcto dado que HTML no es un lenguaje de programación. Pero teniendo en cuenta que existe la costumbre de traducir "tags" como "etiquetas", quizás "el etiquetado" sería una derivación menos chocante. Bah, si vamos a ponernos en exquisitos, la traducción de la especificación de HTML traduce "markup" como "formato".
Aquí también hay un buen artículo http://www.vicentgozalbes.com/?op=view&ob=noticias&op=showNew&id=67
Muy bueno el articulo, facil y rapido de aplicar. Solo unos pequeños cambios para trabajarlo con imagenes y todo marcha bien, da una buena idea para comenzar a hacer experimentos (creo que esta es al idea, no?).
Por que será que tiene alguien que fijarse en lo menos importante? en vez de disfrutar el articulo y usarlo como referencia, se hacen bola por una palabra....
Saludos.
En lo personal, prefiero utilizar directamente los términos en inglés. Cualquier traducción suele agregar ambigüedad a este tipo de textos.
Felicidades por el articulito, simple y al grano. :)
Hola, gracias por sus comentarios respecto al artículo.
Veo que varios están asumiendo que es una traducción, nada más para quitar la duda, tal y como comenta Sosa, no es una traducción aunque definitivamente encontrarán artículos en ingles que tratan el tema de manera similar pero creo que al fin y al cabo el objetivo de este proyecto es tener este tipo de recursos en nuestro idioma.
Lo de la traducción de algunos términos es algo a tomar en cuenta pero son solo detalles, no creo que se le deba poner tanta importancia ya que es el problema de siempre, a veces no hay palabras que se puedan traducir de un lenguaje a otro sin que pierdan sentido y hay que encontrar adaptaciones.
La idea de añadirle AJAX suena genial, quizá para una segunda parte :).
Saludos.
Muy bien explicado:)
Y además me ahorró trabajo,
gracias:)
Me parece un articulo muy bueno, mis felicitaciones. A ver si aparecen más articulos de este estilo.
Un saludo.
Muy buen trabajo...me saco de un apuro tremendo....Muchas Gracias..
Discute sobre este artículo