Foros del Web » Creando para Internet » CSS »

CSS - Posicionamiento. Float:left

Estas en el tema de CSS - Posicionamiento. Float:left en el foro de CSS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/03/2014, 17:47
 
Fecha de Ingreso: septiembre-2004
Ubicación: Lleida
Mensajes: 27
Antigüedad: 19 años, 7 meses
Puntos: 0
Pregunta CSS - Posicionamiento. Float:left

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>
  #2 (permalink)  
Antiguo 04/03/2014, 18:43
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: CSS - Posicionamiento. Float:left

Hola Entomofauna.
Lo primero que puedo ver en tus estilos es que tienes width:8.8em en #capa03_menu y width:100% en #capa04_principal esto hace que capa 4 no "quepa" a la derecha, si quieres lograr ese efecto te recomiendo usar las mismas unidades de medida en ambas capas ejemplo

#capa03_menu{width:20%}
#capa02_principal{width:79%}

como verás falta un 1% esto es por el margen de error que puedan tener navegadores menos compatibles.

espero te sea util.
  #3 (permalink)  
Antiguo 04/03/2014, 18:54
 
Fecha de Ingreso: septiembre-2004
Ubicación: Lleida
Mensajes: 27
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: CSS - Posicionamiento. Float:left

Hola Fullmental.
Ya probé ese método y funciona a medias.
La capa 3 debería tener un ancho fijo, porque contiene un menú desplegable y necesito que sea de ancho fijo para que se vea bién el menú.
La otra debería ocupar el 100% del espacio que queda, pero no lo consigo.
¿Es posible hacer eso de algun modo?
Muchas gracias por tu tiempo,
Carles.
  #4 (permalink)  
Antiguo 04/03/2014, 19:08
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: CSS - Posicionamiento. Float:left

ok Emntomofauna,en el ejemplo que pones el contenedor tiene un ancho fijo, en ese caso sabes cuanto debe medir la izquierda y la derecha.

De otra forma prueba lo siguiente
Código:
	#menu{
			min-width: 120px;
			max-width:120px;
			float: left;
		}
		#content{
			float: left;
			width:79%;
		}
  #5 (permalink)  
Antiguo 04/03/2014, 20:13
 
Fecha de Ingreso: septiembre-2004
Ubicación: Lleida
Mensajes: 27
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: CSS - Posicionamiento. Float:left

Bién!.
Ahora funciona mejor.
Bueno, no es el ideal que pretendía, pero como minimo ya no se me pone la capa content debajo del menú.

El % del content es un parámetro que debería ser elástico para ocupar el máximo espacio disponible en cada navegador.
Ahora, en algunos navegadores se ve bién, y en otros no. Pero en fin, es lo máximo que he logrado.
Como mínimo, en MSIE 11 y en Firefox 23, se ve bién.

El float del "content" lo he puesto "right" porque así se alinea a la derecha con las capas "header" y "footer" y no hace tan feo. Lo que no se es si eso generará algun tipo de conflicto más adelante.
Muchas gracias compañero.
No cierro el tema de momento por si surgen nuevas propuestas.
Saludos,
Carles.
  #6 (permalink)  
Antiguo 08/03/2014, 16:58
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: CSS - Posicionamiento. Float:left

Prueba sin flotar el segundo elemento y añadiendo un overflow:

Código CSS:
Ver original
  1. #menu {
  2.   float: left;
  3.   width: 200px;
  4. }
  5.  
  6. #principal {
  7.   overflow: hidden;
  8. }

Es bastante robusto.

Aunque también podrías usar calc:

Código CSS:
Ver original
  1. #principal {
  2.   float: left;
  3.   width: calc(100% - 200px);
  4. }

Etiquetas: background, color, contenido, html, posicionamiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:00.