レスポンシブデザインの列を非表示にしようとしていますcol-xs
およびcol-sm
。私は最初にhidden-xs/hidden-sm
クラスが、これは機能しませんでした。また、visible-desktop
ここで述べたとおり: Twitter Bootstrap Responsive-テーブル列のみをデスクトップに表示する
それもうまくいきませんでした。これを行う最良の方法は何ですか?むしろ、2つの別々のテーブルを作成してから、どちらか一方を非表示にしません。
試したコードは現在動作していません:
<table>
<thead>
<th>Show All the time</th>
<th class="hidden-xs hidden-sm">Hide in XS and SM</th>
</thead>
<tbody>
<tr>
<td>Show All the time</td>
<td class="hidden-xs hidden-sm">Hide in XS and SM</td>
</tr>
</tbody>
</table>
コードは問題なく動作するはずです。 Bootstrapは、th
およびtd
のレスポンシブユーティリティクラスの非表示/表示をサポートしています https://github.com/twbs/bootstrap/blob/ master/less/mixins.less#L504 :
// Responsive utilities
// -------------------------
// More easily include all the states for responsive-utilities.less.
.responsive-visibility() {
display: block !important;
tr& { display: table-row !important; }
th&,
td& { display: table-cell !important; }
}
.responsive-invisibility() {
display: none !important;
tr& { display: none !important; }
th&,
td& { display: none !important; }
}
コードはこのjsFiddleで動作します: http://jsfiddle.net/A4fQP/
受け入れられた回答には多くの賛成票があるため、以前はhidden-xs/hidden-sm
が機能していたようですが、領域のサイズを変更しているときはフィドルの例は機能しません。私にとってうまくいくのは、visible-md/visible-lg
を使用した反対のロジックです。文書によるとBootstrapはまだ hidden-xs/hidden-sm をサポートする必要があるため、理由はわかりません。
作業フィドル: http://jsfiddle.net/h1ep8b4f/
<table>
<thead>
<th>Show All the time</th>
<th class="visible-md visible-lg">Hide in XS and SM</th>
</thead>
<tbody>
<tr>
<td>Show All the time</td>
<td class="visible-md visible-lg">Hide in XS and SM</td>
</tr>
</tbody>
</table>
最近、同様の問題に遭遇し、画面サイズに応じてテーブルの表示方法が異なります。私にとってのタスクは、大きな画面で1つの列を非表示にし、他の3つの列を非表示にしてモバイルデバイスに表示することでした(「1」列は「3」列のデータの合計です。上記の応答のように、メディアクエリを使用しましたが、ブートストラップの事前に作成されたビューはすべて破棄され、関連するth
およびtd
タグにクラスを追加しました。
次のようになります。
.full_view {
width: 50px;
@media(max-width: 768px){
display: none;
}
}
.small_view {
width: 50px;
@media(min-width: 768px){
display: none;
}
}