Foros del Web » Creando para Internet » CSS »

maqueteando 3 columnas en 3 niveles de profundidad

Estas en el tema de maqueteando 3 columnas en 3 niveles de profundidad en el foro de CSS en Foros del Web. Hola, que tal? Quería preguntarles algo que he estado intentado y que me ha salido algo tosco: Codigo XHTML 1.0 Strict Código: <div id="header">header</div> <div ...
  #1 (permalink)  
Antiguo 30/07/2007, 19:34
Avatar de phpleo  
Fecha de Ingreso: julio-2003
Ubicación: Lima, Perú
Mensajes: 34
Antigüedad: 20 años, 9 meses
Puntos: 1
maqueteando 3 columnas en 3 niveles de profundidad

Hola, que tal? Quería preguntarles algo que he estado intentado y que me ha salido algo tosco:

Codigo XHTML 1.0 Strict
Código:
<div id="header">header</div>

<div id="tabs">
	<ul>
		<li>Home</li>
		<li>New Tab</li>
	</ul>
</div>

<div id="container">

	<div id="content">
	
		<div id="product">
			<div id="product-img">
				imagen				
			</div>

			<div id="product-summary">
				resumen				
			</div>

			<div id="product-rating">
				rating
			</div>
			
			<div class="clearing"></div>
		</div>
		
	</div>
	
	<div id="sidebar">sidebar</div>
	<div class="clearing"></div>
</div>

<div id="footer">el pie</div>
CSS
Código:
/* general
==============================================================================*/
body {
	background-color:#fff;
	font-family: "Trebuchet MS", Trebuchet, Arial, Helvetica, sans-serif;
	font-size: 13px;
	color: #000000;
}

* {
	padding:0;
	margin:0;
}

/* cabecera
==============================================================================*/
#header {
	background:url(../images/site/bgTop.png) repeat-x;
	height:80px;
}

/* pestañas
==============================================================================*/
#tabs { border:1px solid #009900;	
	width:982px;
	height:90px;
	margin:10px auto 10px auto;
	clear:both;
}

/* contenedor
==============================================================================*/
#container { /*border:1px solid #333333;*/
	width:982px;
	margin:0 auto;
	clear:both;
}

/* contenido
==============================================================================*/
#content {
	background-color:#FFFFFF;
	width:660px;
	float:left;
}

/* producto
==============================================================================*/
#product { border:1px solid #FF0000;
	width:656px;
}

#product-img {
	background:url(../images/site/bgProduct.png) no-repeat;
	width:145px;
	height:114px;	
	float:left;
}

#product-img ul {
	list-style:none;
	float:left;
	margin:3px 10px 0 10px;
}

#product-img ul li {
	padding:8px 0;
}

#product-img ul li a {
	display:block;	
}

#product-img ul li img {
	border:0;
}

#product-summary { border:1px solid #003366;
	width:350px; /*400px*/
	margin:0 0 0 150px;
}

#product-summary h3 {
	font-family: "Trebuchet MS", Trebuchet, Arial, Helvetica, sans-serif;
	font-size: 13px;
	color: #000000;
	border-bottom:2px solid #006600;
	font-weight:normal;	
}

#product-rating { border:1px solid #009966;
	float:right;
	height:114px;
	width:80px;
}

/* barra lateral
==============================================================================*/
#sidebar {
	background-color:#CCCCCC;
	width:310px;
	float:right;
}

/* pie de pagina
==============================================================================*/

/* clases
==============================================================================*/
.opacidad-cinco {
	filter: alpha(opacity=50); /* IE */
	opacity: .5 /* FF */
}

.border-imgproduct {
	padding:2px;
	border:1px solid #333333;
	background-color:#fff;
	margin:5px 0 0 0;
}

/* hacks
==============================================================================*/
.clearing {
	clear:both;
}
El resultado con esto es el siguiente:

img266.imageshack.us/my.php?image=sshot20070730201003ja1.jpg

lo cual no se cuadra como debería, haciendo que solo 2 columnas vallan al mismo nivel.

Lo que si me ha resultado es poniendo las dos ultimas columnas con: float:right; y cambiando sus posiciones.

Mi pregunta es: ¿es esta la forma correcta de hacerlo?. he probado con IE7, FF v2.0.0.5 y Opera; en los tres resulta igual.

Un saludo y muchas gracias de antemano :)
__________________
Primero papel y lapiz, luego lo que quieras.
  #2 (permalink)  
Antiguo 30/07/2007, 20:11
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 1 mes
Puntos: 63
Re: maqueteando 3 columnas en 3 niveles de profundidad

Hola

Bueno, no me ha quedado muy claro lo que quieres. Y no me queda claro lo de los niveles de profundidad. Por profundidad estaríamos hablando del eje Z y por lo tanto, de la propiedad z-index.

Si lo que quieres es alinear 3 capas y que estén a la misma altura, hay muchos ejemplos en el foro, pero te dejo aquí un par:
Código xhtml
Código HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
	<title>Pruebilla</title>
</head>
<body>
<div id="Base">
	<div id="a">
		<p>&nbsp;</p>
		<p>Capa A</p>
		<p>&nbsp;</p>
	</div>
	<div id="b">
		<p>&nbsp;</p>
		<p>Capa B</p>
		<p>&nbsp;</p>
	</div>
	<div id="c">
		<p>&nbsp;</p>
		<p>Capa C</p>
		<p>&nbsp;</p>
	</div>
</div>
</body>
</html> 
Primer estilo
Código HTML:
 <style type="text/css">
		* {border: 0; margin: 0; padding: 0;}
		html,body { width: 100%; height: 100%; background-color: #ccc; }
		caption {padding: 5px;}
		#Base { width: 100%; background-color: inherit; }
		#a {
			border: 1px solid #f00;
			width: 20%;
			float: left;
		}
		#b {
			border: 1px solid #0f0;
			width: 40%;
			float: left;
		}
		#c {
			border: 1px solid #00f;
			width: 20%;
			float: left;
		}
	</style> 
Segundo estilo
Código HTML:
 <style type="text/css">
		* {border: 0; margin: 0; padding: 0;}
		html,body { width: 100%; height: 100%; background-color: #ccc; }
		caption {padding: 5px;}
		#Base { width: 100%; background-color: inherit; }
		#a {
			border: 1px solid #f00;
			width: 20%;
			position: absolute;
			top: 0px;
			left: 41%
		}
		#b {
			border: 1px solid #0f0;
			width: 40%;
			position: absolute;
			top: 0px;
			left: 0%
		}
		#c {
			border: 1px solid #00f;
			width: 20%;
			position: absolute;
			top: 0px;
			left: 65%
		}
	</style> 
Para no repetir líneas innecesarias pegué primero el html y luego los estilos que modifican el código, solo debes insertarlos en la cabecera y probar.

Si no es esto lo que querías, detalla mejor tu planteamiento.

Felicidad
__________________
¡ hey, hou, hou, hey !
  #3 (permalink)  
Antiguo 31/07/2007, 08:22
Avatar de phpleo  
Fecha de Ingreso: julio-2003
Ubicación: Lima, Perú
Mensajes: 34
Antigüedad: 20 años, 9 meses
Puntos: 1
Re: maqueteando 3 columnas en 3 niveles de profundidad

Hola PatomaS. Antes que nada disculparme si no describí bien el tema, en realidad con "3 niveles de profundidad" me refería a la anidación de los DIV.

Me resulto extraño ver este caso que estaba practicando, normalmente usaba el float en el primer y tercera capa con left y right respectivamente sin tocar la del medio, pero como te digo en este caso resulto que no funcionó.

He probado tus recomendaciones, funcionandome la primera opcion.

Muchas gracias :)
__________________
Primero papel y lapiz, luego lo que quieras.
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 07:49.