Me gustaría tener una mesa en mi sitio web. El problema es que esta tabla tendrá aproximadamente 400 líneas. ¿Cómo puedo limitar la altura de la tabla y aplicarle la barra de desplazamiento? Este es mi código:
<div class="span3">
<h2>Achievements left</h2>
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Something</td>
</tr>
<tr>
<td>2</td>
<td>Something</td>
</tr>
<tr>
<td>3</td>
<td>Something</td>
</tr>
<tr>
<td>4</td>
<td>Something</td>
</tr>
<tr>
<td>5</td>
<td>Something</td>
</tr>
<tr>
<td>6</td>
<td>Something</td>
</tr>
</tbody>
</table>
<p><a class="btn" href="#">View details »</a></p>
</div>
Intenté aplicar la altura máxima y la altura fija a la mesa, pero no funciona.
twitter-bootstrap
pangi
fuente
fuente
overflow
solo en el cuerpo de la tabla pero donde las<thead>
partes siempre se muestran?Querrá envolverlo en su propio div o darle a ese span3 una identificación propia para que no afecte todo su diseño.
Aquí hay un violín: http://jsfiddle.net/zm6rf/
fuente
.span3
afectará a todos losspan3
elementos en todo su sitio impulsado por Bootstrap.No necesito envolverlo en un div ...
CSS :
Bootply : http://www.bootply.com/AgI8LpDugl
fuente
td
elemento varían en tamaño. bootply.com/OsvzINuTUATuve el mismo problema y utilicé una combinación de las soluciones anteriores (y agregué un giro propio). Tenga en cuenta que tuve que especificar anchos de columna para mantenerlos consistentes entre el encabezado y el cuerpo.
En mi solución, el encabezado y el pie de página permanecen fijos mientras el cuerpo se desplaza.
Y luego solo apliqué el siguiente CSS:
Espero que esto ayude a alguien más.
fuente
Recientemente tuve que hacer esto con bootstrap y angularjs, creé una directiva angularjs que resuelve el problema, puedes ver un ejemplo de trabajo y detalles en esta publicación de blog .
Lo usa simplemente agregando un atributo de encabezado fijo a la etiqueta de la tabla:
Si no está usando angularjs, puede modificar el javascript de la directiva y usarlo directamente en su lugar.
fuente
CSS
HTML
fuente
.table-class-name { height: 100%; }
.Esto puede no ser una solución para el recuento de grandes filas. Simplemente uso el truco de la tabla de duplicación para hacer lo que se necesita para la tabla de recuento de filas pequeñas, mientras que puede mantener el ancho de la columna flexible, puedes probar este violín .
(La columna de ancho fijo es el método que uso para la tabla de recuento de filas grandes que requiere solo la duplicación de la fila del encabezado)
Código de muestra:
fuente
Pon la tabla en un div y dale a ese div la clase
pre-scrollable
.fuente
Recientemente tuve un problema similar y terminé solucionándolo usando una mezcla de diferentes soluciones.
La primera y más simple fue usar dos tablas, una para los encabezados y otra para el cuerpo. Esto funciona pero los encabezados y las columnas del cuerpo no están alineados. Y, dado que quería usar el tamaño automático que viene con las tablas de arranque de Twitter, terminé creando una función Javascript que cambia los encabezados cuando: se representa el cuerpo; las ventanas cambian de tamaño; los datos en la columna cambian, etc.
Aquí hay algunos de los códigos que utilicé:
Los encabezados y el cuerpo se dividen en dos tablas separadas. Uno de ellos está dentro de un DIV con el estilo necesario para generar las barras de desplazamiento verticales. Aquí está el CSS que utilicé:
Comenté la altura aquí porque quería que la tabla llegara al final de la página, cualquiera que sea la altura de la página.
Los atributos de clasificación de datos que utilicé en los encabezados también se utilizan en cada td. De esta manera podría obtener el ancho y el relleno de cada td y el ancho de la fila. Usando los atributos de clasificación de datos que configuré usando CSS, el relleno y el ancho de cada encabezado en consecuencia y de la fila del encabezado, que siempre es más grande ya que no tiene una barra de desplazamiento. Aquí está la función usando coffeescript:
Aquí supongo que tiene una serie de encabezados llamados @headers.
No es bonito pero funciona. Espero que ayude a alguien.
fuente
Todas las soluciones anteriores también hacen que el encabezado de la tabla se desplace ... Si solo desea desplazar tbody, aplique esto:
fuente
Ninguna de estas respuestas funcionó satisfactoriamente para mí. No arreglaron la fila de encabezado de la tabla en su lugar o requirieron anchos de columna fijos para trabajar, e incluso entonces tendieron a desalinear la fila de encabezado y las filas del cuerpo en varios navegadores.
Recomiendo morder la viñeta y usar un control de cuadrícula adecuado como jsGrid o mi favorito personal, SlickGrid . Obviamente, introduce una dependencia, pero si desea que sus tablas se comporten como cuadrículas reales con soporte para navegadores cruzados, esto le ahorrará el pelo. También le da la opción de ordenar y cambiar el tamaño de las columnas, además de toneladas de otras características si lo desea.
fuente
Re sugerencia de Jonathan Wood. No tengo la opción de ajustar las tablas con un nuevo div ya que estoy usando un CMS. Usando JQuery esto es lo que hice:
Esto envuelve los elementos de la tabla con un nuevo div con la clase "table-overflow".
Luego puede simplemente agregar la siguiente definición en su archivo css:
fuente
coloque la tabla dentro del div para hacer una tabla desplazable verticalmente. cambie
overflow-y
aoverflow-x
para hacer que la tabla se pueda desplazar horizontalmente. solooverflow
para hacer que la mesa se pueda desplazar tanto horizontal como verticalmente.fuente
Pensé que publicaría aquí ya que no podía hacer que ninguno de los anteriores funcionara con Bootstrap 4. Encontré esto en línea y funcionó perfectamente para mí ...
También he adjuntado el jsfindle de trabajo.
https://jsfiddle.net/jgngg28t/
Espero que ayude a alguien más.
fuente