Como dibujar menu con "pestañas"

hola

me gustaria saber como puedo modificar la hoja de estilos o el código de la página para diseñar un menu horizontal con pestañas (como en la página de CCTW).

El menú horizontal ya lo tengo completado de la siguiente manera:



<div id="menu-horizontal">
<div id="tema01">PORTADA</div>
<div id="tema02">NOTICIAS</div>
<div id="tema03">ARQUITECTO DE LA SEMANA</div>
<div id="tema04">RECURSOS CAD</div>
<div id="tema05">LINKS DE INTERÉS</div>
<div id="tema06">CURRÍCULUM</div>
</div>

---------------------------------

y en plantilla:

#menu-horizontal {width: 800px; margin: 1px auto}
#tema01 {background-color: #BDB76B;width: 90px; border: none; float: left;}
#tema02 {background-color: #BDB76B;width: 90px; border: none; float: left;}
#tema03 {background-color: #BDB76B;width: 220px; border: none; float: left;}
#tema04 {background-color: #BDB76B;width: 140px; border: none; float: left;}
#tema05 {background-color: #BDB76B;width: 150px; border: none; float: left;}
#tema06 {background-color: #BDB76B;width: 110px; border: none; float: left;}

----------------

gracias!
He estado haciendo mis pruebas y mirando un poco aqui y alli, he diseñado esto pero no me queda "nada bien" jejeje.

A parte esta un poco desorganizado pero ahi va!

codigo fuente
-------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>

<title>MEDBEN-Arquitectura web oficial</title>
<META content="Web de Xavier Medina dedicada a los estudiantes de arquitectura por su contenido docente y de ayuda para la carrera. De la misma manera, hay un apartado dedicado a presentar los proyectos realizados durante la misma." name="description">
<META content="xavier, medina, benhamú, arquitectura, arquitecto, proyectos, estudios, ETSAB, badalona" name="keywords">

<link rel="stylesheet" href="plantilla.css" type="text/css" media="all">

</head>

<body>

<div id="barra-logo">
<h1>aqui va el logo de la web</h1>
</div>



<div id="data">
<SCRIPT>
<!--
dows = new Array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado");
months = new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
now = new Date();
dow = now.getDay();
d = now.getDate();
m = now.getMonth();
h = now.getTime();
y = now.getYear();
document.write(dows+" "+d+" de "+months+" de "+y);
//-->
</SCRIPT>
</div>

<br class="espaciado1">

<div id="global">



<div id="barra-horizontal">

<div id="menu-horizontal">

<ul>
<br class="espaciado1">
  • PORTADA
  • NOTICIAS
  • ARQUITECTO DE LA SEMANA
  • RECURSOS CAD</li
  • LINKS DE INTERÉS
  • CURRÍCULUM


    </div>
    </div>



    <div id="menu-vertical">


    <ul>
    <li class="menu-lateral">Elemento 1
    <li class="menu-lateral">Elemento 2
    <li class="menu-lateral">Elemento 3
    <li class="menu-lateral">Elemento 4
    <li class="menu-lateral">Elemento 5
    <li class="menu-lateral">Elemento 6





    </div>



    <div id="contenido"> Aqui irá el contenido de la web
    </div>



    <div id="banner-vertical"> Posible publicidad vertical
    </div>

    <div id="banner-horizontal">


    <h1>Aqui va la publicidad en linea horizontal</h1>
    </div>



    <div id"pie">
    <h3>Web creada por Xavier Medina / e-mail: [correo eliminado]</h3>
    </div>
    </div>



    </body>
    </html>

    --------------------------------------
    hoja de estilos:

    body {text-align: center; font-family: Arial,Verdana,Helvetica,Sans-serif; background-color: WHITE}

    #global {background-color: #BDB76B; font-family: Arial,Verdana,Helvetica,Sans-serif; font-weight: bold; width:800px;}

    #barra-logo {width:800px;}

    #data {text-align:right; font-weight:bold; font-size:0.6em; font-family: Arial,Verdana,Helvetica,Sans-serif; margin:5px 0px 5px 0px;}

    #barra-horizontal DIV {BACKGROUND-IMAGE: url(objetos/barra-inactivo.gif); FLOAT: left; OVERFLOW: hidden; WIDTH: 800px; HEIGHT: 31px; TEXT-ALIGN: center}

    #menu-horizontal {MARGIN: 0px 0px; WIDTH: 800px}
    #menu-horizontal DIV {FLOAT: left; OVERFLOW: hidden; WIDTH: 146px; HEIGHT: 31px; TEXT-ALIGN: center}
    #menu-horizontal DIV A {DISPLAY: block; COLOR: #000; LINE-HEIGHT: 32px; COLOR: black}
    #menu-horizontal DIV A:LINK {}
    #menu-horizontal DIV A:VISITED {}
    #menu-horizontal DIV A:HOVER {FONT-WEIGHT: bold}
    #menu-horizontal DIV A:ACTIVE {COLOR: red}

    #menu-vertical {background-color: #CDC9C9 ; width: 150px ; height: 150px; float: left; margin: 30px 0px 0px 5px;}

    #contenido {background-color: #CDC9C9 ; width: 620px ; height: 400px; float: left; margin: 30px 0px 0px 10px;}

    #banner-vertical {background-color: #CDC9C9 ; width: 150px ; height: 442px; float: left; margin: 5px 0px 0px 5px;}
    #banner-horizontal {background-color: #CDC9C9; width: 780px; height: 100px; float: center; margin: 5px 0px 0px 0px;}

    br.espaciado1 {font-size: 7px;}
    br.espaciado2 {font-size: 400px;}

    h1 {font-size: 1em; color:black; font-weight: bold ; text-decoration: none ; text-align: center; }
    h2 {font-size: 0.9em; color:black; font-weight: bold ; text-decoration: none ; text-align: center; }
    h3 {font-size: 0.7em; color:black; font-weight: bold ; text-decoration: none ; text-align: center; }

    ul {list-style: none; margin:0px 0px 0px 9px; padding: 0px 0px 0px 0px ; }
    li {float: left; margin: 0px 7px 0px 0px ; }

    a {font-size: 0.9em; text-decoration: none}
    a:link {}
    a:visited {}
    a:hover {}
    a:active {color:red;}

    --------------------------------------

    gracias! :lol:
  • Hola

    con los puros codigos no puedo adivinar de lo que se trata

    porque no tengo las imagenes, que has puesto

    si ya lo subiste danos la url para verlo

    y si no....

    pues subelo, para verlo eejejje

    saludos
    Hola

    estoy tratando de ver como podemos arreglar eso

    pero para eso tienes que ajustar la imagen, de tal forma que quepan todas las pestañas en linea

    ya qeu por el momento no caben

    otra forma es dibujar toda la barra de navegacion con las diviciones de todas las pestañas, y asi solo insertarla como fondo,

    pero debe medir 800px de ancho no mas

    seguiré viendo la forma y ya te contaré

    saludos
    hola yaneth,

    he hecho lo que me has dicho pero me ocurren dos fallos:

    - al incorporar la barra entera, se me pone doble (se copia dos lineas consecutivas).

    - no se como hacer para que sobre cada una de ellas esté incorporado el texto de cada sección.

    gracias por tu ayuda! :o
    yaneth lo conseguí!!!!

    he podido incorporar todas las pestañas con el ancho que queria y quedan todas en una linea.

    Puedes comprobarlo visitando la web.

    La pregunta que me surge es que he puesto la imagen en la hoja de estilos para cada tema. De esta manera, cada vez que tenga que pulsar una opción tendré que hacer una hoja de estilos para cada una (para que la pestaña se ponga de color "verde")
    Dicen que cada webmastercillo tiene su librillo... je je y yo tengo el mio, claor. Para mi, una buena manera es la siguiente:

    Si tu web tiene por ejemplo cinco secciones llamadas seccion1, seccion2....seccion5, crea en tu espacio web 5 carpetas con esos nombres (no estos, sino los nombres de las secciones que en tu caso serían portada, noticias, etc)

    Espacio web y sus carpetas:
    -seccion1
    -seccion2
    -seccion3
    -seccion4
    -seccion5
    -comun

    Crea también una carpeta llamada, por ejemplo, comun, donde puedes guardar eso, todos los archivos comunes, como el logotipo, la hoja de estilo comun a todas, etc.

    Bien. Una vez que tienes terminada una página, puedes guardarla en la carpeta comun con el nombre plantilla.html. Esa página te sirve de base para generar todas las demás.

    Igual que puedes ponerle una hoja de estilo a una página, también puedes ponerle dos. De este modo, puedes hacer que lea una primera hoja de estilos donde has definido propiedades comunes, que han de respetar tooodas las subpaginas de la web. Esto se hacía así, inlcuyendo esta línea en el Head de cada página:
    <LINK rel="stylesheet" href="../comun/estilos.css" type="text/css" media="all">

    Fíjate que como se supone que guardas las subpáginas en la carpeta de su sección, para llegar desde allí a la hoja de estilo ubicada dentro de la carpeta común tienes primero que salir de la carpeta de esa sección (eso se logra poniendo en la ruta dos puntos "..") y luego has de entrar en la carpeta comun (eso se logra escribiendo despues de los dos puntos esto: /comun) para llegar finalmente al archivo estilos.css. Por eso en la ruta he colocado "../comun/estilos.css".

    Bien, con eso cada subpágina lee los estilos generales que has definido en estilos.css El estilo al que te refieres, para colorear la lengüeta de la sección correspondiente solamente, no has de definirla allí, pues allí solo ponemos lo común.

    Para definir cosas que solo pretenecen a una sección concreta (el color de su lengüeta, por ejemplo) lo puedes haces en una segunda hoja de estilos, que guardarás dentro de cada una de las carpetas de cada sección. Imagina que llamas a esa segunda hoja de estilo "estilo-de-seccion.css". Pues en ella defines el coloreado de la sección y la guardas dentro de su carpeta correspondiente. Haz lo mismo con el resto de secciones.

    Ahora, dentro del Head de cada una de las subpáginas y justo después de la línea que enlaza a la primera hoja de estilo, escribes esto:
    <LINK rel="stylesheet" href="estilo-de-seccion.css" type="text/css" media="all">

    Con esa línea, el navegador primero lee la hoja de estilos comun y cuando termina lee la segunda y memoriza todos los estilos.

    Fíjate que en este caso, la ruta es distinta. Ya no retrocedemos para salir de la carpeta seccionX, pues como tanto la subpágina como esta otra hoja de estilo están en la misma carpeta, no es necesario y basta con poner directamente el nombre de esa segunda hoja de estilo.

    Es bueno que estas hojas de estilo secundarias se llamen todas igual. El navegador no se va a confundir leyendo otra de otra carpeta pues en la ruta queda claro que ha de leer la de SU carpeta.

    Espacio web, sus carpetas en negrita y sus archivos dentro:
    index.html
    -seccion1:
    .........subpagina1deseccion1.html
    .........subpagina2deseccion1.html
    .........estilo-de-seccion.css
    .........objetos
    ..................fotouno.gif
    ..................fotodos.gif
    -seccion2:
    .........subpagina1deseccion2.html
    .........subpagina2deseccion2.html
    .........estilo-de-seccion.css
    -seccion3:
    .........subpagina1deseccion3.html
    .........subpagina2deseccion3.html
    .........estilo-de-seccion.css
    -seccion4:
    .........subpagina1deseccion4.html
    .........subpagina2deseccion4.html
    .........estilo-de-seccion.css
    -seccion5:
    .........subpagina1deseccion5.html
    .........subpagina2deseccion5.html
    .........estilo-de-seccion.css
    -comun:
    .........estilos.css
    .........logotipo.gif
    .........fondo-de-paginas-gif

    Como ventaja, seguimos teniendo el codigo html de la plantilla exactamente igual para todas las secciones, lo que es un ahorro de tiempo al no tener que modificar nada en función de a qué sección corresponda cada subpágina, no?

    Ahora queda cómo decir con la hoja de estilo secundaria, que la lengüeta se muestre con un color u otro. Vamos allá:

    Gracias a que tu ya has colocado una clase de estilo a cada lengueta, basta con colocar en la hoja de estilo secundaria la definición del color verde para el tema que corresponda.

    Así, por ejemplo y en tu caso, para dibujar como Activa la lengüeta de la sección Noticias, te basta con crear la hoja de estilo secundaria llamada estilo-de-seccion.css, abrirla, ponerle esta línea:
    #tema02 {background-image: url(objetos/pestana-corta-activa.gif);}
    y guardarla dentro de la carpeta noticias.

    Y haces lo mismo con el resto de secciones, crear la hoja estilo-de-seccion.css en cada carpeta y le pones a cada una esa línea cambiando el número del tema que le corresponda.

    Solo una cosa más. Antes debes abrir la hoja dde estilos común (en tu caso es plantilla.css) y dejar inactivos todos los temas, es decir, asignarle la imagen en estado inactivo, con fondo blanco, pues será la hoja de estilos secundaria la que cambie esto.

    Te hablo de cabeza... si algo falla me lo dices y lo arreglamos, oki?

    Con esto podeis ver las ventajas que tiene el guardar las subpáginas de cada sección en carpetas distintas. Tiene más ventajas que ireis descubriendo poco a poco.

    Un abrazo y buen trabajo! :wink:
    ostras jorgens vaya leccion jejej

    me lo estoy imprimiendo para lerlo poco a poco porque hay aqui información muy buena.

    muchas gracias como siempre por tu ayuda (y la de los demas claro esta!) :o
    Pues si, ahora que lo miro... me has pillao inspirao! je je je. Son de esas cosas que tengo en mente para ir explicando poco a poco en el curso paso a paso. En ese curso no pretendo enseñar solo a crear una web, sino que la tomaré de base para ir explicando todo, posicionamiento, html, css, ... todo lo que se me ocurra, por lo que todo esto me viene bien, je je. Eso si, no se qué año terminaré ese curso, ja ja ja, hay tantas cosas que contar...

    Ale, ya nos contarás. Cualquier fallo en la explicación o duda me lo dices aqui mismo y así lo uso luego para las lecciones, oki?

    Un abrazo y gracias por hacer de "conejillo de indias" je je je :wink:
    Hola Jorgens,

    he estado siguiendo linea a linea tu gran explicación y con arduo esfuerzo y un poco de orden lo he colocado todo como me indicas.

    pero seguro que hay un paso que no hago bien jejeje.

    Lo he subido todo para que lo puedas ver tu mismo y mirar el fallo pero te cuento.

    He separado todas las secciones por carpetas, estilos y código html y los enlaces funcionan todos bien (o eso creo) pero no se me ve ni la pestaña verde en aquella página activa ni en negrita.

    Creo que puede ser:

    - el estilo .css de cada apartado no esta bien "escrito". Me refiero a que puede contener errores de alguna orden. Yo no lo se ver (tu seguro que si jejej)

    - He ido repasando enlace con enlace y ruta a ruta para que no haya problemas con las imágenes y los apartados. Me dan todos correctamente pero bueno, todo puede pasar en la vida!

    - Cuando me indicas la orden de asignar plantillas, tal como:

    <LINK>
    <LINK>

    veo la diferencia de que la primera tiene al final media=all y la segunda "print".
    Supongo que se refiere a que una sirve para todas las páginas y la otra solo a la que está en pantalla no?

    - Mi última reflexión es que se que no se nada jejeje. Como te digo al principio, he subido la web para que te sea más facil de comprovar. Si necesitas cualquier cosa me lo comentas!!

    Luego digo de tus lecciones jejej vaya parrafón que he escrito!!!

    Agradecerte antes tu implicación en la web y lo mucho que nos ayudas a todos a tener un "minuto" de gloria en internet con una web propia (cosa que me parecia imposible hace un mes).

    Hasta ahora!!!
    perdona jorgens que te maree,

    pero la dirección para que puedas ver la página es:

    medben-arquitectura.com

    (como puedes ver ya se me ha conectado el hosting con el dominio!!!)

    gracias!
    Ups, perdona :oops:

    En lugar de "print" has de poner "all". Se me fue un poco la cabeza, je je je.

    Cuando pones "print" en lugar de "all" lo que estás haciendo es indicar el estilo que quieres mostrar cuando el usuario imprima tu web. De ese modo puedes crear una hoja de estilos en la que ocultar algunas capas que no te interesa que sean impresas, como el menú, los banners de publicidad etc, que puedes ocultar para evitar que se impriman colocandole a esa capa, en esa otra hoja de estilo, esto: {display:none }, pero eso ya os lo explicaré llegado el momento, je je je.

    Por ahora cambia print por all y me cuentas, oki? Un saludo y perdona el despiste! :wink:
    Por cierto, quizás no me expliqué del todo bien o quizás has encontrado una opción mejor, pero la idea que te he comentado trata de poner el mismo nombre a todas esas hojas de estilo secundarias y que pones en cada una de las carpetas.

    Es decir, a esas hojas de estilo que tú has llamado plantilla_portada.css, plantilla_noticias.css, etc, yo los llamaria igual a todos, con un nombre que le venga bien a todas, como por ejemplo plantilla-complementaria.css o algo así.

    Por qué? Por que así todo el codigo html es igual en todas las páginas de todas las secciones y no tendrás problemas en usar una única plantilla en lugar de una plantilla para cada sección. Me explico?

    El navegador no se va a confundir, sabrá perfectamente qué hoja de estilo tiene que leer aunque todas se llamen igual, pues cada una está en una carpeta distinta, la carpeta de la sección correspondiente.

    Me pillas? :wink:
    Ahhhhhhhhh (no es un grito de dolor sino de asentimiento jejej)

    Pensaba que cuando me decias estilo-de-seccion.css te referias a poner un nombre a cada seccion jejeje que bobo.

    Es el mismo nombre pero cada una en su carpeta con codigo diferente vale vale. Lo corrijo enseguida.

    Por cierto, las pestañas ya salen perfectas!!! Era el problema del print por el all. Ahora a rellenar todo el meollo de la web jejje que es poco.

    Muchas gracias por tu paciencia y inoperancia de nosotros los aprendices jejeje.

    Pronto volveremos a estar en contacto con otro tema te lo aseguro! :lol:
    Al menos usando el exporer y haciendo la ventana del navegador muy ancha, se descuadran las lengüetas. Miralo tú mismo y si no consigues corregirlo me lo dices...

    Es bueno tener la plantilla perfecta antes de empezar a rellenar y a generar páginas, para evitar tener que hacer los cambios luego en cada una de ellas. Aunque llegado el caso puedes usar el "Buscar y Reemplazar"...

    Dinos algo! :wink:
    uy se me olvidó darle características al div global del ancho de la página.

    ya esta solucionado.

    ahora tengo que cuadrar los logos que se me han quedado uno encima del otro jejeje.

    gracias y si ves algo mas por ahi no dudes!!!
    uhhhhh dichoso de mi.

    me ha dado ya que me has dicho eso de mirar la web en el mozilla firefox y madre mia parece eso un puzle mal hecho!!! todo sobre todo! vaya orgia de imagenes jejejeje.

    voy a mirar en el foro general a ver si hay alguna pregunta para ver bien la web en el mozilla y asi no t atosigo jejeje.