2010-09-15 18 views
7

Tengo una tabla que muestra los registros de la base de datos de forma dinámica. Solo necesito corregir la altura de la tabla, de modo que la tabla tenga una ventana de desplazamiento hacia abajo dentro de la misma tabla si tiene una gran cantidad de filas. ¿Esto es para que el usuario no tenga que desplazarse por toda la página?html table fixed height?

¿Es esto posible ...?

Gracias de antemano ...

Respuesta

13

Una solución a esto sería utilizar un -capa <div> que rodea el <table>, donde se utiliza el estilo-atributo con: overflow: auto; max-height: (whatever height you want here)

A modo de ejemplo:

<div id="mainHolder" style="overflow: auto; max-height: 400px;"> 
    <table> 
    ... Lots of data ... 
    </table> 
</div> 

Esto crearía una tabla que puede crecer en altura, pero estaría restringida en la capa div, y automáticamente obtendría barras de desplazamiento cuando el contenido crezca t Han 400px.

con jQuery también se puede hacer algo como esto:

<script type="text/javascript"> 
window.onresize = doResize; 

function doResize() { 
    var h = (typeof window.innerHeight != 'undefined' ? window.innerHeight : document.documentElement.clientHeight) - 20; 
    $('#mainHolder').css('max-height', h); 
    $('#mainHolder').css('height', h); 
}; 

$(document).ready(function() { doResize(); }); 
</script> 
+0

buena solución, pero tenga en cuenta que max-height no funciona en versiones anteriores de Explorer, por lo que si usted necesita para apoyar a IE6, se le necesita hacer hacking adicional – Spudley

+0

Internet Explorer 6 pronto estará fuera del mercado de todos modos. De lo contrario, realmente debería ser. Claro, también soy un fanático de los navegadores cruzados, pero me gustaría que los navegadores también admitan el estándar-css. E IE6 es un navegador tan antiguo que no debería considerarse. – NoLifeKing

+0

Mi mala suerte, mis clientes están trabajando con IE6 ... entonces qué haré ... cualquier otro consejo para arriba – soorajthomas