2016-04-01 5 views
1

私のテーブルのヘッダは次のようになります。ブートストラップテーブルの力のすべてのテーブルのヘッダーは1行に表示する

table headers

私はヘッダーの一部を複数行にレンダリングされる方法を好きではありません。私はそれらのすべてを一本の線にしたいと思っていますが、どうやってそれを行うのかは分かりません。

また、ノーツヘッダーが非常に多くのテーブル幅を占めているのは嫌です。それにかかる幅をどのように減らすことができますか?

私はtable-responsiveas the w3schools example shows hereを使用しています。

更新:ちょうど長いヘッダの列に複数の列のグリッドスペースを与えて注:(例:col-sm-1またはcol-sm-2を言うこととは対照的にcol-sm-4は)それはあまりにも多くのグリッドスポットを取るための良い解決策ではありません。その後は、残りの列に十分なグリッドスポットが残っていません。

基本的に、私はいつもカラムヘッダーを1行にします。列ヘッダーが1行に収まらない場合は、応答モードに移行して列ヘッダーが1行になるようにします。

ここにコードスニペットがあります。あなたはcol-[viewport]-[size]を使用することができます

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
</head> 
 

 
<body> 
 

 
    <div class="container"> 
 
    <h2>Table</h2> 
 
    <p>The .table-responsive class creates a responsive table which will scroll horizontally on small devices (under 768px). When viewing on anything larger than 768px wide, there is no difference:</p> 
 
    <div class="table-responsive"> 
 
     <table class="table"> 
 
     <thead> 
 
      <tr> 
 
      <th>#</th> 
 
      <th>Firstname</th> 
 
      <th>Lastname really really long last name</th> 
 
      <th>Age</th> 
 
      <th>City</th> 
 
      <th>Country</th> 
 
      </tr> 
 
     </thead> 
 
     <tbody> 
 
      <tr> 
 
      <td>1</td> 
 
      <td>Nulla vitae elit libero, a pharetra augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam porta sem malesuada magna mollis euismod. Donec id elit non mi porta gravida at eget metus. Cum sociis natoque penatibus et magnis dis 
 
       parturient montes, nascetur ridiculus mus. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam id dolor id nibh ultricies vehicula ut id elit. Sed posuere consectetur est at lobortis. Donec id elit non mi porta gravida at 
 
       eget metus. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur. Maecenas faucibus mollis interdum. Nullam quis risus eget urna mollis ornare vel eu leo. Aenean lacinia bibendum 
 
       nulla sed consectetur. Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas sed diam eget risus varius blandit sit amet non magna. Vestibulum id ligula porta felis euismod semper. Cum sociis natoque penatibus et magnis 
 
       dis parturient montes, nascetur ridiculus mus.</td> 
 
      <td>Pitt</td> 
 
      <td>35</td> 
 
      <td>Nulla vitae elit libero, a pharetra augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam porta sem malesuada magna mollis euismod. Donec id elit non mi porta gravida at eget metus. Cum sociis natoque penatibus et magnis dis 
 
       parturient montes, nascetur ridiculus mus. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam id dolor id nibh ultricies vehicula ut id elit. Sed posuere consectetur est at lobortis. Donec id elit non mi porta gravida at 
 
       eget metus. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur. Maecenas faucibus mollis interdum. Nullam quis risus eget urna mollis ornare vel eu leo. Aenean lacinia bibendum 
 
       nulla sed consectetur. Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas sed diam eget risus varius blandit sit amet non magna. Vestibulum id ligula porta felis euismod semper. Cum sociis natoque penatibus et magnis 
 
       dis parturient montes, nascetur ridiculus mus.</td> 
 
      <td>USA</td> 
 
      </tr> 
 
     </tbody> 
 
     </table> 
 
    </div> 
 
    </div> 
 

 
</body> 
 

 
</html>

+0

画像と一致していませんが、貼り付けたコードを助けることができるです。コードにメモフィールドはありません。 – aphextwix

答えて

3

: "フルページ" をクリックしてください。列のサイズは12に合計する必要があり覚えておいてください下の変更を参照してください:私はランダムに列のサイズを設定している

、あなたの要件に応じて変更することができます。以下のように、合計が12 1+3+4+1+2+1 = 12

<tr> 
    <th class="col-xs-1">#</th> 
    <th class="col-xs-3">Firstname</th> 
    <th class="col-xs-4">Lastname really really long last name</th> 
    <th class="col-xs-1">Age</th> 
    <th class="col-xs-2">City</th> 
    <th class="col-xs-1">Country</th> 
</tr> 
より大きくなることはありません

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
</head> 
 

 
<body> 
 

 
    <div class="container"> 
 
    <h2>Table</h2> 
 
    <p>The .table-responsive class creates a responsive table which will scroll horizontally on small devices (under 768px). When viewing on anything larger than 768px wide, there is no difference:</p> 
 
    <div class="table-responsive"> 
 
     <table class="table"> 
 
     <thead> 
 
      <tr> 
 
      <th class="col-xs-1">#</th> 
 
      <th class="col-xs-3">Firstname</th> 
 
      <th class="col-xs-4">Lastname really really long last name</th> 
 
      <th class="col-xs-1">Age</th> 
 
      <th class="col-xs-2">City</th> 
 
      <th class="col-xs-1">Country</th> 
 
      </tr> 
 
     </thead> 
 
     <tbody> 
 
      <tr> 
 
      <td>1</td> 
 
      <td>Nulla vitae elit libero, a pharetra augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam porta sem malesuada magna mollis euismod. Donec id elit non mi porta gravida at eget metus. Cum sociis natoque penatibus et magnis dis 
 
       parturient montes, nascetur ridiculus mus. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam id dolor id nibh ultricies vehicula ut id elit. Sed posuere consectetur est at lobortis. Donec id elit non mi porta gravida at 
 
       eget metus. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur. Maecenas faucibus mollis interdum. Nullam quis risus eget urna mollis ornare vel eu leo. Aenean lacinia bibendum 
 
       nulla sed consectetur. Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas sed diam eget risus varius blandit sit amet non magna. Vestibulum id ligula porta felis euismod semper. Cum sociis natoque penatibus et magnis 
 
       dis parturient montes, nascetur ridiculus mus.</td> 
 
      <td>Pitt</td> 
 
      <td>35</td> 
 
      <td>Nulla vitae elit libero, a pharetra augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam porta sem malesuada magna mollis euismod. Donec id elit non mi porta gravida at eget metus. Cum sociis natoque penatibus et magnis dis 
 
       parturient montes, nascetur ridiculus mus. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam id dolor id nibh ultricies vehicula ut id elit. Sed posuere consectetur est at lobortis. Donec id elit non mi porta gravida at 
 
       eget metus. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur. Maecenas faucibus mollis interdum. Nullam quis risus eget urna mollis ornare vel eu leo. Aenean lacinia bibendum 
 
       nulla sed consectetur. Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas sed diam eget risus varius blandit sit amet non magna. Vestibulum id ligula porta felis euismod semper. Cum sociis natoque penatibus et magnis 
 
       dis parturient montes, nascetur ridiculus mus.</td> 
 
      <td>USA</td> 
 
      </tr> 
 
     </tbody> 
 
     </table> 
 
    </div> 
 
    </div> 
 

 
</body> 
 

 
</html>

EDIT:

コンテンツが大きくて、1行に収まらない場合は、それだけです。あなたがそれを反応させるとしても。レスポンシブは、必要に応じて二重線を追加して、すべてを1行に収めようとします。あなたが必要なものを達成するために

方法:

  1. 列のサイズを調整し、1行でそれに合わせてフォントサイズ下げ
  2. 他の列が小さくなります。
  3. 書き込みカスタムクラス幅
例えば

を指定して、デフォルトの幅は以下のとおりです。カスタム幅が必要な場合

.col-xs-4{ 
width:33.33%; 
} 

は、以下のようなクラスを作成する[IMP:合計は正確でなければなりません100%]

.col-custom-1{ 
width:20% 
} 
.col-custom-2{ 
width:20% 
} 
.col-custom-3{ 
width:20% 
} 
.col-custom-4{ 
width:20% 
} 
.col-custom-5{ 
width:20% 
} 

要件ごとにちょうど幅またはインライン幅を直接使用する、私はクラスを好む。

+0

私は同じことをするレスポンシブテーブル用のZurbプラグインを追加しましたが、819374013の異なるプラグイン/フレームワークを統合したくない場合は、このアプローチが優れていると思います。 –

+0

ありがとうございました。それはほとんど動作します。問題は、「Lastname really really last last name」という列がまだ2行を占めているということです。 1つの応答は、その列にもっと多くの列グリッド・スペースを与えることですが、残りの列のグリッド・スペースは余りにも多くなります。私はこれが 'table-responsive'クラスの全体的なポイントであると考えました。応答モードになり、各カラムは1行しか使いません。何か案は? – Neil

+0

'.table-responsive'クラスは、小さなデバイス(768px以下)に水平スクロールを追加するだけです。幅が768pxを超えるものを見ると、違いはありません。 [Read more here](http://www.w3schools.com/bootstrap/bootstrap_ref_css_tables.asp) – TheUknown

0

Djangoのテンプレートは、私たちがヘッダーを複数行で満たされている2つのファイルを持っているとしましょう 、代わりに

多様マイ例のあなたのhtmlを分離することができ the multiple lines issue

を解決するのに役立つかもしれません。

これはこれは、あなたが複数行

{% extends "base.html" %} 
    {% block content %} 
{% endblock content %} 

を取り除くことができる方法であるbase.html

{% load staticfiles %} 
<!-- DOCTYPE html --> 
<html> 
<head> 
<title>{% block head_title %}Learn You English{% endblock head_title %}</title> 
<!-- Latest compiled and minified CSS --> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 

<!-- Optional theme --> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous"> 

<!-- base css --> 
<link rel="stylesheet" type="text/css" href="{% static 'css/base.css' %}" /> 
<style> 
{% block style %}{% endblock style %} 
</style> 

</head> 
<body> 

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
var js, fjs = d.getElementsByTagName(s)[0]; 
if (d.getElementById(id)) return; 
js = d.createElement(s); js.id = id; 
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5"; 
fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

{% include "messages_display.html" %} 
<div class'container'> 
{% block content %} 
<!-- end of block html --> 
{% endblock content %} 
</div> 

<!-- <img src='{% static "img/beach.jpg" %}' /> 
--> 


<!-- Latest compiled and minified JavaScript --> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> 
</body> 
</html> 

です。 Post_list.htmlは例

<!--obj == query set--> 
{% extends "base.html" %} 
{% block content %} 

<div class='col-sm-6 col-sm-offset-3'> 
    <h1>{{ title }}</h1> 
    <!-- Search get method--> 
<form method='GET' action ''> 
<input type='text' name='q' placeholder='Search posts' value='{{ request.GET.q }}'/> 
<input type='submit' vlaue='Search' /> 
</form> 
{% for obj in object_list %} 
<div class="row"> 
    <div class="col-sm-12"> 
    <div class="thumbnail"> 
     {% if obj.image %} 
     <img src='{{ obj.image.url }}' class='img-responsive' /> 
     {% endif %} 
     <div class="caption"> 
     {% if obj.draft %}<h3>Staff only: Draft</h3>{% endif %} {% if obj.publish > today %}<h3>Staff ONLY: Future Post</h3>{% endif %} 
     <h3><a href='{{ obj.get_absolute_url }}'>{{ obj.title }}</a> <small>{{ obj.publish}} </small></h3> 
     {% if obj.user.get_full_name %}<p>Author: {{ obj.user.get_full_name }}<p>{% endif %} 
     <p>{{ obj.content|linebreaks|truncatechars:120 }}</p> 
     <p><a href="{{ obj.get_absolute_url }}" class="btn btn-primary" role="button">View</a></p> 
     </div> 
    </div> 
    </div> 
<hr/> 
</div> 
{% endfor %} 

<!-- Pagination modified q for 
&q={{ request.GET.q }}" is keeping the search chararcter while switching 
the page in pagination 
--> 
<div class="pagination"> 
    <span class="step-links"> 
     {% if object_list.has_previous %} 
      <a href="?{{ page_request_var }}={{ object_list.previous_page_number }}{% if request.GET.q %}&q={{ request.GET.q }}{% endif %}">previous</a> 
     {% endif %} 

     <span class="current"> 
      Page {{ object_list.number }} of {{ object_list.paginator.num_pages }}. 
     </span> 

     {% if object_list.has_next %} 
      <a href="?{{ page_request_var }}={{ object_list.next_page_number }}{% if request.GET.q %}&q={{ request.GET.q }}{% endif %}">next</a> 
     {% endif %} 
    </span> 
</div> 


</div> 
<!-- end of block html --> 
{% endblock content %} 

私は幅について確認していないが、おそらく次のように探しては

<div class='col-sm-6 col-sm-offset-3'> 
関連する問題