2011-01-10 20 views
63

tengo el siguiente marcado:CSS: cómo obtener barras de desplazamiento para div dentro del contenedor de altura fija

<div class="FixedHeightContainer"> 
    <h2>Title</h2> 
    <div class="Content"> 
    ..blah blah blah... 
    </div> 
</div> 

El CSS se ve así:

.FixedHeightContainer 
{ 
    float:right; 
    height: 250px; 
    width:250px; 
} 
.Content 
{ 
    ??? 
} 

Debido a su contenido, la altura de div.Content suele ser mayor que el espacio provisto por div.FixedHeightContainer. Por el momento, div.Content felizmente se extiende fuera de la parte inferior de div.FixedHeightContainer - no del todo lo que quiero.

¿Cómo especifico que div.Content obtiene barras de desplazamiento (preferiblemente solo vertical, pero no soy quisquilloso) cuando su altura es demasiado grande para caber?

overflow:auto y overflow:scroll no están haciendo nada, por alguna razón extraña.

Respuesta

109

configurando el overflow debe encargarse de ello, pero también debe configurar la altura de Content. Si el atributo de altura no está establecido, el div crecerá verticalmente tan alto como sea necesario, y no se necesitarán barras de desplazamiento.

Ver Ejemplo: http://jsfiddle.net/ftkbL/1/

+0

bien - gracias. Entonces, ¿debo especificar una altura para div.Content? Supuse que funcionaría desde el contenedor que no encajaría, y aplicaría barras de desplazamiento sobre esa base. – David

+6

Si le da a 'Contenido' una altura fija, no debe darle una altura fija a' FixedHeightContainer', porque no puede saber qué tan alto será su título, por lo que 'Content' puede ser expulsado. Consulte: http://jsfiddle.net/ftkbL/2/. Debe establecer la altura fija ** solo ** en el elemento con 'overflow: scroll'. Consulte http://jsfiddle.net/ftkbL/3/ o http://jsfiddle.net/ftkbL/4/ – RoToRa

+0

Veo su punto (desde el primer enlace) pero el texto del título es conocido y es demasiado corto para romperlo una línea a menos que el usuario infló el texto a un tamaño poco práctico. – David

Cuestiones relacionadas