Tengo 4 divs dentro de un div principal. Para hacer que aparezcan uno al lado del otro, le he dado a los 4 divs un estilo con float: left. Los divs aparecen uno al lado del otro, pero la altura del div principal no crece para abarcar la altura de los divs secundarios. ¿Qué me estoy perdiendo?divs uno al lado del otro
Respuesta
Después de 4 divs, debe "cancelar" el estilo de flotación. Esto se hace a través de la creación de una p por ejemplo, como: <p style="clear: both"></p>
Su div principal obtendrá automáticamente el tamaño correcto.
Creo que deberías dar al padre div una altura del 100% no reparada para que abarque la altura de los divs secundarios si crecen.
Conjunto overflow: hidden;
en el div principal.
Explicación: los elementos flotantes los eliminan del flujo de documentos normal. Por lo tanto, si un elemento dado contiene solo elementos flotados, no tendrá altura (o, por extensión, ancho), a menos que tenga un ancho implícito predeterminado en los elementos del bloque.
Establecer la propiedad de desbordamiento en oculto le dice al elemento primario que respete el ancho de sus elementos secundarios, pero oculte todo lo que quede fuera de su ancho y alto.
Por supuesto, la otra opción es agregar un elemento después de los divs flotantes, dentro del elemento primario, con clear: both;
Esto hace que el último elemento se coloque después de todos los flotantes, dentro del flujo de documentos normal. Como está dentro del elemento primario, la altura del elemento principal es la altura de los elementos flotados, más el relleno estándar y la altura del elemento borrado.
Esto es una causa peculiar por la implementación de elementos flotantes, y ocurre cuando tienes un elemento padre que no contiene nada más que elementos flotantes secundarios. Hay dos métodos para resolverlo. Una es establecer la propiedad overflow
del elemento principal en hidden
, conocido a veces como el método de desbordamiento . El otro se conoce como clearfix method, e implica el uso de la pseudoclase :after
.
El método de compensación tiene la ventaja de permitir que los elementos posicionados específicamente se "cuelguen" fuera del contenedor principal si alguna vez los necesita, a expensas de un poco de CSS y marcas adicionales. Este es el método que prefiero, ya que utilizo elementos colgantes con frecuencia. respuesta
de millinet va a funcionar, o puede flotar el div padre que también permitirá que se expanda para contener su contenido
recomiendo el método clearfix también. Este problema se produce porque flotante un elemento elimina cualquier altura que normalmente contendría.
PositionIsEverything posts a complete explanation, así como las soluciones correspondientes para IE6, ya que el: after pseudoselector no es compatible con navegadores más antiguos.
si desea que los divs sean de lado a lado, usted podría tratar de usar inline-block:
<style>
.alldivs {
display: inline-block;
}
</style>
<div id="wrapper">
<div id="div1" class="alldivs"></div>
<div id="div2" class="alldivs"></div>
<div id="div3" class="alldivs"></div>
<div id="div4" class="alldivs"></div>
</div>
- 1. Divs absolutos uno al lado del otro
- 2. ¿Cómo colocar dos divs uno al lado del otro horizontalmente?
- 3. dos divs uno al lado del otro, uno ancho del 100% otros depende del contenido
- 4. Dos divs flotantes uno encima del otro
- 5. CSS - Flotante de dos elementos uno al lado del otro
- 6. infame Dos divisiones uno al lado del otro
- 7. ¿Es posible mostrar divs uno al lado del otro sin flotar?
- 8. ¿Cómo hago flotar dos divs uno al lado del otro sin especificar un ancho?
- 9. ¿Cómo colocar dos divs uno al lado del otro donde el segundo ancho es 100%?
- 10. Elementos de posicionamiento CSS uno al lado del otro
- 11. Ordenando dos NSArrays juntos uno al lado del otro
- 12. Xcode 4.4.1 y Xcode 4.5 uno al lado del otro
- 13. Actividad ciclo de vida uno al lado del otro
- 14. ¿Qué son los conjuntos uno al lado del otro?
- 15. SPAN uno al lado del otro SIN flotador
- 16. ¿Funcionarán .net 2.0 y 3.5 uno al lado del otro?
- 17. diff_match_patch: generación de vista uno al lado del otro
- 18. Dos divs uno además del otro sin envoltura
- 19. HTML - dos mesas al lado del otro
- 20. colocar un div próximos dos divs uno encima del otro
- 21. 2 divs alineados uno al lado del otro, cómo hacer un ancho de relleno div correcto 100%?
- 22. Dos diferentes OnClick en dos divs, uno sobre el otro
- 23. Java Swing: FlowLayout ¿Los JPanels están sentados uno al lado del otro?
- 24. Apache e IIS uno al lado del otro (ambos escuchando el puerto 80) en windows2003
- 25. Artículos de la lista uno al lado del otro como iconos dentro de un div (css)
- 26. FFMPEG 2 Videos transcodificados y uno al lado del otro en 1 fotograma?
- 27. hacer que una imagen y un párrafo se encuentren uno al lado del otro
- 28. Ejecutar ASP.NET Webforms y ASP.NET MVC uno al lado del otro
- 29. Hospedaje de puntos finales WC y jabón WCF uno al lado del otro
- 30. Android TextView y botón uno al lado del otro, ellipsize dejó TextView
es obvio que quería decir 'claro: both' –
Esta no es la solución recomendada por la mayoría Web desarrolladores, ya que requiere un marcado extra vacío que chatarra el documento. – zombat
De acuerdo. Esto es basura Ver [aquí] (http://nicolasgallagher.com/micro-clearfix-hack/) para un enfoque mucho mejor. –