本文概述
- 使用纯CSS创建响应表
- 使用CSS和JS创建响应表
- 其他技巧
如果你已经尝试过使大型数据表与响应式设计一起工作, 那么你将知道它的痛苦, 因此, 在本文中, 你将学习如何使用纯CSS甚至是JS的出色实现来创建响应式表。
使用纯CSS创建响应表 为了使一个表响应表, 我们将不集中在表本身上, 而是集中在包含我们表的div上。在这种情况下, 我们将使用媒体查询根据屏幕尺寸来修改类(.table-sensitive)。具有.table-response类的元素在x轴的溢出中需要具有auto作为值。通过使用媒体查询, 我们将对div应用100%的宽度以使其响应。
.table-responsive {min-height: .01%;
overflow-x: auto;
}@media screen and (max-width: 767px) {.table-responsive {width: 100%;
margin-bottom: 15px;
overflow-y: hidden;
-ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid #ddd;
}.table-responsive >
.table {margin-bottom: 0;
}.table-responsive >
.table >
thead >
tr >
th, .table-responsive >
.table >
tbody >
tr >
th, .table-responsive >
.table >
tfoot >
tr >
th, .table-responsive >
.table >
thead >
tr >
td, .table-responsive >
.table >
tbody >
tr >
td, .table-responsive >
.table >
tfoot >
tr >
td {white-space: nowrap;
}}
然后, 你只需要在表格中使用表响应类将div的表独立于大小而包装即可, 如以下示例所示:
<
!-- Don't forget to wrap you table inside a div with the table-responsive class -->
<
div class="table-responsive">
<
table>
<
thead>
<
tr>
<
th>
#<
/th>
<
th>
Field 1<
/th>
<
th>
Field 2<
/th>
<
th>
Field 3<
/th>
<
/tr>
<
/thead>
<
tbody>
<
tr>
<
td>
1<
/td>
<
td>
Value 1<
/td>
<
td>
Value 2<
/td>
<
td>
Value 3<
/td>
<
/tr>
<
tr>
<
td>
2<
/td>
<
td>
Value 1<
/td>
<
td>
Value 2<
/td>
<
td>
Value 3<
/td>
<
/tr>
<
tr>
<
td>
3<
/td>
<
td>
Value 1<
/td>
<
td>
Value 2<
/td>
<
td>
Value 3<
/td>
<
/tr>
<
/tbody>
<
/table>
<
/div>
但是, 请注意, 表的宽度(在不需要响应类的屏幕上)将由表数据定义, 因此, 如果表较小, 则可以通过将宽度设置为100%来设置” 响应性更强” 的表与CSS:
<
div class="table-responsive">
<
table style="width:100%;
">
<
!-- Some content -->
<
/table>
<
/div>
或通过创建一个名为table的类使此属性更明显:
<
style>
/*Or in an external CSS file*/.table{width:100%;
}<
/style>
<
div class="table-responsive">
<
table class="table">
<
!-- Some content -->
<
/table>
<
/div>
使用CSS和JS创建响应表 如果你也想创建使用Javascript的功能最强大的响应表, 那么我们为你提供了一个有趣的解决方案, 以防你能够使用JS。我们正在谈论响应表.js, 这种简单的JS / CSS组合将使你的表适应小型设备屏幕。
注意:仅当第一列是表的键时, 此插件才有用, 并且不仅将始终显示作为第一列的标题, 而且其他内容在小型设备上也可滚动。
怎么运行的 如果你对某些表设计进行分析, 你会发现大多数时候, 第一列是表的唯一键。这提供了其他列的参考, 而列标题提供了所有含义的图例。考虑到这一点, 该插件使我们的响应表始终具有第一列。
文章图片
首先, 在文档中包含所需的js和css文件(请访问插件的主页或Github中的官方存储库):
<
!-- Add the styles -->
<
link href="http://www.srcmini.com/responsive-tables.css" type="text/css" media="screen" rel="stylesheet"/>
<
!-- Add the JS plugin -->
<
script type="text/javascript" src="http://www.srcmini.com/responsive-tables.js">
<
/script>
然后, 与仅使用CSS的第一个示例不同, 要使用此插件使表具有响应性, 你需要向表中添加响应性类:
<
table class="responsive">
<
!-- Information -->
<
/table>
带有响应类的Javascript初始化将自动应用于所有表, 当窗口小于常规平板电脑(因此, 大多数智能手机或超小型平板电脑)较小时, 将在客户端对表进行修改。
其他技巧 隐藏不相关的信息
如果你有一个包含大量数据的表, 并且希望使其在小屏幕设备上可读, 则可以实现许多其他解决方案, 例如, 通过添加一个简单的类来隐藏一些不相关的字段, 该类会以低分辨率隐藏该字段设备, 例如:
/* This media query will hide the fields in devices with a resolution of 320px*/@media screen and (max-width: 320px) {.hide-on-mobile {display: none;
}}
移动隐藏类将在屏幕分辨率低于320px的设备上隐藏具有指定类的元素。所以现在, 我们的表将如下所示:
<
!-- Don't forget to wrap you table inside a div with the table-responsive class -->
<
div class="table-responsive">
<
table>
<
thead>
<
tr>
<
th class="hide-on-mobile">
#<
/th>
<
th>
Field 1<
/th>
<
th>
Field 2<
/th>
<
th>
Field 3<
/th>
<
/tr>
<
/thead>
<
tbody>
<
tr>
<
td class="hide-on-mobile">
1<
/td>
<
td>
Value 1<
/td>
<
td>
Value 2<
/td>
<
td>
Value 3<
/td>
<
/tr>
<
tr>
<
td class="hide-on-mobile">
2<
/td>
<
td>
Value 1<
/td>
<
td>
Value 2<
/td>
<
td>
Value 3<
/td>
<
/tr>
<
tr>
<
td class="hide-on-mobile">
3<
/td>
<
td>
Value 1<
/td>
<
td>
Value 2<
/td>
<
td>
Value 3<
/td>
<
/tr>
<
/tbody>
<
/table>
<
/div>
显示图表而不是表格
如果要获得最佳的用户体验, 则可能需要将小型设备上的任何表转换为图表。几乎所有的图表插件都可以在移动设备和小屏幕上工作, 提供响应支持。
文章图片
【如何使用CSS创建响应表】你可以使用HighchartTablePlugin或Chartinator之类的已知插件。
玩得开心 !
推荐阅读
- React Native –为什么它是移动应用程序开发的最佳选择()
- 如何使用CSS将reCAPTCHA元素居中
- 如何高效优雅地管理接口文档
- 复杂多变场景下的Groovy脚本引擎实战
- 一步一步搭建Svn服务之TortoiseSVN基本操作
- InfluxDB数据接入MQTT
- Alibaba微服务技术系列「Dubbo3.0技术专题」总体技术体系介绍及技术指南(序章)
- Ant Design Pro V4.5 从服务器请求菜单(typescript版)
- #导入MD文档图片# RabbitMQ 群集安装