Manejo receptivo de tablas en Twitter Bootstrap


Respuestas:


153

Bootstrap 3 ahora tiene tablas responsivas listas para usar. ¡Hurra! :)

Puedes consultarlo aquí: https://getbootstrap.com/docs/3.3/css/#tables-responsive

Agregue un <div class="table-responsive">alrededor de su mesa y debería estar listo para comenzar:

<div class="table-responsive">
  <table class="table">
    ...
  </table>
</div>

Para que funcione en todos los diseños, puede hacer esto:

.table-responsive
{
    overflow-x: auto;
}

7
Pero solo se aplica a dispositivos pequeños (menos de 768px): S Fuente: getbootstrap.com/css/#tables-responsive
VSP

1
Para habilitar esto en diseños de todos los tamaños, puede eliminar los estilos receptivos del bloque 768 en el archivo foundation_and_overrides.css.scss. Algo como `` `.table-responsive {width: 100%; overflow-y: oculto; overflow-x: desplazamiento; -ms-overflow-style: -ms-autohiding-scrollbar; -webkit-overflow-scrolling: toque; } ``
genkilabs

3
@ ase69s revisa mi respuesta actualizada. Justo ahora lo necesitaba en una mesa con muchas columnas. Agregar overflow-x: autoun CSSarchivo personalizado hace el truco para diseños de pantalla más grandes.
Leniel Maccaferri

Es posible que desee agregar el borde en esa definición de estilo, también, por coherencia:border: 1px solid #dddddd;
ptim

2
También es posible que desee agregar .table-responsive td, .table-responsive th { white-space:nowrap; }para asegurarse de que las celdas no se encojan automáticamente y agreguen saltos de línea.
rybo111


18

Hay muchas cosas diferentes que puede hacer cuando se trata de tablas receptivas.

Personalmente, me gusta este enfoque de Chris Coyier:

Puedes encontrar muchas otras alternativas aquí:

Si puede aprovechar Bootstrap y obtener algo rápidamente, simplemente puede usar los nombres de clase ".hidden-phone" y ".hidden-tablet" para ocultar algunas filas, pero este enfoque podría ser el mejor en muchos casos. Más información (consulte "Clases de utilidad receptiva"):


5
+1 para el Coyer Link. Lo he usado en el pasado con gran efecto.
Fetchez la vache

Sí, la solución de Chris Coyer es muy clara. Mucho más agradable que el proporcionado por bootstrap o zurbfoundation (simplemente agregan desplazamiento horizontal).
Adrien Be

A partir de ahora, enero de 2016, el material de respuesta de Coyier y otros tiene entre 5 y 6 años, antes de que todos comenzaran a usar Twitter Bootstrap.
Andrew Koper

1

Si está utilizando Bootstrap 3 y Less, puede aplicar las tablas de respuesta a todas las resoluciones actualizando el archivo:

tables.less

o sobrescribiendo esta parte:

@media (max-width: @screen-xs) {
  .table-responsive {
    width: 100%;
    margin-bottom: 15px;
    overflow-y: hidden;
    overflow-x: scroll;
    border: 1px solid @table-border-color;

    // Tighten up spacing and give a background color
    > .table {
      margin-bottom: 0;
      background-color: #fff;

      // Ensure the content doesn't wrap
      > thead,
      > tbody,
      > tfoot {
        > tr {
          > th,
          > td {
            white-space: nowrap;
          }
        }
      }
    }

    // Special overrides for the bordered tables
    > .table-bordered {
      border: 0;

      // Nuke the appropriate borders so that the parent can handle them
      > thead,
      > tbody,
      > tfoot {
        > tr {
          > th:first-child,
          > td:first-child {
            border-left: 0;
          }
          > th:last-child,
          > td:last-child {
            border-right: 0;
          }
        }
        > tr:last-child {
          > th,
          > td {
            border-bottom: 0;
          }
        }
      }
    }
  }
}

Con:

@media (max-width: @screen-lg) {
  .table-responsive {
    width: 100%;
...

Observe cómo cambié el valor de la primera línea @ screen-XX.

Sé que hacer que todas las tablas respondan puede que no suene tan bien, pero me pareció extremadamente útil tener esto habilitado para LG en tablas grandes (muchas columnas).

Espero que ayude a alguien.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.