Foros del Web » Creando para Internet » CSS »

Pie siempre abajo dentro de un marco

Estas en el tema de Pie siempre abajo dentro de un marco en el foro de CSS en Foros del Web. Hola a todos, tengo un un problema a la hora de diseñar una web con el pie siempre abajo, he probado con varios manuales los ...
  #1 (permalink)  
Antiguo 06/03/2011, 11:34
 
Fecha de Ingreso: febrero-2011
Ubicación: Vigo
Mensajes: 32
Antigüedad: 13 años, 9 meses
Puntos: 2
Pie siempre abajo dentro de un marco

Hola a todos, tengo un un problema a la hora de diseñar una web con el pie siempre abajo, he probado con varios manuales los cuales me han servido a la perfección pero... el problema viene cuando ese contenedor lo meto dentro de otro para aplicarle un marco de de otro color o unos bordes de otro color.

Supongo que con esto no me he explicado lo suficientemente bien, a si que os dejo el código para que le echeis un vistazo. Gracias.
Código HTML:
Ver original
  1. </head>
  2.  
  3. <div id="contenedor">
  4.  
  5. <div id="marco">
  6.  
  7.    <div id="contenido">
  8.        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut lobortis pellentesque odio, quis lacinia libero euismod in. Vestibulum eget magna et libero malesuada faucibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Morbi semper augue purus, nec tristique nisl. Nam varius dictum consequat. Nulla volutpat, tortor ut vestibulum feugiat, mauris velit congue nunc, a consequat quam enim eget tortor. Nullam pulvinar bibendum massa in ullamcorper. Duis consequat tortor eu velit elementum nec viverra eros congue. Aliquam erat volutpat. Ut elementum lectus ut est egestas mattis. Integer non elit non ante tristique lobortis. Etiam lacinia tempus nulla et suscipit. Nullam sem metus, facilisis id faucibus sed, fringilla a quam. Etiam volutpat vestibulum euismod. Integer vel massa at risus aliquet semper eget ut massa. Proin dapibus, lacus dignissim ullamcorper molestie, justo nisl bibendum nisi, eget cursus quam nisi sit amet tellus. Aenean pharetra pretium pharetra. Nam id urna justo, sit amet interdum nunc. Maecenas rhoncus varius dolor, eget tristique risus volutpat ac. Aenean vitae auctor justo.
  9.        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut lobortis pellentesque odio, quis lacinia libero euismod in. Vestibulum eget magna et libero malesuada faucibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Morbi semper augue purus, nec tristique nisl. Nam varius dictum consequat. Nulla volutpat, tortor ut vestibulum feugiat, mauris velit congue nunc, a consequat quam enim eget tortor. Nullam pulvinar bibendum massa in ullamcorper. Duis consequat tortor eu velit elementum nec viverra eros congue. Aliquam erat volutpat. Ut elementum lectus ut est egestas mattis. Integer non elit non ante tristique lobortis. Etiam lacinia tempus nulla et suscipit. Nullam sem metus, facilisis id faucibus sed, fringilla a quam. Etiam volutpat vestibulum euismod. Integer vel massa at risus aliquet semper eget ut massa. Proin dapibus, lacus dignissim ullamcorper molestie, justo nisl bibendum nisi, eget cursus quam nisi sit amet tellus. Aenean pharetra pretium pharetra. Nam id urna justo, sit amet interdum nunc. Maecenas rhoncus varius dolor, eget tristique risus volutpat ac. Aenean vitae auctor justo.
  10.        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut lobortis pellentesque odio, quis lacinia libero euismod in. Vestibulum eget magna et libero malesuada faucibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Morbi semper augue purus, nec tristique nisl. Nam varius dictum consequat. Nulla volutpat, tortor ut vestibulum feugiat, mauris velit congue nunc, a consequat quam enim eget tortor. Nullam pulvinar bibendum massa in ullamcorper. Duis consequat tortor eu velit elementum nec viverra eros congue. Aliquam erat volutpat. Ut elementum lectus ut est egestas mattis. Integer non elit non ante tristique lobortis. Etiam lacinia tempus nulla et suscipit. Nullam sem metus, facilisis id faucibus sed, fringilla a quam. Etiam volutpat vestibulum euismod. Integer vel massa at risus aliquet semper eget ut massa. Proin dapibus, lacus dignissim ullamcorper molestie, justo nisl bibendum nisi, eget cursus quam nisi sit amet tellus. Aenean pharetra pretium pharetra. Nam id urna justo, sit amet interdum nunc. Maecenas rhoncus varius dolor, eget tristique risus volutpat ac. Aenean vitae auctor justo.</p>
  11.    </div>  
  12.  
  13. </div>
  14.  <div id="corte"></div>
  15.    </div>
  16. <div id="pie">
  17. </div>
  18.  
  19. </body>
[/HTML]

Aquí os dejo el CSS, la caja id="marco" es la que utilizo para crear un marco gris de 10px en ambos lados, mi objetivo es que esos marco lleguen hasta abajo de la página aun que el texto del contenido este por la mitad, pero al darle la "position:absolute" el texto pasas por debajo del pie y se me descuadra el diseño.
Código CSS:
Ver original
  1. * {
  2.     margin:0;
  3.     padding:0;
  4.     border:0;
  5.     outline:0;
  6. }
  7. html, body {
  8.     height:100%;
  9. }
  10. body {
  11.     background-color:#555555;
  12. }
  13. p {
  14.     padding:10px;
  15. }
  16. #contenedor {
  17.     width:960px;
  18.     min-height:100%;
  19.     height:auto !important;
  20.     height:100%;
  21.     margin:0 auto -40px;
  22.     border-left:1px solid #fff;
  23.     border-right:1px solid #fff;
  24.     background-color:#eaeaea;
  25. }
  26. #marco {
  27.     width:960;
  28.     position:absolute;
  29.     height:100%;
  30.     min-height:100%;
  31.     height:auto !important;
  32.     margin:0 auto;
  33.     border-right:10px solid #a0a0a0;
  34.     border-left:10px solid #a0a0a0;
  35. }
  36.    
  37. #contenido {
  38.     position:relative;
  39.     width:940px;
  40.     height:100%;
  41.     margin:0 auto;
  42. }
  43. #corte {
  44.     clear:both;
  45.     height:40px;
  46. }
  47. #pie {
  48.     clear:both;
  49.     width:940px;
  50.     height:40px;
  51.     margin:0 auto;
  52.     border-right:10px solid #a0a0a0;
  53.     border-left:10px solid #a0a0a0;
  54.     background-color:#000;
  55. }

No se si con esto me he explicado bien, pondre una imagen si hace falta.
  #2 (permalink)  
Antiguo 06/03/2011, 14:03
Colaborador
 
Fecha de Ingreso: junio-2007
Mensajes: 5.798
Antigüedad: 17 años, 6 meses
Puntos: 539
Respuesta: Pie siempre abajo dentro de un marco

Mire este ejemplo a ver si le es de utilidad:
http://css.devillasbuenas.es/pie_abajo2.html
Sólo tiene que eliminar el head, redefinir la anchura del pie y asignar los bordes laterales de #contenido
  #3 (permalink)  
Antiguo 06/03/2011, 17:58
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 6 meses
Puntos: 269
Respuesta: Pie siempre abajo dentro de un marco

hola kseso, yo usaba sticky footer, desconocía su aporte, asi que lo veré ya que parece mas claro. muchas gracias.
  #4 (permalink)  
Antiguo 07/03/2011, 10:20
 
Fecha de Ingreso: febrero-2011
Ubicación: Vigo
Mensajes: 32
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Pie siempre abajo dentro de un marco

Muchas gracias kseso? y cristian_cena por vuestras rápidas respuestas, esas soluciones que aportais ya las he utilizado en diversas ocasiones y me funcionan a la perfección, pero para lo que intento crear ahora creo que no me valen por que intento tener un pie siempre abajo en una caja dentro de otra.

Lo que intento conseguir es:
  1. Fondo del body #444444
  2. Dentro de ese fondo una caja centrada de width:960px con border-left y right de 1px blancos.
  3. Dentro de la de 960px otra centrada de 940px, así quedarían los espacios laterales de 10px de otro color que sería #a0a0a0, o dandole ese background-color a la caja de 960px, o poniendo border-left y right de 10px de ese color a la de 940px (no sé que será lo adecuado).
  4. Una cabecera de 940px también centrada lateralmente y de hight:100px (el color da igual).
  5. Debajo de la cabecera el contenido, también de 940px centrado, background-color:#eaeaea y que ocupe el 100% de la página (normalmente es el problema que tengo, que solo me ocupa el tamaño del texto que contenga).
  6. Y lo mas importante, el pie de página siempre abajo, en todo momento y que al aumentar o reducir la resolucion el texto del contenido lo empuje hacia abajo (el problema que suelo tener es que el texto pasa por debajo del pie, lo atraviesa)

Bueno el codigo que voy a poner a continuación está mal y no funciona como deseo, pero la idea sería así con el pie siempre abajo y empujado por el texto.
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">

<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-language" content="es" />

<title>Prueba de pie siempre abajo</title>

<link rel="stylesheet" type="text/css" href="css/estilos.css" />

</head>

<body>

<div id="contenedor">
   
    <div id="contenido">
		<div id="cabecera">
		</div>
		
		<div id="principal">
			<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget tortor dolor, vitae cursus ligula. Morbi vehicula mauris in leo vehicula malesuada. Nullam euismod tincidunt metus eget porta. Quisque porttitor viverra tristique. Donec dolor ipsum, porttitor sit amet tincidunt eget, commodo quis velit. In in nisl a justo dignissim aliquam. Aliquam id mi purus, egestas dignissim massa. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse tristique eleifend magna a accumsan. Suspendisse rhoncus sapien non risus mollis tincidunt. Sed eu elit vitae velit laoreet tincidunt quis bibendum libero. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec enim turpis, egestas vel scelerisque eget, mattis non purus. Aenean lobortis faucibus molestie.</p> 
			<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget tortor dolor, vitae cursus ligula. Morbi vehicula mauris in leo vehicula malesuada. Nullam euismod tincidunt metus eget porta. Quisque porttitor viverra tristique. Donec dolor ipsum, porttitor sit amet tincidunt eget, commodo quis velit. In in nisl a justo dignissim aliquam. Aliquam id mi purus, egestas dignissim massa. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse tristique eleifend magna a accumsan. Suspendisse rhoncus sapien non risus mollis tincidunt. Sed eu elit vitae velit laoreet tincidunt quis bibendum libero. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec enim turpis, egestas vel scelerisque eget, mattis non purus. Aenean lobortis faucibus molestie.</p>
					
			
		</div>
    </div>		 
	
</div>

<div id="pie">
</div> 



</body>

</html> 
Y este el CSS utilizado:

Código CSS:
Ver original
  1. * {
  2.     margin:0;
  3.     padding:0;
  4.     border:0;
  5.     outline:0;
  6.    
  7. }
  8. html, body {
  9.     height:100%;
  10.     background-color:#444444;
  11.     font:1em Verdana, Arial;
  12. }
  13. p {
  14.     padding:10px;
  15. }
  16. #contenedor {
  17.     position:absolute;
  18.     width:960px;
  19.     height:auto !important;
  20.     min-height:100%;
  21.     height:100%;
  22.     margin-left:50%;
  23.     left:-480px;
  24.     border-left:1px solid #fff;
  25.     border-right:1px solid #fff;
  26.     background-color:#a0a0a0;
  27. }
  28. #contenido {
  29.     position:absolute;
  30.     width:940px;
  31.     height:auto !important;
  32.     height:100%;
  33.     min-height:100%;
  34.     margin-left:50%;
  35.     left:-470px;
  36.     background-color:#eaeaea;
  37. }
  38. #cabecera {
  39.     position:absolute;
  40.     width:940px;
  41.     height:100px;
  42.     margin-left:50%;
  43.     left:-470px;
  44.     background-color:#f00;
  45. }
  46. #principal {
  47.     float:lef;
  48.     width:940px;
  49.     margin-top:110px;
  50. }
  51. #pie {
  52.     position:absolute;
  53.     width:940px;
  54.     height:50px;
  55.     margin-left:50%;
  56.     left:-470px;
  57.     bottom:0;
  58.     background-color:#000;
  59. }

Gracias y un saludo.

Oscareverb.
  #5 (permalink)  
Antiguo 08/03/2011, 05:25
 
Fecha de Ingreso: febrero-2011
Ubicación: Vigo
Mensajes: 32
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Pie siempre abajo dentro de un marco

Hola de nuevo, ya lo he solucionado.

El truco consiste en cargar en el background del body una imagen de width:960px y repeat-y con el color de fondo deseado, con esto consigo poner ya el contenido encima sin tener que crear ninguna caja antes, me estoy ahorrando poner 2 o 3 cajas antes lo cual me crea una complicación enorme a la hora de ubicar el pie siempre abajo.

Me da un poco de pena no poder hacerlo todo solo con CSS pero bueno...el código es válido y nadie se va a dar cuenta xD. En cuanto lo suba al servidor os pondré el enlace para que le echeis un ojo.

Un saludo y hasta otra

Oscareverb.

Etiquetas: abajo, marco, pie, siempre
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 13:51.