Bootstrap4中如何防止table超出卡体宽度?

How to prevent table to exceed card body width in Bootstrap 4?

这是我的代码示例:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

<div class="row">
  <div class="col-6">
    <div class="card mt-4">
      <div class="card-header">
        <h5 class="text-center">Comments</h5>
      </div>
      <div class="card-body">
        <table class="table table-primary">
          <thead>
            <tr>
              <th colspan="6">
                <div class="pull-left">
                  <button type="button" class="btn btn-outline-secondary btn-sm"><i class="fa fa-plus-circle" aria-hidden="true"></i> Add New</button>
                </div>
                <div class="pull-right">
                  <button type="button" class="btn btn-outline-secondary btn-sm"><i class="fa fa-list" aria-hidden="true"></i> View All</button>
                </div>
              </th>
            </tr>
            <tr>
              <th>Subject</th>
              <th>Author</th>
              <th>Date</th>
              <th>Year</th>
              <th>Edit</th>
              <th>Delete</th>
            </tr>
          </thead>
          <tbody>
            <tr>

              <td>This is a test comment</td>
              <td>John Wick</td>
              <td>06/28/2019</td>
              <td>2019</td>
              <td class="text-center">
                <button type="button" class="btn btn-outline-secondary btn-sm comment-edit">Edit</button>
              </td>
              <td class="text-center">
                <button type="button" class="btn btn-outline-secondary btn-sm comment-delete">Delete</button>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  </div>
</div>

正如你在我的例子中看到的那样table溢出了卡体。有没有办法把table放到卡体里面?谢谢。

Bootstrap 有一个 class .table-responsive,您可以使用它来获得响应 table。如果需要,它将添加水平滚动。

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

阅读更多:DOCUMENTATION


旁注 - 使用最新版本的 bootstrap 和 jQuery,因为旧版本可能有错误。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<body>

<div class="row">
  <div class="col-6">
    <div class="card mt-4">
      <div class="card-header">
        <h5 class="text-center">Comments</h5>
      </div>
      <div class="card-body">
        <table class="table-responsive table-primary">
          <thead>
            <tr>
              <th colspan="6">
                <div class="pull-left">
                  <button type="button" class="btn btn-outline-secondary btn-sm"><i class="fa fa-plus-circle" aria-hidden="true"></i> Add New</button>
                </div>
                <div class="pull-right">
                  <button type="button" class="btn btn-outline-secondary btn-sm"><i class="fa fa-list" aria-hidden="true"></i> View All</button>
                </div>
              </th>
            </tr>
            <tr>
              <th>Subject</th>
              <th>Author</th>
              <th>Date</th>
              <th>Year</th>
              <th>Edit</th>
              <th>Delete</th>
            </tr>
          </thead>
          <tbody>
            <tr>

              <td>This is a test comment</td>
              <td>John Wick</td>
              <td>06/28/2019</td>
              <td>2019</td>
              <td class="text-center">
                <button type="button" class="btn btn-outline-secondary btn-sm comment-edit">Edit</button>
              </td>
              <td class="text-center">
                <button type="button" class="btn btn-outline-secondary btn-sm comment-delete">Delete</button>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  </div>
</div>
</body>
</html>

您可以在 table

上使用 .table-responsive 而不是 .table

试试这个解决方案,您可以进行相应的编辑,

   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
    
    <div style="max-width:400px">
    <div class="row">
      <div class="col-12">
        <div class="card mt-4">
          <div class="card-header">
            <h5 class="text-center">Comments</h5>
          </div>
          <div class="card-body">
            <table class="table table-primary table-responsive">
              <thead>
                <tr>
                  <th colspan="6">
                    <div class="pull-left">
                      <button type="button" class="btn btn-outline-secondary btn-sm"><i class="fa fa-plus-circle" aria-hidden="true"></i> Add New</button>
                    </div>
                    <div class="pull-right">
                      <button type="button" class="btn btn-outline-secondary btn-sm"><i class="fa fa-list" aria-hidden="true"></i> View All</button>
                    </div>
                  </th>
                </tr>
                <tr>
                  <th>Subject</th>
                  <th>Author</th>
                  <th>Date</th>
                  <th>Year</th>
                  <th>Edit</th>
                  <th>Delete</th>
                </tr>
              </thead>
              <tbody>
                <tr>
    
                  <td>This is a test comment</td>
                  <td>John Wick</td>
                  <td>06/28/2019</td>
                  <td>2019</td>
                  <td class="text-center">
                    <button type="button" class="btn btn-outline-secondary btn-sm comment-edit">Edit</button>
                  </td>
                  <td class="text-center">
                    <button type="button" class="btn btn-outline-secondary btn-sm comment-delete">Delete</button>
                  </td>
                </tr>
              </tbody>
            </table>
          </div>
        </div>
      </div>
    </div>
      </div>