iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS实现表格响应式布局技巧
  • 957
分享到

JS实现表格响应式布局技巧

2024-04-02 19:04:59 957人浏览 泡泡鱼
摘要

目录正文基本结构的实现使用媒体查询将单个 Table 拆分成多个借助伪元素极其特性,实现表头信息展示最后正文 今天,遇到了一个很有意思的问题,一名群友问我,仅仅使用 CSS,能否实现

正文

今天,遇到了一个很有意思的问题,一名群友问我,仅仅使用 CSS,能否实现这样一种响应式的布局效果:

简单解析一下效果:

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

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

那么,仅仅使用 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:

使用媒体查询将单个 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:

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

下面一步,也就是最为关键的一步,我们如何在子 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;
    righht: 0;
    content: attr(data-label);
  }
}

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

  • 假设一个 HTML 标签定义为: <div data-msg="ABC">
  • 那么该 div 对应的伪类如果设置了 content: attr(data-msg) ,就可以读取到 data-msg 的值,相当于 content:"ABC"

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

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

完整的 DEMO,你可以戳这里:CodePen Demo -- Simple Responsive Table in CSS

最后

伪元素的这个特性其实可以应用在日常效果中的非常多个地方,之前也有多篇文章提到过。

非常小的一个技巧,你学会了吗?本文到此结束,希望对你有帮助 ,更多关于js表格响应式布局的资料请关注编程网其它相关文章!

--结束END--

本文标题: JS实现表格响应式布局技巧

本文链接: https://www.lsjlt.com/news/165363.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS实现表格响应式布局技巧
    目录正文基本结构的实现使用媒体查询将单个 Table 拆分成多个借助伪元素极其特性,实现表头信息展示最后正文 今天,遇到了一个很有意思的问题,一名群友问我,仅仅使用 CSS,能否实现...
    99+
    2022-11-13
  • 怎么用纯CSS实现表格响应式布局
    这篇文章主要讲解了“怎么用纯CSS实现表格响应式布局”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用纯CSS实现表格响应式布局”吧!布局效果:简单解析一...
    99+
    2022-10-19
  • 如何通过Css Flex 弹性布局实现响应式表格布局
    在前端开发中,响应式布局是一个非常重要的概念。随着移动设备的普及,网页需要适应不同的屏幕尺寸,以提供更好的用户体验。而表格是网页中常用的布局方式之一。在本文中,我们将介绍如何利用CSS Flex弹性布局实现响应式表格布局。CSS Flex弹...
    99+
    2023-10-21
    响应式布局 表格布局 Flex 布局
  • 使用CSS实现响应式表格布局的指南
    使用CSS实现响应式表格布局的指南引言:随着移动设备的普及,现代网页设计已经摆脱了固定布局的限制,而转向响应式布局。响应式布局可以使网页在不同的设备上自动适应,并提供更好的用户体验。在本文中,我们将介绍如何使用CSS来实现响应式表格布局,并...
    99+
    2023-11-21
    响应式 CSS 表格布局
  • 使用CSS实现响应式卡片瀑布流布局的技巧
    使用CSS实现响应式卡片瀑布流布局的技巧随着移动设备的普及和网页内容的多样化,响应式设计已经成为现代web开发的基本要求之一。其中,卡片式布局和瀑布流布局都逐渐成为广受欢迎的设计风格。本文将介绍如何使用CSS实现一个响应式的卡片瀑布流布局,...
    99+
    2023-11-21
    响应式 CSS 瀑布流布局
  • 使用CSS实现响应式瀑布流卡片布局的技巧
    使用CSS实现响应式瀑布流卡片布局的技巧,需要具体代码示例在当今移动设备普及的时代,响应式设计已经成为现代网站的必备要素之一。而响应式瀑布流卡片布局作为一种流行的布局方式,可以在不同屏幕尺寸下实现流畅的展示效果。本文将介绍如何使用CSS实现...
    99+
    2023-11-21
    响应式 CSS 瀑布流布局
  • html5响应式布局的技巧有哪些
    这篇文章主要介绍“html5响应式布局的技巧有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“html5响应式布局的技巧有哪些”文章能帮助大家解决问题。 一、什...
    99+
    2022-10-19
  • 掌握position布局的技巧与注意事项:实现响应式布局的实践
    实现响应式布局:position布局的实践和注意事项概述:响应式布局是指根据用户的设备屏幕大小和分辨率自动调整网页内容的布局。在响应式布局中,position布局是常用的一种方法,它可以帮助我们实现不同屏幕尺寸下的元素定位和布局。一、pos...
    99+
    2023-12-26
    注意事项 响应式布局 position布局
  • 使用CSS实现响应式卡片翻转布局的技巧
    使用CSS实现响应式卡片翻转布局的技巧,需要具体代码示例在现代网页设计中,响应式布局已经成为了一个必备的技能。而卡片翻转效果则是一个很酷的设计特效,它能为网页增加一定的交互性和吸引力。本文将介绍如何使用CSS来实现一个响应式卡片翻转布局,并...
    99+
    2023-11-21
    响应式 CSS 卡片翻转
  • 使用CSS实现响应式图片卡片布局的技巧
    使用CSS实现响应式图片卡片布局的技巧随着移动设备的普及和网络速度的提升,人们在浏览网页时越来越重视页面的响应式布局。作为页面设计的关键元素之一,图片在响应式布局中扮演着重要角色。本文将介绍一种使用CSS实现响应式图片卡片布局的技巧,帮助你...
    99+
    2023-11-21
    响应式 CSS 技巧 布局 图片卡片
  • 如何利用CSS实现响应式网格布局
    如何利用CSS实现响应式网格布局随着移动设备的普及和多种屏幕尺寸的出现,响应式网格布局成为了设计和开发人员的关注重点。利用CSS来实现响应式网格布局可以使网页灵活地适应不同的屏幕尺寸和设备。本文将介绍如何利用CSS来实现响应式网格布局,并提...
    99+
    2023-11-21
    响应式 CSS 网格布局
  • HTML布局技巧:如何使用决心布局进行响应式设计
    引言:随着移动设备和平板电脑的不断普及,网页的响应式设计变得越来越重要。在设计和开发网页时,使用决心布局(flexbox layout)可以帮助我们实现灵活的响应式布局。本文将介绍决心布局的基本原理和使用方法,并提供一些实际的代码示例。一、...
    99+
    2023-10-21
    响应式设计 布局技巧 决心布局
  • 利用CSS实现响应式网格布局的指南
    利用CSS实现响应式网格布局的指南网格布局在现代网页设计中扮演着重要的角色,使得网页能够灵活地适应不同设备和屏幕尺寸。在这篇文章中,我们将分享一些利用CSS实现响应式网格布局的指南,并提供具体的代码示例供大家参考。使用CSS网格布局CSS网...
    99+
    2023-11-21
    CSS 响应式 (Responsive) 网格布局 (Grid Layout)
  • bootstrap怎么实现响应式布局
    这篇文章主要介绍“bootstrap怎么实现响应式布局”,在日常操作中,相信很多人在bootstrap怎么实现响应式布局问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”boot...
    99+
    2022-10-19
  • rem如何实现响应式布局
    这篇文章主要介绍“rem如何实现响应式布局”,在日常操作中,相信很多人在rem如何实现响应式布局问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”rem如何实现响应式布局”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-05
  • CSS怎么实现响应式布局
    小编给大家分享一下CSS怎么实现响应式布局,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!用CSS实现响应式布局响应式布局感觉很高大上,很难,但实际上只用CSS也能实现响应式布局要用的就是CSS中的没接查询,下面就介绍一下怎...
    99+
    2023-06-08
  • CSS布局技巧:实现圆形网格图标布局的最佳实践
    在现代网页设计中,网格布局是一种常见且强大的布局技术。而圆形网格图标布局则是一种更加独特和有趣的设计选择。本文将介绍一些最佳实践和具体代码示例,帮助你实现圆形网格图标布局。HTML结构首先,我们需要设置一个容器元素,在这个容器里放置图标。我...
    99+
    2023-10-21
    网格 圆形 CSS布局
  • CSS3响应模式布局怎么实现
    这篇文章主要介绍了CSS3响应模式布局怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CSS3响应模式布局怎么实现文章都会有所收获,下面我们一起来看看吧。REM方法calc()从字面我们可以把他理解为一个...
    99+
    2023-07-04
  • echarts实现响应式定位和布局
    ECharts 图表显示在用户指定高宽的 DOM 节点(容器)中。 有时候我们希望在 PC 和 移动设备上都能够很好的展示图表的内容,实现响应式的设计,为了解决这个问题,EChart...
    99+
    2022-11-13
  • 自适应屏幕的CSS响应式布局设计技巧有哪些
    这期内容当中小编将会给大家带来有关自适应屏幕的CSS响应式布局设计技巧有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。响应式设计目前非常流行自适应设计与响应式设计,而...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作