2017-11-05 8 views
0

ここでは、jqueryを使用している行を動的に追加するレスポンシブブートストラップテーブルを作成しました。しかしブートストラップのヘッダーと本文の行がブートストラップ応答テーブルで正しく整列していない

$(document).ready(function() { 
 
    var rows = ""; 
 
    var a = "test code"; 
 

 
    $("#add_row").click(function() { 
 

 
    rows += "<tr><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td></tr>"; 
 
    $(rows).appendTo("#myTable3 tbody"); 
 
    }); 
 
});
#myTable3 th { 
 
    background-color: #009999; 
 
    color: white; 
 
} 
 

 
.table-fixed {} 
 

 
#myTable3 tbody { 
 
    height: 100px; 
 
    overflow: auto; 
 
} 
 

 
#myTable3 thead, 
 
.tbody { 
 
    display: block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 

 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 

 
<div class="table-responsive"> 
 
    <div class="row clearfix"> 
 

 
    <table class="table table-striped table-bordered table-fixed table-hover table-condensed" style="border:0px; " id="myTable3"> 
 
     <thead> 
 
     <tr> 
 
      <th width="">FileNo</th> 
 
      <th width="">Height</th> 
 
      <th width="">Weight</th> 
 
      <th width="">Temperature</th> 
 
      <th width="">Abdominal Circumference</th> 
 
      <th width="">Blood Pressure</th> 
 
      <th width="">Pulse</th> 
 
      <th width="">BMI</th> 
 
      <th width="">Chest Circumference</th> 
 
      <th width="">Time Recorded</th> 
 

 
     </tr> 
 
     </thead> 
 
     <tbody class="tbody"> 
 

 
     </tbody> 
 
    </table> 
 
    <a id="add_row" class="btn btn-default pull-left">Add Row</a> 
 
    </div> 
 
</div>

上以下のようにテーブル本体行は、それぞれヘッダを適切に位置合わせされていないと、上記の問題を説明する断片です。しかし、私はtbadのためのスクロールを得るためにtheadとtbodyのディスプレイブロックを使用しました。もし私がCSSの表示ブロックセクションを削除すると、tbodyとtheadのアライメントは正しく動作しますが、tbodyのスクロールが必要です。

くれ おかげ

答えて

1

問題を助けてくださいあなたはblockとしてtbodyを表示していると、これは間違っているということです、それを削除しても.table-responsiveが十分である、.row内のテーブルをラップする必要はありません。

$(document).ready(function() { 
 
    var rows = ""; 
 
    var a = "test code"; 
 

 
    $("#add_row").click(function() { 
 

 
    rows += "<tr><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td></tr>"; 
 
    $(rows).appendTo("#myTable3 tbody"); 
 
    }); 
 
});
#myTable3 th { 
 
    background-color: #009999; 
 
    color: white; 
 
} 
 

 
.table-fixed {} 
 

 
#myTable3 tbody { 
 
    height: 100px; 
 
    overflow: auto; 
 
} 
 

 
#myTable3 thead, 
 
.tbody { 
 
    /*display: block;*/ 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 

 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 

 
<div class="table-responsive"> 
 

 
    <table class="table table-striped table-bordered table-fixed table-hover table-condensed" style="border:0px; " id="myTable3"> 
 
     <thead> 
 
     <tr> 
 
      <th width="">FileNo</th> 
 
      <th width="">Height</th> 
 
      <th width="">Weight</th> 
 
      <th width="">Temperature</th> 
 
      <th width="">Abdominal Circumference</th> 
 
      <th width="">Blood Pressure</th> 
 
      <th width="">Pulse</th> 
 
      <th width="">BMI</th> 
 
      <th width="">Chest Circumference</th> 
 
      <th width="">Time Recorded</th> 
 

 
     </tr> 
 
     </thead> 
 
     <tbody class="tbody"> 
 

 
     </tbody> 
 
    </table> 
 
    <a id="add_row" class="btn btn-default pull-left">Add Row</a> 
 
</div>
#myTable3 thead, 
.tbody { 
    /*display: block;*/ 
} 

+0

はい男。この場合、あなたの答えは正しいです。私は十分に注意深くそれを見なかった。あなたに投票をしました。 –

+1

おかげです:) –

0

あなたの問題は、デフォルトで、それぞれdisplay: table-header-groupdisplay: table-row-groupを可能CSSスタイルを削除する必要がありdisplay: blockにごthead要素とTBODYを設定し、それが正常に動作する必要があります。

希望すると助かります!

$(document).ready(function() { 
 
    var rows = ""; 
 
    var a = "test code"; 
 

 
    $("#add_row").click(function() { 
 

 
    rows += "<tr><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td><td>" + a + "</td></tr>"; 
 
    $(rows).appendTo("#myTable3 tbody"); 
 
    }); 
 
});
#myTable3 th { 
 
    background-color: #009999; 
 
    color: white; 
 
} 
 

 
.table-fixed {} 
 

 
#myTable3 tbody { 
 
    height: 100px; 
 
    overflow: auto; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 

 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 

 
<div class="table-responsive"> 
 
    <div class="row clearfix"> 
 

 
    <table class="table table-striped table-bordered table-fixed table-hover table-condensed" style="border:0px; " id="myTable3"> 
 
     <thead> 
 
     <tr> 
 
      <th width="">FileNo</th> 
 
      <th width="">Height</th> 
 
      <th width="">Weight</th> 
 
      <th width="">Temperature</th> 
 
      <th width="">Abdominal Circumference</th> 
 
      <th width="">Blood Pressure</th> 
 
      <th width="">Pulse</th> 
 
      <th width="">BMI</th> 
 
      <th width="">Chest Circumference</th> 
 
      <th width="">Time Recorded</th> 
 

 
     </tr> 
 
     </thead> 
 
     <tbody class="tbody"> 
 

 
     </tbody> 
 
    </table> 
 
    <a id="add_row" class="btn btn-default pull-left">Add Row</a> 
 
    </div> 
 
</div>

+0

あなたの返信ありがとう!しかし私は1つの疑いがある、私たちが表示ブロックを削除し、次にtbodyのためにスクロールしていない場合、そこにはtbodyのスクロールを実装できる他の方法がありますか? – coder12346

+0

@ coder12346ようこそ、このソリューションをチェックアウトすることができます:[オーバーフロースクロールでtbodyの高さを設定する方法](https://stackoverflow.com/questions/23989463/how-to-set-tbody-height-with-overflow-scroll ) – AngYC

関連する問題