Hola compañeros.
Tengo un problema con el posicionamiento de las capas en mi plantilla, que no termino de solucionar. Llevo días dándole vueltas a la razón por la que la capa 4 no hace float-left respecto a la 3.
He diseñado una plantilla de la siguiente manera:
#capa_01_contenedor contiene a todas las demás.
#capa_02_cabecera contiene el logo de cabecera. Width = 100% interior.
#capa_03_menu width 8.8em para contener el menú de navegación float:left
#capa_04_principal debe ocupar el 100% del espacio restante (100% -8.8em) y situarse a la derecha de la capa_03 del menú con un float:left
#capa_05_footer ocupa el 100% del ancho interior y se situa debajo de todas las demás.
PROBLEMAS
1. La capa_01_contenedor no ocupa el 100% de la altura, a pesar de que tiene asignado height:100%
2. La capa #capa_04_principal debería situarse a la derecha del menú y ocupar el 100% del espacio que queda entre la capa #capa_03_menu y el margen derecho de la capa #capa_01_contenedor pero no lo hace. Cuando introduzco contenidos dentro de capa_04, la capa se sitúa debajo del menú.
¿Alguna sugerencia?
Os pongo un enlace directo al ejemplo y el código, para visualizar mejor el problema.
http://www.carlessola.cat/capas.php
Código:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TITULO</title>
<link href="http://www.carlessola.cat/favicon.ico" rel="shortcut icon" />
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<style type="text/css">
body {
height: 100%!important;
width: 100%!important;
margin:0!important;
padding:0!important;
background-color: #4C4C4C !important;
background-image:url(../imatges/fons/general.gif);
background-repeat:repeat;
background-attachment: fixed;
border:none;
cursor:default;
/* ------------------------TEXT GENERAL -------------------- */
font-family: "Century Gothic";
font-size: 0.8em;
color:#CCCCCC;
font-style: normal;
font-weight: normal;
line-height: 1.3em;
letter-spacing:0.06em;
word-spacing:normal;
text-align:justify;
}
#capa_01_contenedor {
width: 1024px!important;
height: 100%;
min-height: 100%!important;
margin: 0.3125em auto 0.625em;
padding: 0.3125em;
background-color: #4C4C4C !important;
border: 1px solid #7F7F7F;
border-radius:0.3em;
display:table;
border: 1px solid #3F0; /* Style Provisional */
}
#capa_02_cabecera {
width: auto!important;
height:auto!important;
padding: 0 0.1875em;
margin-bottom:0.3125em;
background-image:url(../imatges/fons/gris_ralletes.gif);
border: 1px solid #7F7F7F;
border-radius:7px 7px 0px 0px;
border-bottom: 1px dotted #3f0!important;
border: 1px solid #3F0; /* Style Provisional */
}
#capa_03_menu { /* Menu principal */
width:8.8em!important;
height:450px!important;
padding:0;
margin:0;
margin-right:0.3em; /* esto es para separar un poquito la capa 3 de la 4*/
overflow:visible!important; /* overflow visible para no ocultar menus desplegables */
display:table-cell;
float:left;
z-index:9;
border: 1px solid #3F0; /* Style Provisional */
}
#capa_04_principal { /*54.25*/
width:100% -8.8em!important;
height:100%!important;
padding: 0.3em 0.5em;
margin:0;
background-color:#595959;
position:static;
display:table-cell;
float:left;
z-index:9;
border: 1px solid #3F0; /* Style Provisional */
}
#capa_05_footer {
width: auto !important;
height:100% !important;
float:none;
clear: both;
text-align:center;
border-top: 1px dotted #7F7F7F !important;
padding: 5px 3px 3px;
}
</style>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
</head>
<body>
<a name="inici" id="inici"></a>
<div id="capa_01_contenedor">
<div id="capa_02_cabecera">
<br />
CABECERA - TOP<br />
<br />
</div>
<div id="capa_03_menu">
<br />
MENU <br />
<br />
</div>
<div id="capa_04_principal">
PRINCIPAL CONTENIDOS<br />
<br />
Lorem ipsum ad his scripta blandit partiendo, eum fastidii accumsan euripidis in, eum liber hendrerit an.<br />
</div>
<div id="capa_05_footer">PIE PAGINA - FOOTER
</div>
</div>
</body>
</html>