TwitterBootstrapでのレスポンシブテーブル処理


回答:


153

Bootstrap 3には、すぐに使用できるレスポンシブテーブルがあります。やったー!:)

ここで確認できます:https//getbootstrap.com/docs/3.3/css/#tables-responsive

<div class="table-responsive">テーブルの周囲を追加すると、準備が整います。

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

すべてのレイアウトで機能させるには、次のようにします。

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

7
:S出典:しかし、それは唯一の小型デバイス(768px下)に適用しgetbootstrap.com/css/#tables-responsive
VSP

1
すべてのサイズのレイアウトでこれを有効にするには、foundation_and_overrides.css.scssファイルの768ブロックからレスポンシブスタイルをドロップするだけです。`` `.table-responsive {width:100%;のようなもの オーバーフロー-y:非表示; オーバーフロー-x:スクロール; -ms-overflow-style:-ms-autohiding-scrollbar; -webkit-オーバーフロー-スクロール:タッチ; } `` `
genkilabs 2014

3
@ ase69sは私の更新された答えをチェックします。ちょうど今、たくさんの列があるテーブルでそれが必要でした。overflow-x: autoカスタムCSSファイルを追加すると、より大きなディスプレイレイアウトのトリックが実行されます。
Leniel Maccaferri 2014

あなたは一貫性を保つために、あまりにも、そのsyle定義に境界線を追加したい場合がありますborder: 1px solid #dddddd;
PTIM

2
また.table-responsive td, .table-responsive th { white-space:nowrap; }、セルが自動的に縮小して改行が追加されないように追加することもできます。
rybo111 2014


18

レスポンシブテーブルを扱うときにできることはたくさんあります。

私は個人的にクリス・コイエによるこのアプローチが好きです:

あなたはここで他の多くの選択肢を見つけることができます:

Bootstrapを活用して何かをすばやく取得できる場合は、クラス名「.hidden-phone」と「.hidden-tablet」を使用して一部の行を非表示にすることができますが、多くの場合、このアプローチが最適な場合があります。詳細(「レスポンシブユーティリティクラス」を参照):


5
コイヤーリンクの+1。私は過去にそれを非常に効果的に使用しました。
Fetchez la vache 2013年

うん、クリスコイエのソリューションは非常にきちんとしている。bootstrapまたはzurbfoundationによって提供されるものよりもはるかに優れています(単に水平スクロールを追加するだけです)。
Adrien Be

2016年1月の時点で、Coyierやその他の応答性の高いものは5〜6歳で、誰もがTwitterBootstrapを使い始める前です。
Andrew Koper 2016年

1

Bootstrap 3以下を使用している場合は、ファイルを更新することで、レスポンシブテーブルをすべての解像度に適用できます。

tables.less

またはこの部分を上書きします:

@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;
          }
        }
      }
    }
  }
}

と:

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

最初の行の@ screen-XX値をどのように変更したかに注意してください。

すべてのテーブルをレスポンシブにするのはそれほど良くないように聞こえるかもしれませんが、大きなテーブル(多数の列)でLGまでこれを有効にすると非常に便利であることがわかりました。

それが誰かを助けることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.