javascript - Bootstrap Datatables Javascript - 长度菜单和导出按钮相互挤压 - 想要在两者之间创建换行符

标签 javascript html jquery bootstrap-4 datatables

我有一个正在开发的可搜索表,用户需要能够在其中导出他们的结果,而且还可以选择他们看到的结果数量。问题是一切看起来都太挤在一起了。我希望能够添加换行符、段落或 div 来分隔内容。基本上,我想要这个:
项目搜索显示 [Number] 个条目
[复制] [Excel] [CSV] [PDF] [列可见性]
[我的 table ]
我该怎么做呢?我不能在这里依赖我可信赖的 BR 和 P html 标签,但我想弄清楚这一点。

$(document).ready(function() {
  $('#example').DataTable({
    "lengthMenu": [10, 25, 50, 75, 100],
    dom: 'lBfrtip',
    "columnDefs": [{
        "targets": [],
        "visible": false,
        "searchable": false
      },
      {
        "targets": [],
        "visible": false
      }
    ],

    buttons: [{
        extend: 'copyHtml5',
        exportOptions: {
          columns: ':visible',
          format: {
            body: function(data, row, column, node) {
              var text = node.textContent;
              return column === 10 ? text.replace(/Open$/, '').trim() : data;
            }
          }
        }
      },
      {
        extend: 'excelHtml5',
        exportOptions: {
          columns: ':visible',
          format: {
            body: function(data, row, column, node) {
              var text = node.textContent;
              return column === 10 ? text.replace(/Open$/, '').trim() : data;
            }
          }
        }
      },
      {
        extend: 'csvHtml5',
        exportOptions: {
          columns: ':visible',
          format: {
            body: function(data, row, column, node) {
              var text = node.textContent;
              return column === 10 ? text.replace(/Open$/, '').trim() : data;
            }
          }
        }
      },


      {
        extend: 'pdfHtml5',
        orientation: 'landscape',
        exportOptions: {
          columns: ':visible',
          format: {
            body: function(data, row, column, node) {
              var text = node.textContent;
              return column === 10 ? text.replace(/Open$/, '').trim() : data;
            }
          }
        }
      },

      'colvis'
    ]
  });
});
div.dt-button-collection {
  width: 215px;
}

.display.dataTable {
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  font-size: 12px;
}

.modal {
  max-width: 1000px;
  margin: 2rem auto;
}

td.none {
  display: none;
}
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.21/css/jquery.dataTables.min.css" />
<link rel "=stylesheet" href="https://cdn.datatables.net/buttons/1.6.2/css/buttons.dataTables.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>

<!-- jQuery Modal -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.css" />

<link href="https://cdn.datatables.net/buttons/1.2.2/css/buttons.dataTables.css" rel="stylesheet" />
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.4.2/js/dataTables.buttons.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/vfs_fonts.js"></script>
<script src="https://cdn.datatables.net/buttons/1.4.2/js/buttons.html5.min.js"></script>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.2/js/dataTables.buttons.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.colVis.min.js"></script>
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">


<table id="example" class="display">
  <thead>
    <tr>
      <th class="all" data-toggle="tooltip" title="The known name of the project.">Project Name</th>
      <th class="all" data-toggle="tooltip" title="The provided unique ID that distinguishes projects.">Project Number</th>
      <th class="all" data-toggle="tooltip" title="The conclusing time point of a project, which is sometimes, but not always the point at which funding ends.">End Date</th>
      <th class="all" data-toggle="tooltip" title="The primary funder of the project.">Funder</th>

      <th class="all" data-toggle="tooltip" title="A brief description on the scope and aims of a project.">Abstract</th>

    </tr>
  </thead>
  <tbody>

    <tr>

      <td>Project 1</td>

      <td>P-1</td>

      <td>2018-04-30 00:00:00</td>

      <td>NIH</td>

      <td>
        <div id="ex83" class="modal">
          <p>

            Abstract 1
            <a href="#" rel="modal:close"></a>
        </div>
        <p><a href="#ex83" rel="modal:open"><button class="button">Open<span></span></button></a></p>
      </td>
    </tr>
    <tr>

      <td>Project 2</td>

      <td>P-2</td>

      <td>2024-03-31 00:00:00</td>

      <td>NIH</td>

      <td>
        <div id="ex103" class="modal">
          <p>

            Abstract 2
            <a href="#" rel="modal:close"></a>
        </div>
        <p><a href="#ex103" rel="modal:open"><button class="button">Open<span></span></button></a></p>
      </td>
    </tr>
    <tr>

      <td>Project 3</td>

      <td>P-3</td>

      <td>2021-01-31 00:00:00</td>

      <td>NIH</td>

      <td>
        <div id="ex111" class="modal">
          <p> Abstract 3</p>
          <a href="#" rel="modal:close"></a>
        </div>
        <p><a href="#ex111" rel="modal:open"><button class="button">Open<span></span></button></a></p>
      </td>
    </tr>


  </tbody>
</table>

最佳答案

如果我理解正确的话,我只添加了这个 CSS 规则:

.dataTables_length {
    position: relative;
    float: none !important;
    text-align: center;
}
显然,如果您不想要 Show [Number] Entries水平居中,只需删除 text-align: center;
$(document).ready(function() {
  $('#example').DataTable({
    "lengthMenu": [10, 25, 50, 75, 100],
    dom: '<l>Bfrtip',
    "columnDefs": [{
        "targets": [],
        "visible": false,
        "searchable": false
      },
      {
        "targets": [],
        "visible": false
      }
    ],

    buttons: [{
        extend: 'copyHtml5',
        exportOptions: {
          columns: ':visible',
          format: {
            body: function(data, row, column, node) {
              var text = node.textContent;
              return column === 10 ? text.replace(/Open$/, '').trim() : data;
            }
          }
        }
      },
      {
        extend: 'excelHtml5',
        exportOptions: {
          columns: ':visible',
          format: {
            body: function(data, row, column, node) {
              var text = node.textContent;
              return column === 10 ? text.replace(/Open$/, '').trim() : data;
            }
          }
        }
      },
      {
        extend: 'csvHtml5',
        exportOptions: {
          columns: ':visible',
          format: {
            body: function(data, row, column, node) {
              var text = node.textContent;
              return column === 10 ? text.replace(/Open$/, '').trim() : data;
            }
          }
        }
      },


      {
        extend: 'pdfHtml5',
        orientation: 'landscape',
        exportOptions: {
          columns: ':visible',
          format: {
            body: function(data, row, column, node) {
              var text = node.textContent;
              return column === 10 ? text.replace(/Open$/, '').trim() : data;
            }
          }
        }
      },

      'colvis'
    ]
  });
});
div.dt-button-collection {
  width: 215px;
}

.display.dataTable {
  font-family: Verdana, Geneva, Tahoma, sans-serif;
  font-size: 12px;
}

.modal {
  max-width: 1000px;
  margin: 2rem auto;
}

td.none {
  display: none;
}

div.dt-buttons {
    float: none;
}

.dataTables_length {
    position: relative;
    float: none !important;
    text-align: center;
}
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.21/css/jquery.dataTables.min.css" />
<link rel "=stylesheet" href="https://cdn.datatables.net/buttons/1.6.2/css/buttons.dataTables.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>

<!-- jQuery Modal -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.css" />

<link href="https://cdn.datatables.net/buttons/1.2.2/css/buttons.dataTables.css" rel="stylesheet" />
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.4.2/js/dataTables.buttons.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/vfs_fonts.js"></script>
<script src="https://cdn.datatables.net/buttons/1.4.2/js/buttons.html5.min.js"></script>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.2/js/dataTables.buttons.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.colVis.min.js"></script>
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">


<table id="example" class="display">
  <thead>
    <tr>
      <th class="all" data-toggle="tooltip" title="The known name of the project.">Project Name</th>
      <th class="all" data-toggle="tooltip" title="The provided unique ID that distinguishes projects.">Project Number</th>
      <th class="all" data-toggle="tooltip" title="The conclusing time point of a project, which is sometimes, but not always the point at which funding ends.">End Date</th>
      <th class="all" data-toggle="tooltip" title="The primary funder of the project.">Funder</th>

      <th class="all" data-toggle="tooltip" title="A brief description on the scope and aims of a project.">Abstract</th>

    </tr>
  </thead>
  <tbody>

    <tr>

      <td>Project 1</td>

      <td>P-1</td>

      <td>2018-04-30 00:00:00</td>

      <td>NIH</td>

      <td>
        <div id="ex83" class="modal">
          <p>

            Abstract 1
            <a href="#" rel="modal:close"></a>
        </div>
        <p><a href="#ex83" rel="modal:open"><button class="button">Open<span></span></button></a></p>
      </td>
    </tr>
    <tr>

      <td>Project 2</td>

      <td>P-2</td>

      <td>2024-03-31 00:00:00</td>

      <td>NIH</td>

      <td>
        <div id="ex103" class="modal">
          <p>

            Abstract 2
            <a href="#" rel="modal:close"></a>
        </div>
        <p><a href="#ex103" rel="modal:open"><button class="button">Open<span></span></button></a></p>
      </td>
    </tr>
    <tr>

      <td>Project 3</td>

      <td>P-3</td>

      <td>2021-01-31 00:00:00</td>

      <td>NIH</td>

      <td>
        <div id="ex111" class="modal">
          <p> Abstract 3</p>
          <a href="#" rel="modal:close"></a>
        </div>
        <p><a href="#ex111" rel="modal:open"><button class="button">Open<span></span></button></a></p>
      </td>
    </tr>


  </tbody>
</table>

对了,你没说Search box快乐编码!

关于javascript - Bootstrap Datatables Javascript - 长度菜单和导出按钮相互挤压 - 想要在两者之间创建换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63488801/

相关文章:

javascript - p5js 中 mousePressed 的问题

javascript - jQuery 执行缓慢的常见原因以及如何优化代码?

html - 如何在没有 Javascript 的情况下制作带有下拉菜单的 CSS 选项卡?

html - 背景图片在手机上不会全屏显示

javascript - 不显示鼠标时删除元素的悬停状态

javascript - 是否有可能捕获 net::ERR_BLOCKED_BY_CLIENT?

javascript - NodeGit - 解决有利于 "theirs"的 merge 冲突

javascript - 无法覆盖输入上的选定文本

javascript - 用于比较和保存元素的 jQuery 多列表解决方案

javascript - 使用 jQuery 验证具有通用规则的表单