Miércoles, 15 de febrero de 2006
Es habitual encontrarnos en muchos sitios páginas web que tienen un menú vertical en la izquierda, con un color de fondo ocupando el alto completo del contenido de las mismas. Esto es muy sencillo de conseguir utilizando tablas y coleres de fondo para sus columnas, pero la cosa cambia considerablemente si queremos hacerlo con DIVs y CSS unicamente.
Hasta ahora no he encontrado en ningún sitio la solución a este problema que no sea utilizando imágenes de fondo con una franja del color que nos interesa (lo cual no permite redimensionar el tamaño de la columna del menú sin tener que cambiar también la imagen de fondo de la página); así que he tenido que arreglármelas para obtenerla yo mismo.
A continuación presento un ejemplo muy sencillo de cómo conseguir un menú vertical a la izquierda de nuestra página que tenga un color de forndo que ocupe el alto completo de nuestra página, de tal modo que podamos desplazarnos con la barra de scroll vertical y no tengamos una zona al final del menú de otro color si resulta que el alto del contenido de la página es mayor que el alto del contenido del menú. Todo esto, por supuesto, funcionando tanto para IE como para Firefox (dos de los navegadores más utilizados hoy en día).
Pasemos entonces a ver el código de la página XHTML:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" >
<head>
<link href="css/estilos.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="left_background"></div>
<div id="header">
Cabecera
</div>
<div id="content">
<div id="left">
Menu izquierdo
</div>
Cuerpo
<br/><br/><br/><br/>
<br/><br/><br/><br/>
<br/><br/><br/><br/>
<br/><br/><br/><br/>
<br/><br/><br/><br/>
</div>
</body>
</html>
html, body {
height: 100%;
}
body {
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
font-size: 16px;
}
#header {
position: relative;
width: 100%;
height: 50px;
vertical-align: bottom;
background-color: #0000ff;
z-index: 200;
}
#content {
position: relative;
height: 100%;
z-index: 200;
}
#left {
float: left;
width: 8.6em;
height: 100%;
background-color: #ff0000;
}
#left_background {
display: inline;
position: fixed;
left: 0px;
width: 8.6em;
height: 100%;
background-color: #ff0000;
z-index: 100;
}
* html #left_background {
position:absolute;
}

* html #left_background {
position:absolute;
}que hace que se posicione de modo "absolute" unicamente en IE (aprovechando un mal uso de CSS en IE
Por: Rubén Suárez Alvarez | HTML/CSS | Comentarios (0) | Referencias (0)
"El trabajo tiene un peso específico dentro de la empresa. A más trabajo, más peso y por tanto más abajo estás. A menor trabajo más ligero te vuelves y más asciendes. ¿Y tú, trabajas o asciendes en tu empresa?"
rubensa
| << | >> | |||||
| Lu | Ma | Mi | Ju | Vi | Sá | Do |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | |||||
Bitácora de Rubén Suárez Alvarez
Online gracias a 