Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] Problema con divs y floats

Estas en el tema de Problema con divs y floats en el foro de CSS en Foros del Web. Buenas, estoy retomando esto de maquetar webs y la verdad es que los floats SIEMPRE me han dado quebraderos de cabeza.... Explico: Pretendo hacer una ...
  #1 (permalink)  
Antiguo 16/02/2014, 21:09
Avatar de kiM-  
Fecha de Ingreso: mayo-2008
Mensajes: 191
Antigüedad: 15 años, 10 meses
Puntos: 2
Problema con divs y floats

Buenas, estoy retomando esto de maquetar webs y la verdad es que los floats SIEMPRE me han dado quebraderos de cabeza.... Explico:

Pretendo hacer una web normal; logo, menú horizontal debajo del logo, justo debajo el contenido y justo al lado del contenido otro apartado para meter más cosas, al final del todo el footer y ya. Bien, he puesto el contenido en float left para que quede a la izquierda y el otro contenido a la derecha... pero por alguna extraña razón no consigo ni que el footer se quede abajo del todo (el texto "footer" queda justo debajo del div content2) ni que el div que tiene el float muestre todo el texto... ¿Alguien podría echarme una mano? Os dejo el html y css:

CSS:
Cita:
body {
margin: auto;
margin-top: 60px;
}
#contenedor {
width: 960px;
margin:0 auto 0 auto;
position: relative;
display:block;
}
#contenedor2 {
background-image: url(images/bgcont.gif)
}
#blueheader {
height: 30px;
background-image:url(images/head.gif)
}
#menu {
text-align: center;
}
#menu ul, li {
display: inline;
font-family: Verdana, Sans-serif;
font-size: 12px;
font-weight: bold;
color: #FFF;
padding-right: 5px;
margin: 0 auto;
}
#content {
width: 600px;
float: left;
padding-top: 10px;
padding-left: 15px;
display:block;
}
#content2 {
width: 320px;
overflow: hidden;
padding-top: 10px;
padding-left: 10px;
padding-right: 15px;
}
h1 {
font-family: Verdana, Sans-Serif;
font-size: 12px;
color: #fff;
font-weight: normal;
}
h2 {
font-family: Verdana, Sans-Serif;
font-size: 5px;
color: #fff;
}
#footer {
width: 960px;
height: 27px;
background-image:url(images/footer.png);
}
HTML:

Cita:
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<div id="contenedor">Content for id "contenedor" Goes Here
<header id="blueheader"></header>
<div id="contenedor2">
<div id="menu">
<ul>
<li>INICIO</li>
<li>TRABAJOS</li>
<li>FOROS</li>
<li>QUIÉNES SOMOS</li>
<li>CONTACTO</li>
</ul>
</div>
<div id="content"><h1>1Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</h1></div>
<div id="content2"><h2>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</h2></div>
</div>
<footer id="footer">FOOTER</footer>
</div>
</body>
</html>
Saludos y muchas gracias!
  #2 (permalink)  
Antiguo 16/02/2014, 21:42
 
Fecha de Ingreso: julio-2010
Ubicación: A Coruña
Mensajes: 505
Antigüedad: 13 años, 8 meses
Puntos: 60
Respuesta: Problema con divs y floats

Crea una clase llamada "clear" que tenga esto

.clear{clear: both;}

Y justo al terminar el div "<div id="contenedor2">" le metes un "<div class="clear"></div>" Y listo.

Si quieres que el .clear tenga compatibilidad con navegadores antiguos utiliza lo que se llama "clearfix", mira por google cual te viene mejor en tu caso.

Sobre el texto.

A mi si me muestra todo el texto http://codepen.io/zeromm/pen/DqKvd
__________________
http://zeromm.es/
Diseñador Web | Experto en Responsive Design, CSS3 y Optimización Web.
  #3 (permalink)  
Antiguo 16/02/2014, 22:47
Avatar de kiM-  
Fecha de Ingreso: mayo-2008
Mensajes: 191
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema con divs y floats

Vaya, muchas gracias, parece bueno!

Me gustaría saber si hay otra manera de hacer eso que no sea añadiendo un div, suena estúpido pero es para tenerlo limpio, aunque si no la hay usaré esa con gusto!

He usado overflow:hidden en contenedor y contenedor2 y aparentemente ha dado resultado, funciona bien o me dará algún error? Quizás ese no sea el tag correcto...
  #4 (permalink)  
Antiguo 16/02/2014, 23:03
 
Fecha de Ingreso: julio-2010
Ubicación: A Coruña
Mensajes: 505
Antigüedad: 13 años, 8 meses
Puntos: 60
Respuesta: Problema con divs y floats

¿Y porque crees que añadir eso es "sucio"?

¿Para que quieres usar el overflow:hidden?
__________________
http://zeromm.es/
Diseñador Web | Experto en Responsive Design, CSS3 y Optimización Web.
  #5 (permalink)  
Antiguo 16/02/2014, 23:23
Avatar de kiM-  
Fecha de Ingreso: mayo-2008
Mensajes: 191
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema con divs y floats

Ciertamente se me ha ido la cabeza, no sé ni por qué he preguntado eso, pero es que tengo la manía de tener todo en el css y en el .html lo justo, igualmente usaré eso, muchas gracias^^
  #6 (permalink)  
Antiguo 16/02/2014, 23:30
Avatar de kiM-  
Fecha de Ingreso: mayo-2008
Mensajes: 191
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema con divs y floats

Lo cierto es que esta vez no me ha funcionado: He puesto los respectivos floats en "news" y "updates y nada... :\ dejo el código a continuación:

Cita:
@charset "utf-8";
/* CSS Document */
#contenedor {
margin: 0 auto 0 auto;
width: 960px;
margin-top: 50px;
background-image: url(images/bg.png);
}
#header {
background-image: url(images/header.png);
height: 15px;
}
#headerbg {
width: 960px;
}
#logo {
background-image: url(images/logo.png);
width: 128px;
height: 115px;
margin-left: 45px;
}
#menu {
text-align: center;
margin-top: 10px;
margin-bottom: 15px;
}
#menu ul, li {
display: inline;
font-size: 20px;
padding-right: 10px;
color: #333;
}
#news {
width: 600px;
float: right;
}
#updates {
width: 360px;
float: left;
}
#footer {
background-image: url(images/footer.png);
height: 57px;
}
.clear{
clear: both;
}
Cita:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<div id="contenedor">
<header id="header"></header>
<div id="headerbg">
<div id="logo"></div>
</div>
<div id="menu">
<ul>
<li>Inicio</li>
<li>Trabajos</li>
<li>Quiénes somos</li>
<li>Comunidad</li>
<li>Contacto</li>
</ul>
</div>
<div id="news">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
<div id="updates">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
<footer id="footer"></footer>
</div>
<div class="clear"></div>
</body>
</html>
Saludos!
  #7 (permalink)  
Antiguo 16/02/2014, 23:40
 
Fecha de Ingreso: julio-2010
Ubicación: A Coruña
Mensajes: 505
Antigüedad: 13 años, 8 meses
Puntos: 60
Respuesta: Problema con divs y floats

El .clear tienes que ponerlo justo al final del elemto que lleva el float... no al final de todo
__________________
http://zeromm.es/
Diseñador Web | Experto en Responsive Design, CSS3 y Optimización Web.
  #8 (permalink)  
Antiguo 16/02/2014, 23:45
Avatar de kiM-  
Fecha de Ingreso: mayo-2008
Mensajes: 191
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema con divs y floats

Ufff... muchas gracias, soy un tonto de cuidado :\ y una última pregunta, el .clear lo añado después de cada elemento con float o sólo después del último?

Y si por ejemplo tengo dos divs seguidos, ambos con float, vale con colocarlos después del segundo float o tengo que ponerlo después de cada div?

Saludos y gracias de nuevo!
  #9 (permalink)  
Antiguo 16/02/2014, 23:55
 
Fecha de Ingreso: julio-2010
Ubicación: A Coruña
Mensajes: 505
Antigüedad: 13 años, 8 meses
Puntos: 60
Respuesta: Problema con divs y floats

Lo tienes que poner después del último elemento con float
__________________
http://zeromm.es/
Diseñador Web | Experto en Responsive Design, CSS3 y Optimización Web.
  #10 (permalink)  
Antiguo 17/02/2014, 03:30
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Problema con divs y floats

Cita:
Iniciado por kiM- Ver Mensaje
He usado overflow:hidden en contenedor y contenedor2 y aparentemente ha dado resultado, funciona bien o me dará algún error? Quizás ese no sea el tag correcto...
Realmente te basta con añadir overflow: hidden (o scroll) como comentas, es más limpio y no creas elementos innecesarios.

Después hay otra técnica, que es la más limpia y que nunca te va a dar problemas, llamada micro-clearfix:

Código CSS:
Ver original
  1. .cf:before,
  2. .cf:after {
  3.   content: ' ';
  4.   display: table;
  5. }
  6.  
  7. .cf:after {
  8.   clear: both;
  9. }

Y eso ya lo añades al elemento contenedor que no crece:

Código CSS:
Ver original
  1. <div id="contenedor" class="cf">

Y ya fuerzas a que se calcule su altura.
  #11 (permalink)  
Antiguo 17/02/2014, 09:06
Avatar de kiM-  
Fecha de Ingreso: mayo-2008
Mensajes: 191
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Problema con divs y floats

Vaya, muchas gracias!

Etiquetas: background, color, contenido, divs, html
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 00:31.