two sirve que propiedad para misma hacer ejemplo divs div contenido contenedor columns bootstrap altura adapte css html multiple-columns

css - sirve - Cómo hacer que Div tenga la misma altura que el elemento principal(se muestra como tabla-celda)



table html (4)

Obtuve un contenedor div que contiene tres divs infantiles (varía en contenido), cada uno tan alto como el más alto. Logré esto configurando el contenedor para mostrar: table y los divs secundarios para mostrar: table-cell, etc.

Todo funcionó bien, hasta que ...

Inserté una nueva división dentro de una de las divs infantil e intenté hacerla altura: 100%, para que se extendiera a la misma altura que sus padres, pero eso no funcionó.

Por favor vea mi JSFiddle: http://jsfiddle.net/bkG5A/

¡Cualquier ayuda sería muy apreciada!

HTML

<div class="container"> <div class="child"> a<br />a<br />a </div> <div class="child"> a<br />a<br />a<br />a<br />a<br />a<br />a </div> <div class="child"> <div class="content"> a<br />a<br />a </div> </div> </div>

CSS

.container { display: table; } .child { width: 30px; background-color: red; display: table-cell; vertical-align: top; } .content { height: 100%; background-color: blue; }


Debe establecer la height para los padres (contenedor e hijo) explícitamente, aquí hay otra solución alternativa (si no desea establecer esa altura explícitamente):

.child { width: 30px; background-color: red; display: table-cell; vertical-align: top; position:relative; } .content { position:absolute; top:0; bottom:0; width:100%; background-color: blue; }

Fiddle


El hijo solo puede tomar una altura si el padre ya tiene uno configurado. Ver este ejemplo: Desplazamiento vertical 100% altura.

html, body { height: 100%; margin: 0; } .header{ height: 10%; background-color: #a8d6fe; } .middle { background-color: #eba5a3; min-height: 80%; } .footer { height: 10%; background-color: #faf2cc; }

$(function() { $(''a[href*="#nav-"]'').click(function() { if (location.pathname.replace(/^///, '''') == this.pathname.replace(/^///, '''') && location.hostname == this.hostname) { var target = $(this.hash); target = target.length ? target : $(''[name='' + this.hash.slice(1) + '']''); if (target.length) { $(''html, body'').animate({ scrollTop: target.offset().top }, 500); return false; } } }); });

html, body { height: 100%; margin: 0; } .header { height: 100%; background-color: #a8d6fe; } .middle { background-color: #eba5a3; min-height: 100%; } .footer { height: 100%; background-color: #faf2cc; } nav { position: fixed; top: 10px; left: 0px; } nav li { display: inline-block; }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <body> <nav> <ul> <li> <a href="#nav-a">got to a</a> </li> <li> <a href="#nav-b">got to b</a> </li> <li> <a href="#nav-c">got to c</a> </li> </ul> </nav> <div class="header" id="nav-a"> </div> <div class="middle" id="nav-b"> </div> <div class="footer" id="nav-c"> </div>


Otra opción es configurar el div hijo para que display: inline-block;

.content { display: inline-block; height: 100%; width: 100%; background-color: blue; }

.container { display: table; } .child { width: 30px; background-color: red; display: table-cell; vertical-align: top; } .content { display: inline-block; height: 100%; width: 100%; background-color: blue; }

<div class="container"> <div class="child"> a <br />a <br />a </div> <div class="child"> a <br />a <br />a <br />a <br />a <br />a <br />a </div> <div class="child"> <div class="content"> a <br />a <br />a </div> </div> </div>

Demostración de JSFiddle


Puedes usar este CSS:

.content { height: 100%; display: inline-table; background-color: blue; }

JSFiddle