关于响应式数据表的问题
Posted
技术标签:
【中文标题】关于响应式数据表的问题【英文标题】:Issue regarding responsive datatable 【发布时间】:2017-05-14 11:41:08 【问题描述】:我在 rails webapp 上有一个现有的 ruby,我使用 Bootstrap 3 使其完全响应并满足其他样式要求。现在我的一些网页包含数据表。由于我的 web 应用程序是完全响应的,所以当我在移动设备中打开我的 web 应用程序时,数据表会适合小屏幕,并且底部会出现一个水平滚动条。 但我不需要这个功能。我需要整个表格以较小的字体可见且没有水平滚动条。
有没有办法使用媒体查询和任何其他技巧来实现这一点?
请帮我解决这个问题。
提前致谢!!!
我的数据表如下:
<table class="table table-striped table-hover" id="indentdatesort">
<thead>
<tr>
<th>Indent No.</th>
<th>Warehouse</th>
<th>Item</th>
<th>Make/Catno</th>
<th>UOM</th>
<th>Qty</th>
<th>Qty P</th>
<th>Sh Cl</th>
<th>Date</th>
<th>SortDate</th>
<th>Rqt Dt</th>
<th>Sort Rqt Dt</th>
<th>Cost Centre</th>
<th>Remarks</th>
<th>By</th>
<th>Entry</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>INDMSF/16-17/00002</td>
<td>Furnace</td>
<td>Cotton Hand Gloves</td>
<td></td>
<td>pair</td>
<td>12.0</td>
<td>0.0</td>
<td></td>
<td>25/06/16</td>
<td>06/25/16</td>
<td>25/06/16</td>
<td>06/25/16</td>
<td>Kiln . Kiln 1 . Girth Gear</td>
<td></td>
<td>Ashfaque</td>
<td>Ayush Jhunjhunwala</td>
<td><input class="btn btn-default btn-xs" name="154" type="submit" value=">" /></td>
</tr>
<tr>
<td>INDMSF/16-17/00003</td>
<td>Furnace</td>
<td>Bearing 22317 EW33J</td>
<td></td>
<td>no</td>
<td>2.0</td>
<td>2.0</td>
<td></td>
<td>31/08/16</td>
<td>08/31/16</td>
<td>31/08/16</td>
<td>08/31/16</td>
<td></td>
<td></td>
<td>Ashfaque</td>
<td>Ayush Jhunjhunwala</td>
<td><input class="btn btn-default btn-xs" name="155" type="submit" value=">" /></td>
</tr>
</tbody>
</table>
我的实际看法是:
我的手机视图是:-
看,在移动视图中,出现了一个水平滚动条。我不需要这个滚动条,我想看到所有表格列都适合小屏幕,可能是小字体。
【问题讨论】:
请添加 html 版本...这里不是 ruby 编码器。 如果可以的话可以分享一下问题的截图吗?还要检查与 dataTable 响应 css 文件(responsive.bootstrap.css)和引导支持的“dataTables.bootstrap.css”相关的文件到您的文件目录中。 【参考方案1】:这是您更新的响应式数据表演示。请检查一次。
需要添加响应式JS
响应式 JS
$('#myTable').DataTable(
responsive: true
);
同时检查 CSS/JS 文件及其结构。
1. JSFiddle Demo:
2。工作演示:响应式数据表
$('#myTable').DataTable(
responsive: true
);
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.13/css/dataTables.bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/responsive/2.1.1/css/responsive.bootstrap.min.css" >
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.13/js/dataTables.bootstrap.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/responsive/2.1.1/js/dataTables.responsive.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/responsive/2.1.1/js/responsive.bootstrap.min.js"></script>
<table class="table table-striped table-hover" id="myTable">
<thead>
<tr>
<th>Indent No.</th>
<th>Warehouse</th>
<th>Item</th>
<th>Make/Catno</th>
<th>UOM</th>
<th>Qty</th>
<th>Qty P</th>
<th>Sh Cl</th>
<th>Date</th>
<th>SortDate</th>
<th>Rqt Dt</th>
<th>Sort Rqt Dt</th>
<th>Cost Centre</th>
<th>Remarks</th>
<th>By</th>
<th>Entry</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>INDMSF/16-17/00002</td>
<td>Furnace</td>
<td>Cotton Hand Gloves</td>
<td></td>
<td>pair</td>
<td>12.0</td>
<td>0.0</td>
<td></td>
<td>25/06/16</td>
<td>06/25/16</td>
<td>25/06/16</td>
<td>06/25/16</td>
<td>Kiln . Kiln 1 . Girth Gear</td>
<td></td>
<td>Ashfaque</td>
<td>Ayush Jhunjhunwala</td>
<td><input class="btn btn-default btn-xs" name="154" type="submit" value=">" /></td>
</tr>
<tr>
<td>INDMSF/16-17/00003</td>
<td>Furnace</td>
<td>Bearing 22317 EW33J</td>
<td></td>
<td>no</td>
<td>2.0</td>
<td>2.0</td>
<td></td>
<td>31/08/16</td>
<td>08/31/16</td>
<td>31/08/16</td>
<td>08/31/16</td>
<td></td>
<td></td>
<td>Ashfaque</td>
<td>Ayush Jhunjhunwala</td>
<td><input class="btn btn-default btn-xs" name="155" type="submit" value=">" /></td>
</tr>
</tbody>
</table>
【讨论】:
@Abhradip:: 你检查过这个更新的演示了吗?如果它解决了您的问题,请接受我的回答。 :) 是的,这正是我所需要的。但我正在尝试将此解决方案与我现有的应用程序合并,但我遇到了一些问题。无论如何,你的解决方案帮助了我。谢谢!! @Abhradip:很高兴听到这个消息!祝你好运! :) 还交叉检查外部文件顺序(CSS/JS)并添加自定义 JS。 是的,我坚持。 我无法将它与我现有的应用程序合并。您能否告诉我仅需要哪些特定脚本和样式标记(外部 javascript 和 css)资源才能实现此功能。无需考虑 bootstrap 和 jquery 资源。这些我都已经有了。【参考方案2】:我正在考虑使用宽度相对单位。
尝试使用 font-size: 1.3vw
之类的东西,然后根据需要进行调整。
body
width: 100%;
table
max-width: 100vw;
font-size: 1.3vw;
<table class="table table-striped table-hover" id="indentdatesort">
<thead>
<tr>
<th>Indent No.</th>
<th>Warehouse</th>
<th>Item</th>
<th>Make/Catno</th>
<th>UOM</th>
<th>Qty</th>
<th>Qty P</th>
<th>Sh Cl</th>
<th>Date</th>
<th>SortDate</th>
<th>Rqt Dt</th>
<th>Sort Rqt Dt</th>
<th>Cost Centre</th>
<th>Remarks</th>
<th>By</th>
<th>Entry</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>INDMSF/16-17/00002</td>
<td>Furnace</td>
<td>Cotton Hand Gloves</td>
<td></td>
<td>pair</td>
<td>12.0</td>
<td>0.0</td>
<td></td>
<td>25/06/16</td>
<td>06/25/16</td>
<td>25/06/16</td>
<td>06/25/16</td>
<td>Kiln . Kiln 1 . Girth Gear</td>
<td></td>
<td>Ashfaque</td>
<td>Ayush Jhunjhunwala</td>
<td>
<input class="btn btn-default btn-xs" name="154" type="submit" value=">" />
</td>
</tr>
<tr>
<td>INDMSF/16-17/00003</td>
<td>Furnace</td>
<td>Bearing 22317 EW33J</td>
<td></td>
<td>no</td>
<td>2.0</td>
<td>2.0</td>
<td></td>
<td>31/08/16</td>
<td>08/31/16</td>
<td>31/08/16</td>
<td>08/31/16</td>
<td></td>
<td></td>
<td>Ashfaque</td>
<td>Ayush Jhunjhunwala</td>
<td>
<input class="btn btn-default btn-xs" name="155" type="submit" value=">" />
</td>
</tr>
</tbody>
</table>
尝试在JSfiddle调整结果的大小
更新要删除水平条,请使用overflow-x: hidden;
【讨论】:
你错了。字体没有问题。我只需要省略水平滚动条,同时将整个表格与所有列一起显示。 @克里斯【参考方案3】:试试这个 css,它不会在 590px 屏幕尺寸以上显示滚动。
@media (max-width: 767px)
.table thead > tr > th,
.table tbody > tr > th,
.table tfoot > tr > th,
.table thead > tr > td,
.table tbody > tr > td,
.table tfoot > tr > td
padding: 1px;
font-size: 6px;
@media (min-width: 768px)
.table thead > tr > th,
.table tbody > tr > th,
.table tfoot > tr > th,
.table thead > tr > td,
.table tbody > tr > td,
.table tfoot > tr > td
padding: 2px;
font-size: 8px;
@media (min-width: 992px)
.table thead > tr > th,
.table tbody > tr > th,
.table tfoot > tr > th,
.table thead > tr > td,
.table tbody > tr > td,
.table tfoot > tr > td
padding: 3px;
font-size: 12px;
【讨论】:
不。在小屏幕上,滚动条仍然存在,只是字体变小了。这不是要求。 此外,在您的示例中,所有列都不可见。即使在小型设备上,我也需要查看所有表格列。这是主要要求。以上是关于关于响应式数据表的问题的主要内容,如果未能解决你的问题,请参考以下文章