Foros del Web » Creando para Internet » CSS »

Ayuda con Clear:Both; en Explorer

Estas en el tema de Ayuda con Clear:Both; en Explorer en el foro de CSS en Foros del Web. Hola, Soy principiante. Estoy haciendo una web con CSS: Una cabecera o banner de 800px, bajo la cabecera una columna de menús a la izda. ...
  #1 (permalink)  
Antiguo 30/01/2009, 06:54
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Pregunta Ayuda con Clear:Both; en Explorer

Hola,

Soy principiante.

Estoy haciendo una web con CSS: Una cabecera o banner de 800px, bajo la cabecera una columna de menús a la izda. de 200px y un área de textos central de 600px y bajo estos dos un pie con la dirección de 800px.

La cosa es que para que los menús de la izquierda y el área de textos no monten sobre el pie le he puesto a éste en la hoja de estilos Clear:Both; y así en todos los navegadores todo queda perfecto y en orden MENOS en Explorer, que el área de textos se desplaza hacia abajo en su columna justo por debajo de la parte inferior de los menús de la izquierda y luego debajo de todo ello queda el pié.

¿Qué estoy haciendo mal?

Gracias por la ayuda y la paciencia
  #2 (permalink)  
Antiguo 30/01/2009, 07:48
Avatar de willyfc  
Fecha de Ingreso: octubre-2008
Ubicación: Santa Cruz - Bolivia
Mensajes: 662
Antigüedad: 9 años, 2 meses
Puntos: 40
Respuesta: Ayuda con Clear:Both; en Explorer

pero como estas usando el clear, te pongo un ejemplo de como debe ser:

Código css:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Documento sin t&iacute;tulo</title>
  6. <style type="text/css">
  7. #cabecera{ width:800px; height:100px; margin:0 auto; background:#999}
  8. #contenedor{ width:800px; height:auto; overflow:auto; margin:0 auto; padding:0 0 5px 0; background:#333}
  9. #izq{width:200px; height:250px; background:#fff; float:left;}
  10. #der{ width:600px; height:250px; background:#CCC; float:right;}
  11. .clear{clear:both;}
  12. #pie{width:800px; height:30px; margin:0 auto; background:#666;}
  13. </style>
  14. </head>
  15.  
  16. <body>
  17. <div id="cabecera"></div>
  18. <div id="contenedor">
  19.     <div id="izq"></div>
  20.     <div id="der"></div>
  21.     <div class="clear"></div>
  22. </div>
  23. <div id="pie"></div>
  24. </body>
  25. </html>

pruebalo y avisas como te va
PD:las medidas fijas en los altos de las columnas son solo para ejemplo pueden tener cualquier medida o se auto
__________________
WFC
codigo82
  #3 (permalink)  
Antiguo 30/01/2009, 08:06
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Respuesta: Ayuda con Clear:Both; en Explorer

Gracias desde Francia Willifc,

Mira, mi CSS es así. Creo que está bien. Hay en horizontal arriba el banner y la navegación; luego iría debajo: a la izda. el menus_izda y a la derecha el contenido, y abajo de estos dos el pie.

Como te digo va bien salvo en explorer que el contenido se desplaza verticalmente hacia abajo por debajo de los menus_izda y no veo lo que sea.

Gracias por tu amable ayuda.

Código css:
Ver original
  1. /*========================================
  2. Estilos para el body
  3. ========================================*/
  4. body {
  5. font-family: Verdana, Arial, Helvetica, sans-sherif;
  6. font-size: Small; /*tamaño de la fuente*/
  7. color: green;
  8. background-image:url(img/bg_body.png);
  9. background-attachment: fixed;
  10. background-position: center center;
  11. }
  12. a {text-decoration: none;}
  13. a:link {color: green}
  14. a:visited {color: red}
  15. a:hover, a:focus {text-decoration: underline;}
  16. /*========================================
  17. Estilos para el wrapper
  18. ========================================*/
  19. #wrapper {
  20. color: black;
  21. background-color: white;
  22. width: 800px;
  23. margin-right: auto;
  24. margin-left: auto;
  25. border-top: 1px solid #C4C4C4;
  26. border-right: 1px solid #C4C4C4;
  27. border-left: 1px solid #C4C4C4;
  28. border-bottom: 1px solid #C4C4C4;
  29. }
  30. /*========================================
  31. Estilos para el banner
  32. ========================================*/
  33. #banner {
  34.  
  35.     background-image:url(img/banner_fondo.jpg);
  36.  
  37.     background-repeat:no-repeat;
  38.     width: 800px;
  39.  
  40.     height:150px;
  41.     margin-bottom: 0;
  42.     }
  43. /*========================================
  44. Estilos para navegacion
  45. ========================================*/
  46. #navegacion {
  47.     background-image:url(img/bg_navegacion.png);
  48.  
  49.     background-repeat:repeat-y;
  50.     text-align:right;
  51.     color: black;
  52.     border-bottom: 1px solid #8c8c8c;
  53.     margin-bottom: 0;
  54.     }
  55.     #navegacion li {
  56.         display: inline;
  57.         list-style-type: none;
  58.         padding-right: 15px;
  59.         }
  60. /*========================================
  61. Estilos para menus_izda
  62. ========================================*/
  63. #menus_izda {
  64.     font-size: 80%;
  65.     font-style: normal;
  66.     float: left;
  67.     padding-left: 5px;
  68.     padding-top: 5px;
  69.     width: 190px;
  70.     list-style-type: none;
  71. }
  72. /*========================================
  73. Estilos para el contenido -index-
  74. ========================================*/
  75. #contenido {
  76.     text-align:justify;
  77.     background-color: white;
  78.     width: 580px;
  79.     margin-left: 190px;
  80.     padding-left: 10px;
  81.     padding-right: 10px;
  82. }
  83. /*========================================
  84. Estilos para el pie
  85. ========================================*/
  86. #pie {
  87. clear: both;
  88. padding-top: 10px;
  89. border-top: 1px solid #8c8c8c;
  90. margin-top: 20px;
  91. }
  92.     address {
  93.     text-align: center;
  94.     font-size: 80%;
  95.     font-style: normal;
  96.     letter-spacing: 2px;
  97.     line-height: 1.5em
  98.     }
  #4 (permalink)  
Antiguo 30/01/2009, 08:16
Avatar de Dalvenjha  
Fecha de Ingreso: febrero-2008
Ubicación: $("#oficina");
Mensajes: 692
Antigüedad: 9 años, 9 meses
Puntos: 53
Respuesta: Ayuda con Clear:Both; en Explorer

Aqui hay algo que siempre he discutido, el uso del div vacío para el "clear:both", es intrusivo y lo que hace es ordenar elementos en su sitio, ¿Por qué?, una buena maquetación no necesita de "cortes", he visto gente nueva, que los usa en demasía, como un trabajo que ordené la vez pasada.

La solución es tan fácil como maquetar bien y TENIENDO UN PLAN de la distribución, poner los elementos inherentes al header tals como logo o slogan, en un div HEADER, meter los elementos inherentes al cuerpo, como el bodytext o el menú dentro deun div WRAPPER O CONTENT, y luego el FOOTER, es tán fácil como ello y una vez colocados esos tres elementos, el resto de nuestra maquetación NO PUEDE FALLAR, asi evitamos el uso de divs vacíos para poner "cortes".

Que si los divs flotantes me joden?

Yeah, yeah... entonces pon un min-height a tu elemento content o wrapper y luego dale overflow:hidden para los navegadores de verdad, y para el IE usa comentarios condicionales, especificando el height y un overflow:visible.

¿Que eso no valida?

Vamos, vamos, el comentario condicional es culpa del IE no mía, y vamos por otro lado, a mi me gusta el standard y eso se sabe, pero prefiero usar un hack para ie, antes de ser intrusivo.

¿Por qué?

Porque el CSS se ha hecho para simplificar las cosas, no para complicarlas, el uso de un div vacío no hace más que alargar el código fuente con un elemento que NO DEBERÍA ESTAR AHÍ.

Pensemos un poco más en evitar este tipo de cosas, dandonos soluciones rápidas, nos agradeceremos el gesto.

Saludos!!

<--- edición-->

podrías poner la estructura que usas amigo? y el CSS completo.

Saludos nuevamente.
__________________
Mi Showcase ||

Compartiendo todo lo posible con los demás.
  #5 (permalink)  
Antiguo 30/01/2009, 08:21
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Respuesta: Ayuda con Clear:Both; en Explorer

Hola Dalvenjha;

Supongo que me escribes con la mejor de las intenciones, pero no te he entendido -casi- nada. Como digo arriba soy bastante novato. No trabajo en esto ni soy informático, solo quiero hacer un sitio web y aprender. No sé a qué te refieres con un div vacío... ¿dónde he hecho eso?

Si pudieras ser más didáctico y paciente con un pobre novato te estaré muy agradecido.

Gracias de antemano

PD: El CSS es ese, no hay más, estoy empezando la web.

La estructura está hecha con php, con trozos. Por eso es bastante latoso enviarla, pero si creéis que ayudaría lo hago.
  #6 (permalink)  
Antiguo 30/01/2009, 08:25
Avatar de willyfc  
Fecha de Ingreso: octubre-2008
Ubicación: Santa Cruz - Bolivia
Mensajes: 662
Antigüedad: 9 años, 2 meses
Puntos: 40
Respuesta: Ayuda con Clear:Both; en Explorer

Cita:
Iniciado por jplazavidaurre Ver Mensaje
Hola Dalvenjha;

No sé a qué te refieres con un div vacío... ¿dónde he hecho eso?
lo decía por mi, yo si puse un div vacio(que pena no quize molestarlo). Prueba de esta manera, copialo y pegalo en un archivo nuevo para probarlo:

Código css:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Documento sin t&iacute;tulo</title>
  6. <style type="text/css">
  7. body {
  8. font-family: Verdana, Arial, Helvetica, sans-sherif;
  9. font-size: Small; /*tamaño de la fuente*/
  10. color: green;
  11. background-image:url(img/bg_body.png);
  12. background-attachment: fixed;
  13. background-position: center;
  14. }
  15. a {text-decoration: none;}
  16. a:link {color: green}
  17. a:visited {color: red}
  18. a:hover, a:focus {text-decoration: underline;}
  19. /*========================================
  20. Estilos para el wrapper
  21. ========================================*/
  22. #wrapper {
  23. color: black;
  24. background-color: white;
  25. width: 800px;
  26. margin:0 auto;
  27. border: 1px solid #C4C4C4;
  28. }
  29. /*========================================
  30. Estilos para el banner
  31. ========================================*/
  32. #banner {
  33.     background-image:url(img/banner_fondo.jpg);
  34.     background-repeat:no-repeat;
  35.     width: 800px;
  36.     height:150px;
  37.     margin: 0;
  38.     }
  39. /*========================================
  40. Estilos para navegacion
  41. ========================================*/
  42. #navegacion {
  43.     background-image:url(img/bg_navegacion.png);
  44.     background-repeat:repeat-y;
  45.     text-align:right;
  46.     color: black;
  47.     border-bottom: 1px solid #8c8c8c;
  48.     margin-bottom: 0;
  49.     }
  50.     #navegacion li {
  51.         display: inline;
  52.         list-style-type: none;
  53.         padding-right: 15px;
  54.         }
  55. /*========================================
  56. Estilos para menus_izda
  57. ========================================*/
  58. #menus_izda {
  59.     font-size: 80%;
  60.     font-style: normal;
  61.     float: left;
  62.     padding: 5px 0 0 5px;
  63.     width: 190px;
  64.     list-style-type: none;
  65. }
  66. /*========================================
  67. Estilos para el contenido -index-
  68. ========================================*/
  69. #contenido {
  70.     text-align:justify;
  71.     background-color: white;
  72.     width: 580px;
  73.     margin-left: 190px;
  74.     padding:0 10px 0 10px;
  75.     border-bottom:1px solid #333;
  76. }
  77. /*========================================
  78. Estilos para el pie
  79. ========================================*/
  80. #pie {
  81. clear: both;
  82. padding-top: 10px;
  83. border-top: 1px solid #8c8c8c;
  84. margin-top: 20px;
  85. }
  86.     .address {
  87.     text-align: center;
  88.     font-size: 80%;
  89.     font-style: normal;
  90.     letter-spacing: 2px;
  91.     line-height: 1.5em
  92.     }
  93.  
  94. </style>
  95. </head>
  96.  
  97. <body>
  98. <div id="wrapper">
  99.     <div id="banner">
  100.         <div id="navegacion"></div>
  101.     </div>
  102.     <div id="menus_izda">sdfsdfsdf</div>
  103.     <div id="contenido">sdfasfasdf</div>
  104.     <div id="pie"> asdf asfasf asf asdf </div>
  105. </div> 
  106. </body>
  107. </html>

avisas como te va
__________________
WFC
codigo82
  #7 (permalink)  
Antiguo 30/01/2009, 08:31
Avatar de Dalvenjha  
Fecha de Ingreso: febrero-2008
Ubicación: $("#oficina");
Mensajes: 692
Antigüedad: 9 años, 9 meses
Puntos: 53
Respuesta: Ayuda con Clear:Both; en Explorer

No es que me moleste... es simplemente que podemos evitar ciertas cosas.

En fin...

Bueno entonces te propongo algo distinto, asi no queda como que solo enttré a renegar, lo cual no he hecho tampoco.

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">
<head>
<title>Hombres Trabajando</title>
<style type="text/css">
body{
margin:0;
padding:0;
width:100%;
height:100%;
}

#container{
position:relative;
left:0;
top:0;
width:1000px;
min-height:600px;
overflow:hidden;
<!-- Aqui establecemos estas dos propiedades, que serán las que hagan crecer el div a medida que 
haya más contenido.-->
padding-bottom:10px; <!---- para que se aleje tu texto un poco del final del container-->
}

*html #container{
height:600px;
overflow:visible;  
}
<!--aqui usamos el hack del asterisco que consiste poner un asterisco y luego 
html antes del nombre del elemento a distinguir en internet explorer le diremos que tenga una altura definida, 
pero lo que se pase, si se verá y como el IE tiene un defecto, crecerá con el fondo del elemento contenedor.-->
<!--Pasemos a la estructura básica-->

#header{
position:relative;
left:0;
top:0;
width:100%;
height:100px; <!--- la cabecera no crecerá -->
overflow:hidden; <!-- además todo contenido que se pase no se verá-->
background:red;
}

#wrapper{
position:relative;
left:0;
top:0;
width:100%;
min-height:400px; <<!--la misma explicación sobre hacer que crezca con el contenido, 
además también crecerá con los elementos flotados.-->
overflow:hidden;
background:black;
}

#footer{
position:relative;
left:0;
top:0;
width:100%;
height:100px; <!--- el footer tampoco crecerá -->
overflow:hidden; <!-- además todo contenido que se pase no se verá-->
background:blue;
}

</style>
</head>
<body>
<div id="container">
<div id="header">
<!-- aqui el contenido de tu cabecera -->
</div>
<div id="wrapper">
<!-- aqui el contenido de tu texto y etc -->
</div>
<div id="footer">
<!-- aqui el contenido de tu pie de página -->
</div>
</div>
</body>
</html> 
__________________
Mi Showcase ||

Compartiendo todo lo posible con los demás.

Última edición por Dalvenjha; 30/01/2009 a las 08:45
  #8 (permalink)  
Antiguo 30/01/2009, 08:38
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Respuesta: Ayuda con Clear:Both; en Explorer

Hola Willyfc,

Gracias por tomarte tanta molestia y darme tu tiempo. Muy agradecido de verdad.

Mira, he ido repasando tu código y cambiando el mio, cuando veo el resultado sigue pasándome lo mismo... solo en explorer. No sé que puede ser. Os comento que los menús de la izquierda en el html los he hecho con una lista ul con elementos li... ¿puede tener que ver?

Gracias por la ayuda.
  #9 (permalink)  
Antiguo 30/01/2009, 08:41
Avatar de willyfc  
Fecha de Ingreso: octubre-2008
Ubicación: Santa Cruz - Bolivia
Mensajes: 662
Antigüedad: 9 años, 2 meses
Puntos: 40
Respuesta: Ayuda con Clear:Both; en Explorer

Cita:
Iniciado por Dalvenjha Ver Mensaje
No es que me moleste... es simplemente que podemos evitar ciertas cosas.
primero: lo dije como en tono de broma solo que se me olvido poner el

y si pienso que podemos evitar ciertas cosas y particularmente yo prefiero hacer que mi web valide, tal vez es cuestión de gustos o no se y pienso que con lo de Ie6 yo también no lo trago al maldito pero hay mucha gente que lastimosamente lo usa aún

en fin...

jplazavidaurre que ie usas?
__________________
WFC
codigo82
  #10 (permalink)  
Antiguo 30/01/2009, 08:52
 
Fecha de Ingreso: diciembre-2008
Ubicación: Francia
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Sonrisa Respuesta: Ayuda con Clear:Both; en Explorer

Estimados co-foreros,

He visto que el problema estaba en la lista de la izquierda hecha con elementos ul y li.

Como yo le he dado un ancho determinado a esa columna y en uno de esos menús una palabra más larga entre <h2> </h2> no entra entera en ese espacio de 200px y en explorer lo manda abajo todo lo que hay en la derecha para que sí entre... ¡la leche!

¿Sabéis si hay alguna manera de solucionar esto?

Por ejemplo:

<h2>en un lugar de la mancha</h2>
Hace esto:

en un
lugar
de la
mancha

Pero si es por ejemplo:

<h2>el arzobispo de constantinopla se quiere arzobispodesconstatinopolizar</h2>
Hace esto:
el arzobispo
de constantinopla
se quiere
arzobispodesconstantinopolizar

Y ésta última palabra ocupa más de 200px y entonces manda abajo lo de la derecha en el otro div.

¿Se puede solucionar eso?

Thanks
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:23.