Foros del Web » Creando para Internet » HTML »

Div hight 100% para todos los exploradores.

Estas en el tema de Div hight 100% para todos los exploradores. en el foro de HTML en Foros del Web. Hola! Estoy haciendo una pagina y quiero que los div ocupen todo el alto. Lo hice poniendo height 100% en el html y en el ...
  #1 (permalink)  
Antiguo 26/06/2013, 09:13
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 14 años, 2 meses
Puntos: 0
Div hight 100% para todos los exploradores.

Hola!
Estoy haciendo una pagina y quiero que los div ocupen todo el alto. Lo hice poniendo height 100% en el html y en el body, puse display: table y se ve: en firefox perfecto, en Chrome la columna menu (izquierda) no llega hasta el pie. En IE un desastre, cuando el texto del cuerpo supera el menu, se va debajo, y el pie me queda en la mitad del texto del cuerpo...

Este es el codigo:

<head>
<style>
html,body{
height:100%;}
</style>
</head>

<body>

<div class="contenedora">

<div class="menu">

<ul style="margin-top:108px;">
<li>
<p><button class="button">Historia</button>
<p><button class="button">Historia</button>
<p><button class="button">Historia</button>
</li>
</ul>
</div> <!--fin menu-->

<div class="encabezado">
<p><h1>ENCABEZADO</h1></p>
</div> <!--fin encabezado-->

<div class="cuerpo">
<p><h3>CONTENIDO DEL CUERPO</h3></p>
<p><h4>CONTENIDO DEL CUERPO</p></h4>

</div> <!--fin cuerpo-->


<div class="clear"></div>



</div> <!--fin contenedora-->

<div class="pie">
<p>CONTENIDO DEL PIE
</div> <!--fin pie-->


</body>

</html>



CSS

footer, header, hgroup, menu, nav, section { display: block;}

div.contenedora {
width: 100%;
height:100%;
background-color: #D9D9FF;
display:table;
margin:0px;

}

div.menu {
float: left;
height: 100%;
width: 20%;
margin: 0;
text-align: center;
background-color:#2F2851;
display:table;
font-family:Arial, Helvetica, sans-serif;
font-size:16px;
}

div.encabezado {
float: right;
width: 80%;
background-color:#CCCCFF;
border-bottom: #2F2851 3px solid;
}

.encabezado h1 {
text-align:center;
font-family: "Adobe Caslon Pro";
font-size:24px;
margin-top:10px;
padding-bottom:10px;
line-height:0.5;
}

.cuerpo {
padding:20px;
display:table;
}

.cuerpo h3 {
font-family:"Adobe Caslon Pro";
font-size:22px;
line-height:1;
text-align:center;
text-decoration:underline;
}

.cuerpo h4 {
font-family: Arial, Helvetica, sans-serif;
font-size:16px;
padding:20px;
text-align: justify;
}


.pie {
display: table;
height:25px;
background-color:#CCCCFF;
width:100%;
border-top: #2F2851 3px solid;

}

.pie h1 {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
text-align:center;
font-style:italic;
padding-top:5px;
}


.clear {
clear: all;
}

.button {
width: 90%;
background-color:#393164;
font-family:"Adobe Caslon Pro";
font-size: 16px;
color: #cccccc;
margin: 3px;
border: 0px;
padding:5px;
}


Espero que puedan ayudarme, gracias!!!
  #2 (permalink)  
Antiguo 26/06/2013, 09:30
Leonardo_Manrique
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Div hight 100% para todos los exploradores.

Hola Hedwing!

Antes que nada tu código HTML estaba mal organizado. Tenías etiquetas p sin cerrar y en otros casos las cerrabas antes de lo necesario.

Acá te paso el código HTML bien organizado:

Código HTML:
<body>
    <div class="contenedora">
        <div class="menu">
            <ul style="margin-top:108px;">
                <li>
                    <p>
                        <button class="button">Historia</button>
                    </p>
                    <p>
                        <button class="button">Historia</button>
                    </p>
                    <p>
                        <button class="button">Historia</button>
                    </p>
                </li>
            </ul>
        </div>
        <!--fin menu-->
        <div class="encabezado">
            <p>
                 <h1>ENCABEZADO</h1>

            </p>
        </div>
        <!--fin encabezado-->
        <div class="cuerpo">
            <p>
                 <h3>CONTENIDO DEL CUERPO</h3>

            </p>
            <p>
                 <h4>CONTENIDO DEL CUERPO</h4>

            </p>
        </div>
        <!--fin cuerpo-->
        <div class="clear"></div>
    </div>
    <!--fin contenedora-->
    <div class="pie">
        <p>CONTENIDO DEL PIE</p>
    </div>
    <!--fin pie-->
</body> 
Acá tenés un ejemplo para que veas el resultado final: http://jsfiddle.net/6TAqY/

Imagino que el error de los navegadores se debía a esto. Si no es así, no dudés en decirme. De todas maneras, IE 7 e inferiores no soportan display: table. No sé que IE utilizás, pero si es del 7 para abajo es bueno que sepas eso. IE8+ sí que lo soportan.

Un saludo,
Leo!

EDITO: Lo único que agregué a tu código CSS fueron reglas para resetear los valores de la UA stylesheet:

Código:
body, div, p, button,
ul, li, h1, h3, h4 {
    margin: 0;
    padding: 0;
}

Última edición por Leonardo_Manrique; 26/06/2013 a las 09:35
  #3 (permalink)  
Antiguo 26/06/2013, 10:22
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 8 meses
Puntos: 1826
Respuesta: Div hight 100% para todos los exploradores.

Cosas del destino.

Últimamente estoy re-recomendando mucho esta solución para el pié.
http://www.cssstickyfooter.com/
  #4 (permalink)  
Antiguo 26/06/2013, 10:57
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Div hight 100% para todos los exploradores.

Gracias por responder!!
pero sigue sin funcionar, no me preocupa tanto el IE porque tengo instalado el 7 y el Win vista no te deja poner uno mas nuevo.... al menos no le encontre la vuelta..
Pero no me funciona tampoco para el Chrome. Si probas en ponerle mucho contenido al cuerpo, el div menu se termina donde terminan los button y se ve bien feo...
  #5 (permalink)  
Antiguo 26/06/2013, 11:09
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 9 meses
Puntos: 1146
Respuesta: Div hight 100% para todos los exploradores.

puedes mostrarnos tu sitio online para ver el código implementado? o al menos muéstranos el código que tienes tras hacer las correcciones pertinentes... lo que te mostraron debería funcionar, lo único que me viene a la mente es que estés afectando al elemento erróneo o que te refieras al margen que existe en el body .
  #6 (permalink)  
Antiguo 26/06/2013, 11:14
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Div hight 100% para todos los exploradores.

mi sitio tidavia no esta online, al mandar el codigo reducido a lo mejor omiti mandar algo, te lo mando completo...
HTML:

<!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=iso-8859-1" />
<meta http-equiv="Window-target" content="_top" />
<link href="estilos/estilos.css" rel="stylesheet" type="text/css"/>
<title>NOMBRE</title>
<link href='http://fonts.googleapis.com/css?family=Crimson+Text' rel='stylesheet' type='text/css' />
<link rel="shortcut icon" href="imagenes/favicon.ico" />
<style>
html,body{
height:100%;}
</style>
</head>

<body>

<div class="contenedora">

<div class="menu">

<h1><a href="#"><object classid="clsid:166B1BCA-3F9C-11CF-8075-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,0,0" width="240" height="240">
<param name="src" value="imagenes/video.swf" /><param name="BGCOLOR" value="#2F2851" />
<embed src="imagenes/video.swf" width="240" height="240" pluginspage="http://www.macromedia.com/shockwave/download/" bgcolor="#2F2851" style="margin-top:-22px;"></embed></object></a></h1>

<ul style="margin-top:108px">
<li>
<p><a href="index.html"><button class="button">Home</button></a></p>
<p><a href="historia.html"><button class="button">Historia</button></a></p>
<p><a href="institucional.html"><button class="button">Institucional</button></a></p>
<p><a href="informacion.html"><button class="button">Informaci&oacute;n General</button></a></p>
<p><a href="prensa.html"><button class="button">Prensa</button></a></p>
<p><a href="galeria.html"><button class="button">Galer&iacute;a</button></a></p>
<p><a href="enlaces.html"><button class="button">Enlaces</button></a></p>
<p><a href="contacto.html"><button class="button">Contacto</button></a></p>
</li>
</ul>

</div> <!--fin menu-->

<div class="encabezado">

<p><h1>NOMBRE.</h1></p>
<p><h1>DESCRIPCION DE LA RAZON SOCIAL</h1></p>
<h1><a href="#"><img src="imagenes/portada3.jpg" alt="portada" style="margin-top:-12px;" /></a></h1>

</div> <!--fin encabezado-->

<div class="cuerpo" style="line-height:2">
<p><h3>Historia y balance</h3></p>
<p>&nbsp;</p>
<p><h4>Luego de 13 a&ntilde;os de trabajar bajo un r&eacute;gimen de opresi&oacute;n, miedo, despotismo. Una “dictadura”, donde todo se manejaba seg&uacute;n el antojo de una persona y su s&eacute;quito, los trabajadores nos animamos a cambiar esa realidad.
Aun cuando &eacute;ramos perseguidos, sancionados, trasladados y despedidos sin causa, vencimos los miedos y nos empezamos a organizar.
No solo est&aacute;bamos cansados de trabajar en esas condiciones, ve&iacute;amos como nuestra Obra Social, nuestra casa, se deterioraba sin pausa. La ca&iacute;da era en picada y sin escalas.
A trav&eacute;s de una primera organizaci&oacute;n, casi clandestina, Resistencia y Dignidad, se establecieron las bases de este cambio. Se contact&oacute; con los compa&ntilde;eros del interior, tan olvidados, relegado y vapuleados como el resto de nosotros. Se arm&oacute; una red de contacto din&aacute;mica y constante. Desde Ushuaia a Resistencia, en cada rinc&oacute;n del pa&iacute;s un compa&ntilde;ero estaba con nosotros.
Se comenzaron a juntar firmas para empezar a formar un gremio propio. Uno que nos represente, que sea nuestro, que seamos nosotros. El que ten&iacute;amos nos ignoraba sistem&aacute;ticamente desde hacia a&ntilde;os.
Y as&iacute;, entre los que se animaban a desafiar esa realidad llegamos a la Asamblea del 25 de abril de 2009. Masiva si se piensa en el contexto en el que se realiz&oacute;. Contra viento y marea, con coraje y decisi&oacute;n, elegimos a nuestros representantes, y comenzamos el camino de la legalidad. Luchar&iacute;amos con armas leg&iacute;timas. Nac&iacute;a UTOSBA. Pero no pararon las persecuciones. Las autoridades de ese momento ignoraron la Agrupaci&oacute;n formada, los compa&ntilde;eros elegidos para representarnos fueron desacreditados, algunos trasladados. Pero nada nos detuvo. Trabajamos duro, sumamos gente y seguimos adelante</p></h4>
</div> <!--fin cuerpo-->

<div class="clear"></div>


</div> <!--fin contenedora-->

<div class="pie">
<p><h1>TEXTO DEL PIE DE PAGINA</h1></p>
</div> <!--fin pie-->

</body>

</html>



CSS:

/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline;}

/* HTML5 display-role reset for older browsers */

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section { display: block;}
body {line-height: 1;}
ol, ul { list-style: none;}
blockquote, q { quotes: none;}
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none;}
table { border-collapse: collapse; border-spacing: 0; }
body, div, p, button, ul, li, h1, h3, h4 { margin: 0; padding: 0;}

div.contenedora {
width: 100%;
height:100%;
background-color: #D9D9FF;
display:table;
margin:0px;

}

div.menu {
float: left;
height: 100%;
width: 20%;
margin: 0;
text-align: center;
background-color:#2F2851;
display:table;
font-family:Arial, Helvetica, sans-serif;
font-size:16px;
}

div.encabezado {
float: right;
width: 80%;
background-color:#CCCCFF;
border-bottom: #2F2851 3px solid;
}

.encabezado h1 {
text-align:center;
font-family: "Adobe Caslon Pro";
font-size:24px;
margin-top:10px;
padding-bottom:10px;
line-height:0.5;
}

.cuerpo {
padding:20px;
display:table;
}

.cuerpo h3 {
font-family:"Adobe Caslon Pro";
font-size:22px;
line-height:1;
text-align:center;
text-decoration:underline;
}

.cuerpo h4 {
font-family: Arial, Helvetica, sans-serif;
font-size:16px;
padding:20px;
text-align: justify;
}


.pie {
display: table;
height:25px;
background-color:#CCCCFF;
width:100%;
border-top: #2F2851 3px solid;

}

.pie h1 {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
text-align:center;
font-style:italic;
padding-top:5px;
}


.clear {
clear: all;
}

.button {
width: 90%;
background-color:#393164;
font-family:"Adobe Caslon Pro";
font-size: 16px;
color: #cccccc;
margin: 3px;
border: 0px;
padding:5px;
}
  #7 (permalink)  
Antiguo 26/06/2013, 12:45
Leonardo_Manrique
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Div hight 100% para todos los exploradores.

Algo así querés? http://jsfiddle.net/wwYzF/

Fijate si funciona en otros browsers que soporten display: table porque en esta máquina sólo tengo Chrome (e IE 8 pero http://jsfiddle.net se ve horrible en ese navegador y no puedo ver el resultado =/).
  #8 (permalink)  
Antiguo 27/06/2013, 17:18
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Div hight 100% para todos los exploradores.

Hola Leonardo y gracias nuevamente.
He probado lo que me pasaste tal cual esta y no funciona.
Si el contenido del cuerpo termina en la mitad de la pantalla, el pie de pagina queda en la mitad, muy feo.

como yo lo tenia antes al menos el pie quedaba donde debe quedar, lo que no puedo lograr en Chrome es que el menu llegue hasta el pie...
Muchas gracias!

Etiquetas: css
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 17:25.