鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

bootstrap3でtableをいい感じにレイアウトしたいのです

最近、フロントエンドの話題ばかりとなっている@dokechinです。 みなさんいかがお過ごしでしょうか。

テーブルの列の横幅比率を一定にレスポンシィブにレイアウトしたい。 どうするんだろう。どうするんだろうと悩み。悩んだ。 こうすればいいんじゃないと思いやってみた結果。 bootstrap3だと、12列レイアウトなので最大12列までの対応となって しまいますが、col-ほげほげ-数字をそのまま利用しちゃって こんな感じで書くといいかもとおもった。 合計が12になるように数値を調整するといい感じ。

<div class="container">
  <table class="table">
    <tr>
      <td class="col-xs-2 col-sm-2 col-md-2">hage</td>
      <td class="col-xs-4 col-sm-4 col-md-4">hoge</td>
      <td class="col-xs-2 col-sm-2 col-md-2">hoge</td>
      <td class="col-xs-1 col-sm-1 col-md-1">hoge</td>
      <td class="col-xs-1 col-sm-1 col-md-1">hoge</td>
      <td class="col-xs-2 col-sm-2 col-md-2">hoge</td>
    </tr>
  </table>
</div>

<<追記>>しかし、以下のように長い文字列をtdに入れると、この比率は崩れてしまう。

<div class="container">
<table class="table">
  <tr>
    <td class="col-xs-3">testtesttesttesttesttesttesttesttesttesttesttesttetesttesttesttesttesttesttesttesttetesttesttesttesttesttesttest<td>
    <td class="col-xs-2">test<td>
    <td class="col-xs-1">test<td>
    <td class="col-xs-6">test<td>
  </tr>
</table>
</div>

f:id:kechiya:20131122123340p:plain

以下をみて・・・ Twitter Bootstrap - how to set up width of TD?

application.cssを別に用意して、以下のようにしてみた。

.table {
  width: 100%;
  table-layout: fixed;
  word-wrap: break-word;
}