怎么用纯CSS实现表格响应式布局

布局效果:

怎么用纯CSS实现表格响应式布局

简单解析一下效果:

  • 在屏幕视口较为宽时,表现为一个整体 Table 的样式

  • 而当屏幕视口宽度较小时,原 Table 的每一行数据单独拆分为一个 Table 进行展示

很有意思的一个响应式布局,让信息在小屏幕下得到了一种不错的展示。

那么,仅仅使用 CSS 的话,能否实现这样一个布局呢?答案是可以的

首先,肯定会用到媒体查询,这个不难看出。另外,我们观察下拆分后的每一组数据:

怎么用纯CSS实现表格响应式布局

都会存在一组原本整体一个 Table 时的表头信息,主要的难点就是在这里,我们如何在拆分成一个一个的子 Table 展示时,同时展示这些表头信息?

基本结构的实现

首先,我们先实现常规宽屏下的 HTML 及对应的 CSS。

比较简单,这里没有什么特殊之处,使用 <table> 标签或者使用 div、ul 等标签进行模拟一个表格都可以。

<table>  <caption>Lorem ipsum !</caption>  <thead>    <tr>      <th>Account</th>      <th>Due Date</th>      <th>Amount</th>      <th">Period</th>    </tr>  </thead>  <tbody>    <tr>      <td data-label="Account">Visa - 3412</td>      <td data-label="Due Date">04/01/2016</td>      <td data-label="Amount">$1,190</td>      <td data-label="Period">03/01/2016 - 03/31/2016</td>    </tr>    // ... 重复多组  </tbody></table>

得到这样一个简单的 Table:

怎么用纯CSS实现表格响应式布局

使用媒体查询将单个 Table 拆分成多个

下一步也很简单,设定合适的阈值(视实际业务情况而定),使用媒体查询将单个 Table 拆分成多个子 Table。

@media screen and (max-width: 600px) {  table {    border: 0;  }    table thead {    display: none;  }  table tr {    display: block;    margin-bottom: 10px;  }  table td {    border-bottom: 1px solid #ddd;    display: block;  }}

这里做的事情也非常简单:

  • 利用媒体查询,设定屏幕宽度小于 600px 的样式

  • 去掉原本表格的 <thead> 表头,直接隐藏即可

  • 将原本的一行 <tr>,设置为 display: block, 并且设置一个下边距,使之每一个分开

  • 将原本的一行内的 <td>,设置为 display: block,这样,它们就会竖向排列,使每一个 <tr> 形成新的一个子 table

好,这样,再屏幕宽度小于 600px 时,我们就得到了这样一个 Table:

怎么用纯CSS实现表格响应式布局

借助伪元素及其特性,实现表头信息展示

下面一步,也就是最为关键的一步,我们如何在子 table 的每一行,也就是 <td> 内,再展示原本的表头信息呢?

这里其实也非常简单,只是简单的运用了伪元素,极其可以读取 HTML 标签属性的小特性实现。

我们只需要简单改造一下代码,给每个 <td> 的 HTML,带上与之对应的表头列描述信息:

<table>  // 上方信息保持一致  <tbody>    <tr>      <td data-label="Account">Visa - 3412</td>      <td data-label="Due Date">04/01/2016</td>      <td data-label="Amount">$1,190</td>      <td data-label="Period">03/01/2016 - 03/31/2016</td>    </tr>    <tr>      <td scope="row" data-label="Account">Visa - 6076</td>      <td data-label="Due Date">03/01/2016</td>      <td data-label="Amount">$2,443</td>      <td data-label="Period">02/01/2016 - 02/29/2016</td>    </tr>    // ... 每个 tr 进行同样的处理  </tbody></table>

接着,借助 td 的伪元素,实现表头信息的展示即可:

@media screen and (max-width: 600px) {  // ... 保持一致  table td {    position: relative;    display: block;    text-align: right;  }  table td::before {    position: absolute;    left: 10px;    right: 0;    content: attr(data-label);  }}

这里,我们核心的知识点就是利用了元素的伪元素可以在 content 属性里,读取其 HTML 元素内的属性内容,并进行展示的知识点。

  • 假设一个 HTML 标签定义为: <div data-msg="ABC">

  • 那么该 div 对应的伪类如果设置了 content: attr(data-msg) ,就可以读取到 data-msg 的值,相当于 content:"ABC"

这样,我们在小屏幕下,就得到了这样一种效果:

怎么用纯CSS实现表格响应式布局

完整的效果,即如题图所示:

怎么用纯CSS实现表格响应式布局

感谢各位的阅读,以上就是“怎么用纯CSS实现表格响应式布局”的内容了,经过本文的学习后,相信大家对怎么用纯CSS实现表格响应式布局这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

文章标题:怎么用纯CSS实现表格响应式布局,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/24365

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月10日 下午11:57
下一篇 2022年9月10日 下午11:59

相关推荐

  • powerpoint的主要功能有哪些

    powerpoint的主要功能是创建演示文稿;用户还可以在投影仪或者计算机上进行演示,也可以将演示文稿打印出来,PPT适用于工作汇报、企业宣传、产品推介、婚礼庆典、项目竞标、管理咨询、教育培训等领域,并具有相册制作、文稿合并、运用母板、图片运动、动画控制等功能。 本教程操作环境:windows10系…

    2022年9月15日
    2.6K00
  • windows trustedinstaller.exe占用内存如何解决

    名列前茅种解决方法:硬件上解决 在硬件上解决,增加内存条,如2G内存升级到4G或者8G等容量。一般提示内存不足,在非病毒或者木马的情况下说明你的电脑硬件不足,在资金充足的情况下可以新增内存条。 第二种解决方法:等系统更新完成(在空闲时更新) 在不想投入硬件的情况下,我们又想更新完成,怎么办呢?只有等…

    2022年9月2日
    49200
  • SpringBoot怎么进行整合Druid数据源

    1.自定义方式 使用自定义方式整合Druid 1.添加依赖 在pom.xml添加相关依赖 <!–数据库相关–> <dependency> <groupId>org.springframework.boot</groupId> <artifac…

    2022年9月15日
    55800
  • 如何进行XiaoBa勒索病毒变种分析

    概述 XiaoBa勒索病毒,是一种新型电脑病毒,是一款国产化水平极高的勒索病毒,主要以邮件,程序木马,网页挂马的形式进行传播。这种病毒利用各种加密算法对文件进行加密,被感染者一般无法解密,必须拿到解密的私钥才有可能破解。倒计时200秒还不缴赎金,被加密的文件就会被全部销毁。 以上说明摘自百度百科,但…

    2022年9月21日
    72200
  • Word尾注怎么移动到特定位置

    尾注移动到特定位置的方法: 1、首先打开进入word,然后将自己的光标放到文字后。 2、然后去点击任务选项栏中的“引用”。 3、之后再去点击“插入尾注”。 4、选中自己的尾注之后,右击选择“脚注和尾注”。 5、最后要注意去勾选“尾注”, 然后可以自己选择“节的结尾”或者“文档结尾”来移动了。 到此,…

    2022年8月31日
    1.7K00
  • config文件有什么作用

    config文件是软件或者系统中配置文件的意思;该文件中包含了设置和配置信息以及不同的程序可以以不同的格式存储这些数据,并且不建议删除该文件,因为该文件在用户开机这段时间对计算机进行初始化设置,也就是用户对系统的设置都由该文件来对计算机进行恢复。 本教程操作环境:windows10系统、DELL G…

    2022年9月15日
    2.1K00
  • 服务器升级要什么设备

    摘要 服务器升级是一个复杂而多维的过程,包括但不限于1、处理器(CPU)、2、内存(RAM)、3、存储设备、4、网络接口卡(NIC)以及5、电源供应单位(PSU)等关键设备的升级。升级处理器(CPU)是提高服务器性能的关键步骤之一,它能够显著提升数据处理能力和运行效率,从而帮助企业充分利用现代软件的…

    2024年4月23日
    500
  • windows浩辰cad看图王可以画图吗

    浩辰cad看图王可以画图吗 答:浩辰cad看图王有简单的画图功能。 1、浩辰cad看图王主要还是用来看图的,无法用它代替autocad来画图。 2、不过其中有一些简单的画图功能。 3、在绘图工具下,可以在图纸中添加直线、文字、圆形、矩形等图形。 4、还可以添加线性、对齐、角度、坐标、直径、半径等数据…

    2022年9月21日
    53100
  • XML外部实体注入漏洞的示例分析

    一、XML外部实体注入 XML 外部实体注入漏洞也就是我们常说的 XXE 漏洞。XML 作为一种使用较为广泛的数据传输格式,很多应用程序都包含有处理 xml 数据的代码,默认情况下,许多过时的或配置不当的 XML 处理器都会对外部实体进行引用。 如果攻击者可以上传 XML 文档或者在 XML 文档中…

    2022年9月20日
    1.2K00
  • win8如何取消开机启动项

    win8取消开机启动项的方法 1、 点击电脑开始键,找到设置。 2、点击应用选项。 3、点进去之后这里有一个启动,点进去。 4、想要关闭的应用,这里点击后面的关闭就可以了。 关于“win8如何取消开机启动项”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频…

    2022年9月24日
    65300
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部