Quando a largura de uma tabela excede a largura do intervalo, como esta página: http://jsfiddle.net/rcHdC/
Você verá que o conteúdo da tabela está fora do span
.
Qual seria o melhor método para atender a esse caso?
html
twitter-bootstrap
css
Ryan
fonte
fonte
Respostas:
O Bootstrap 3 agora tem tabelas responsivas prontas para usar. Hooray! :)
Você pode conferir aqui: https://getbootstrap.com/docs/3.3/css/#tables-responsive
Adicione um
<div class="table-responsive">
contorno à sua mesa e você estará pronto para ir:<div class="table-responsive"> <table class="table"> ... </table> </div>
Para que funcione em todos os layouts, você pode fazer o seguinte:
.table-responsive { overflow-x: auto; }
fonte
overflow-x: auto
umCSS
arquivo personalizado resolve o problema em layouts de exibição maiores.border: 1px solid #dddddd;
.table-responsive td, .table-responsive th { white-space:nowrap; }
para garantir que as células não diminuam automaticamente e adicionem quebras de linha.Uma opção disponível é fooTable. Funciona muito bem em um site responsivo e permite que você defina vários pontos de interrupção ... fooTable Link
fonte
Há muitas coisas diferentes que você pode fazer ao lidar com tabelas responsivas.
Pessoalmente, gosto dessa abordagem de Chris Coyier:
Você pode encontrar muitas outras alternativas aqui:
Se você pode aproveitar o Bootstrap e obter algo rapidamente, pode simplesmente usar os nomes de classe ".hidden-phone" e ".hidden-tablet" para ocultar algumas linhas, mas essa abordagem pode ser a melhor em muitos casos. Mais informações (consulte "Classes de utilitários responsivos"):
fonte
Se você estiver usando o Bootstrap 3 e Less, poderá aplicar as tabelas responsivas a todas as resoluções atualizando o arquivo:
tables.less
ou sobrescrevendo 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; } } } } } }
Com:
@media (max-width: @screen-lg) { .table-responsive { width: 100%; ...
Observe como alterei o valor da primeira linha @ screen-XX.
Sei que tornar todas as tabelas responsivas pode não parecer muito bom, mas achei extremamente útil ter isso habilitado para LG em tabelas grandes (muitas colunas).
Espero que ajude alguém.
fonte