Como hacer pagina a 3 columnas con xhtml /css

9d2

Bovino maduro
#1
Estoy intentando hacer una pagina super sencilla. Pero me he quedado atorado con algo muy trivial.

Es una pagina a 3 columnas, la idea es que la columna central cambie el ancho dependiendo del tamaño de la pantalla

Ya logre hacer eso, pero no logro hacer que el alto de la columna derecha se ajuste automatico, es decir, con 2 imagenes le podria poner un alto especifico, pero puede ser que solo inserten 1 o 3 imagenes, y no se auto ajusta.

Quiza sea algo muy sencillo, se que lo es, pero no encuentro la forma, asi que me acerco ustedes expertos para recibir su orientacion.

El codigo que tengo del esqueleto, le puse unas plastas de color en el fondo para ver hasta donde abarca cada div, solo para guiarme.

Una disculpa por causar molestias, de antemano muchas gracias.


Código:
div#encabezado  { 
    clear: both; 
    float: none; 
    margin: 0px auto; 
    position: relative;
    min-width: 1020; 
    width: 100%;  
     
} 
 
div#contenido { 
    clear: both; 
    float: none; 
    background-color: yellow; 
    position: relative; 
    width: 100%;
    height: 100%;
    top: 0;
    bottom: 0; 
     min-width:1020px; 
} 
 
div#panelIzquierdo {
    background-color: red;     
   position: absolute;
    top:0;
    left: 0; 
    width: 180px;
/*    float: left;*/
    height: 100%; 
} 

html>body div#panelCentral{
    background-color: #ccc;
    margin-left: 181px;
    margin-right: 351px; 
    margin-top: 0px;
    height: 100%;
    
   color: #9C9E9F; 
    line-height: 38px; 
    
    
    }

/**********************/ 
div#panelDerecho{
    background-color: green; 
    position: absolute;
    float: right;
    top: 0;
    right: 0;
    width: 320px;
    height: 100%; 
    color: #9C9E9F; 
    line-height: 38px; 
} 


/*** ***/ 
div#footer  {
     background-color: maroon; 
    clear: both; 
    position: relative;
    float: left; 
    width: 100%;
    top:50px;
    padding: 3 10 3 10px;
     min-width:1020px; 
}
 

Y3K

Bovino Milenario
#2
De principio veo que tu CSS está algo sucio compañero, te recomendaría que le diera una limpiada para optimizarlo.

Con respecto a tu problema, parece ser que ya entendí que es lo que quieres, pero me gustaría ver el HTML también o mejor aún si pudieras facilitarme el sitio Dev que estés usando.
 

9d2

Bovino maduro
#3
Asi es como se ve la pagina, la columna derecha, se encima sobre el footer.




Uploaded with ImageShack.us

umm, no se a q te refieres con codigo sucio, como me recomiendas crear un codigo limpio?

Ahorita lo estoy haciendo local, de hecho tuve que pasarlo a html para hacer pruebas. pq todo lo jalo con el php.

Gracias por tu respuesta.
 

9d2

Bovino maduro
#4
El html:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//ES" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="es-es"> 
<head> 
    <title>Registro</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
 
    <link type='text/css' rel='stylesheet' href='css/Marke_style.css' /> 
    <link type='text/css' rel='stylesheet' href='css/MenuSecciones.css' /> 
     
</head> 
<body> 
<div id="global"> 
    <div id="encabezado"> 
    <h1>ENCABEZADo</h1> 
    </div>  <!-- end of encabezado --> 
     
    <!--  --> 
    <div id="contenido"> 
        <!-- Panel Izquierdo --> 
        <div id="panelIzquierdo"> <!-- end of panelIzquierdo --> 
 
        <!-- Panel Central --> 
        <div  id="panelCentral"> 
            <div id="contenidoPanelCentral">
                <div class="myform" id="stylized"> 
                    <form action="#" method="post" name="loginForm" id="loginForm"> 
                        <div id="formularioInstrucciones"> 
                        <p>Si no se ha registrado: <a href="#" class=""> <img src="images/BotonSuscribirme.png" /> </a></p>         
                        </div> 
 
                        <label>Nombre</label> 
                        <input type="text" class="required" id="nombre" name="nombre"> 
                        <br> 
                         
                        <label>Apellido Paterno</label> 
                        <input type="text" class="required" id="nombre" name="nombre"> 
                        <br> 
                         
                        <label>Apellido Materno</label> 
                        <input type="text" class="required" id="nombre" name="nombre"> 
                        <br> 
                         
                        <label>Email</label> 
                        <input type="text" class="required" id="nombre" name="nombre"> 
                        <br> 
                         
                        <label>Password</label> 
                        <input type="text" class="required" id="nombre" name="nombre"> 
                        <br> 
                         
                        <label>Repita su password</label> 
                        <input type="text" class="required" id="nombre" name="nombre"> 
                        <br> 
                         
                        <label>Calle y numero</label> 
                        <input type="text" class="required" id="nombre" name="nombre"> 
                        <br> 
                         
                        <label>Colonia</label> 
                        <input type="text" class="required email" id="email" name="email"> 
                        <br> 
 
                        <label>Delegación o municipio</label> 
                        <input type="text" class="required email" id="email" name="email"> 
                        <br> 
 
                        <label>Estado</label> 
                        <input type="text" class="required email" id="email" name="email"> 
                        <br> 
 
                        <label>Ciudad</label> 
                        <input type="text" class="required email" id="email" name="email"> 
                        <br> 
 
                        <label>CP</label> 
                        <input type="text" class="required email" id="email" name="email"> 
                        <br> 
                         
                        <label>Telefono</label> 
                        <input type="text" class="required email" id="email" name="email"> 
                        <br> 
                         
                        <label>Fecha de Nacimiento</label> 
                        <input type="text" class="required email" id="email" name="email"> 
                        <br> 
                         
                        <label>¿Como se entero de nuestra tienda?</label> 
                        <input type="text" class="required email" id="email" name="email"> 
                        <br> 
                         
                        <a href="#" id="botonEnviaLogin"> <img src="images/BotonSuscribirme.png" /> </a></span> 
                    </form> 
                </div> <!-- end of myform -->                            
            </div> <!-- end of contenidoPanelCentral --> 
        </div> <!-- end of panelCentral --> 
 
        <!-- Panel Derecho  --> 
        <div id="panelDerecho"> 
            <ul id="banner"> 
                <li><a href="#" alt=""><img src="images/Banner4.png"></a> </li> 
                <li><a href="#" alt=""><img src="images/Banner5.png"></a> </li> 
            </ul> 
             
            <div id="boletin"> 
                <h1>Boletin de Noticias</h1> 
                <p>Ingrese su correo electrónico</p> 
                <form action="#" method="post"> 
                    <input type="text" /> 
                        <a href="#" class=""> <img src="images/BotonSuscribirme.png" /> </a> 
                </form> 
            </div> <!-- end of boletin--> 
        </div> <!-- end of PanelDerecho --> 
        <!--  --> 
    </div> <!-- end of contenido-->
    
    <div id="footer"> 
        <h1>pie de pagina</h1> 
    </div>  <!-- end of encabezado --> 
 
</div> <!-- end of global--> 
 
</body> 
</html>
 

Y3K

Bovino Milenario
#5
A ver compañero... Si te funciona, hice esto:

HTML
Código:
    <div id="viewport">
        <div id="left">
            Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left
        </div>

        <div id="center">
            Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center 
        </div>

        <div id="right">
            Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right 
        </div>
    </div>
CSS
Código:
#left, #center, #right {
    float:left;
}

#viewport {
    overflow: hidden;
}

#center {
    padding-left: 160px;
    padding-right: 260px;
}

#left {
    width:150px;
    position: absolute;
    left: 0;
}

#right {
    width: 250px;
    position: absolute;
    right: 0;
}
 

9d2

Bovino maduro
#6
Muchisimas Gracias compa, pero a la hora de ponerle el pie de pagina, se me encima =(

css:
Código:
#pie{
    clear: both;
}
HTML:

Código:
   <div id="pie">
    FOOTER   
    </div>
 

Y3K

Bovino Milenario
#7
Muchisimas Gracias compa, pero a la hora de ponerle el pie de pagina, se me encima =(

css:
Código:
#pie{
    clear: both;
}
HTML:

Código:
   <div id="pie">
    FOOTER   
    </div>
Agrega esta clase al CSS
Código:
.clear{clear:both;height:0;font-size:0;display:block}
Y luego, DENTRO del viewport, justo antes de que cierre (</div>), agrega:
HTML:
<div class="clear">&nbsp;</div>
 

9d2

Bovino maduro
#8
No hay duda que cada día se aprende algo nuevo...

Muchas gracias Y3K :aplausos:Ya lo solucione.

Dejo el código por si alguien llegase a tener la misma duda:

CSS:
Código:
<style>
#left, #center, #right {
    display: table-cell;
}


#center {
    left: 0;
    right: 0;
}

#left {
    width:150px;
    left: 0;
}

#right {
    width: 250px;
    right: 0;
}

#pie{
    width: 100%;
    clear: both;

}
</style>
HTML:
Código:
    <div id="header">
        encabezado    
    </div>
   <div id="viewport">
        <div id="left">
            Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left
        </div>

        <div id="center">
            Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center 
        </div>

        <div id="right">
                <img src="images/Banner4.png"></a>
            Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right
            <img src="images/Banner4.png"></a>
            <img src="images/Banner4.png"></a> 
        </div>
    </div>
   <div id="pie">
    FOOTER   
    </div>
 

Y3K

Bovino Milenario
#9
No hay duda que cada día se aprende algo nuevo...

Muchas gracias Y3K :aplausos:Ya lo solucione.

Dejo el código por si alguien llegase a tener la misma duda:

CSS:
Código:
<style>
#left, #center, #right {
    display: table-cell;
}


#center {
    left: 0;
    right: 0;
}

#left {
    width:150px;
    left: 0;
}

#right {
    width: 250px;
    right: 0;
}

#pie{
    width: 100%;
    clear: both;

}
</style>
HTML:
Código:
    <div id="header">
        encabezado    
    </div>
   <div id="viewport">
        <div id="left">
            Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left
        </div>

        <div id="center">
            Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center 
        </div>

        <div id="right">
                <img src="images/Banner4.png"></a>
            Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right
            <img src="images/Banner4.png"></a>
            <img src="images/Banner4.png"></a> 
        </div>
    </div>
   <div id="pie">
    FOOTER   
    </div>
De qué compañero? Cuando necsites ayuda ya sabes.

Y por cierto, interesante los "fix" que le metiste, sólo recuerda que la propiedad "display: table-cell" del CSS NO funciona en IE6 y 7 :)
 

Y3K

Bovino Milenario
#11
noooo!!!!!!! :histerica:


gracias por la advertencia...
Así es, ya sabes lo que dicen... "IE es para los desarrolladores web lo que la kriptonita es para Súper-Man" :memeo:

Fue un placer ayudarte, si tienes dudas pregunta con confianza.
 

9d2

Bovino maduro
#12
Casi me funciona...

Pero la columna derecha se baja...

Código:
<style>
#viewport, #left, #center, #right {
    position: relative;

}

#viewport{
    background-color: green;
    width: 100%;
    float: left;
}

#center {
    background-color: red;
    margin-left: 150px;
    margin-right: 330px;
}

#left {
    background-color: maroon;
    width:150px;
    float: left;
   }

#right {
    background-color: yellow;
    float: right;
    width: 325px;
    
}

#pie{
    background-color: gray;

    float: left;
    position: relative;
    clear: both;

    width: 100%;

}
</style>
    <div id="header">
        encabezado    
    </div>
   <div id="viewport">
        <div id="left">
            Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left
        </div>

        <div id="center">
            Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center 
        </div>

        <div id="right">
                <img src="images/Banner4.png"></a>
            Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right
            <img src="images/Banner4.png"></a>
            <img src="images/Banner4.png"></a> 
        </div>
    </div>
   <div id="pie">
    FOOTER   
    </div>
 

Y3K

Bovino Milenario
#13
Casi me funciona...

Pero la columna derecha se baja...

Código:
<style>
#viewport, #left, #center, #right {
    position: relative;

}

#viewport{
    background-color: green;
    width: 100%;
    float: left;
}

#center {
    background-color: red;
    margin-left: 150px;
    margin-right: 330px;
}

#left {
    background-color: maroon;
    width:150px;
    float: left;
   }

#right {
    background-color: yellow;
    float: right;
    width: 325px;
    
}

#pie{
    background-color: gray;

    float: left;
    position: relative;
    clear: both;

    width: 100%;

}
</style>
    <div id="header">
        encabezado    
    </div>
   <div id="viewport">
        <div id="left">
            Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left Panel Left
        </div>

        <div id="center">
            Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center Panel Center 
        </div>

        <div id="right">
                <img src="images/Banner4.png"></a>
            Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right Panel Right
            <img src="images/Banner4.png"></a>
            <img src="images/Banner4.png"></a> 
        </div>
    </div>
   <div id="pie">
    FOOTER   
    </div>
Allí ya modificaste -casi- todo lo que te había dado... Me hiciste caso con los clear? No verdad...

Vale, dale otra leida al post ;)
 
Arriba