CSS技巧分享:纯CSS实现表格响应式布局

如何利用纯css实现表格响应式布局?下面本篇文章就来给大家分享超 nice 的表格响应式布局小技巧,希望对大家有所帮助!

CSS技巧分享:纯CSS实现表格响应式布局

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

CSS技巧分享:纯CSS实现表格响应式布局

简单解析一下效果:

立即学习“前端免费学习笔记(深入)”;

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

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

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

那么,仅仅使用 CSS 的话,能否实现这样一个布局呢?答案是可以的。【推荐学习:css视频教程】

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

CSS技巧分享:纯CSS实现表格响应式布局

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

基本结构的实现

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

比较简单,这里没有什么特殊之处,使用

标签或者使用 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技巧分享:纯CSS实现表格响应式布局

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

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

JoyPix AI

JoyPix AI

轻松制作AI视频、AI数字人,支持文生视频、声音克隆

JoyPix AI 243

查看详情 JoyPix AI

@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 的样式

    去掉原本表格的

表头,直接隐藏即可

  • 将原本的一行

  • ,设置为 display: block, 并且设置一个下边距,使之每一个分开

    将原本的一行内的

    形成新的一个子 table

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

    CSS技巧分享:纯CSS实现表格响应式布局

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

    下面一步,也就是最为关键的一步,我们如何在子 table 的每一行,也就是

    以上就是CSS技巧分享:纯CSS实现表格响应式布局的详细内容,更多请关注创想鸟其它相关文章!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
    发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1624868.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2025年12月24日 08:35:39
    下一篇 2025年12月24日 08:36:04

    相关推荐

    • 一文聊聊 9 个冷门的css属性

      可能我们有时候潜意识里认为, 当前实际开发中css属性已经足够用了, 但是前段时间突然想到:”会不会我们只是思维被限制在了常用的css属性中, 从而丧失了创造力”, 就像发明 车 之前大多数人会认为 骑马 已经足够快可以满足自己的需求了, 所以我专门整理了一下自己的学习笔记并…

      2025年12月24日 好文分享
      000
    • 如何写出优雅耐看的css代码?css命名小技巧分享!

      如果使用 css 有一段时间,那么您就会知道继承、特异性和命名是一些最难处理的事情。由于所有 css 都是全局的,随着代码库的增长,防止样式相互冲突并导致意外副作用变得越来越困难!下面本篇文章给大家分享一些css命名小技巧,让我们的代码优雅又耐看,希望对大家有所帮助! CSS命名——BEM BEM是…

      2025年12月24日
      000
    • 巧妙利用 CSS 实现文字二次加粗和多重边框效果

      如何二次加粗文字?如何实现多重边框?下面本篇文章就来给大家介绍一下巧妙利用 css 实现文字二次加粗和多重边框效果,希望对大家有所帮助! p { font-size: 64px; letter-spacing: 6px; font-weight: bold; -webkit-text-stroke:…

      2025年12月24日
      000
    • 聊聊为什么不应该依赖CSS 100vh?

      为什么不应该依赖css 100vh?下面本篇文章就来带大家聊聊原因,希望对大家有所帮助! 如果有一个文本和一个按钮,我们想让文本粘在上面,而按钮粘在下面!使用CSS Flex 似乎很容易做到。【推荐学习:css视频教程】 // HTML Lorem ipsum dolor sit amet… S…

      2025年12月24日 好文分享
      000
    • 手把手带你使用CSS Flex和Grid布局实现3D骰子(附代码)

      在前端面试中,经常会问到如何使用 css 实现骰子/麻将布局。下面本篇文章给大家介绍一下用css 创建一个 3d 骰子(flex和grid布局实现3d骰子)的方法,希望对大家有所帮助! 通过本文可以学到: 使用transform来实现3D形状;给 3D 骰子实现旋转动画;使用 Flex 布局来实现骰…

      2025年12月24日 好文分享
      000
    • CSS小技巧:利用transition保留hover状态

      如何保留 hover 的状态?下面本篇文章给大家介绍一下不借助javascript保留hover状态的方法,希望对大家有所帮助! 通常情况下,hover 是无法保存状态的。鼠标移入触发额外样式,一旦移出就还原了。 el:hover{ color: red} 这就意味着,如果需要保留hover的状态,…

      2025年12月24日 好文分享
      000
    • 看看这两个 CSS 面试题,考察你的基础!

      见微知著,本篇文章给大家分享两道有意思的 css 面试题,考察考察你的基础! 今天在论坛,有看到这样一道非常有意思的题目,简单的代码如下: First Paragraph 样式如下: p#a { color: green;}div::first-line { color: blue;} 试问,标签 …

      2025年12月24日 好文分享
      000
    • CSS媒体查询完全指南(Media Quires)

      本篇文章带大家学习css媒体查询(media quires),详细介绍了媒体查询语法定义,从三个具体布局例子学习媒体查询的使用技巧;并介绍了一些scss、css属性知识。 什么是SCSS Sass: Sass Basics (sass-lang.com) SCSS 是 CSS 的预处理器,它比常规 …

      2025年12月24日 好文分享
      000
    • 手把手带你使用单个标签+CSS实现复杂的棋盘布局

      最近,有群友问我,他们的一个作业,尽量使用少的标签去实现这样一个象棋布局: 他用了 60 多个标签,而他的同学,只用了 6 个,问我有没有办法尽可能的做到利用更少的标签去完成这个布局效果。 其实,对于一个页面的布局而言,标签越少不一定是好事,我们在考虑 DOM 的消耗的同时,也需要关注代码的可读性,…

      2025年12月24日 好文分享
      000
    • CSS实用小技巧:利用视差实现酷炫交互动效

      本文将介绍利用 CSS 实现滚动视差效果的一个小技巧,并且,利用这个技巧来制作一些有意思的交互特效。【学习视频分享:css视频教程、web前端】 关于使用 CSS 实现滚动视差效果,在之前有一篇文章详细描述过具体方案 – CSS 实现视差效果,感兴趣的同学可以先看看这篇文章。 这里,会运…

      2025年12月24日 好文分享
      000
    • CSS新特性学习:方向裁切overflow:clip

      本篇文章将介绍一个新特性,从 chrome 90 开始,overflow 新增的一个新特性 — overflow: clip,使用它,轻松的对溢出方向进行控制。 overflow: clip 为何 首先,简单介绍下 overflow: clip 的用法。 overflow: clip: …

      2025年12月24日 好文分享
      000
    • 原来利用纯CSS也能实现拼图游戏!

      原来利用纯css也能实现拼图游戏!本篇文章就来给将向大家介绍一种将多个 css 技巧运用到极致的技巧,利用纯 css 实现拼图游戏。 本技巧源自于 Temani Afif 的 CodePen CSS Only Puzzle game。一款完全由 CSS 实现的拼图游戏。 我们要做的,就是将散落的图片…

      2025年12月24日 好文分享
      000
    • 详解怎么使用纯CSS实现多行文本的渐隐动画

      本文将探讨一下,在多行文本情形下的一些有意思的文字动效。多行文本,相对于单行文本,场景会复杂一些,但是在实际业务中,多行文本也是非常之多的,但是其效果处理比起单行文本会更困难。 【学习视频分享:css视频教程、web前端】 单行与多行文本的渐隐 首先,我们来看这样一个例子,我们要实现这样一个单行文本…

      2025年12月24日 好文分享
      000
    • 一张图帮你完全掌握CSS所有属性!

      css 属性被分为不同的类型,如字体属性、文本属性、边框属性、边距属性、布局属性、定位属性、打印属性等。对于初学者来说,初学 css 的最大障碍是如何熟悉并掌握这些属性的使用。 提示:不要急于记住每个 CSS 属性,不要急于一下吃透它们的用法,更不能机械记忆,如果使用背英语单词的方法来记忆,效果势必…

      2025年12月24日
      000
    • 20个首页流行布局样式,总有一个可以用上!

      有时我们会在网站上遇到一些内容布局问题,如文字对齐、图片设计与内容和谐、为文章选择合适的字体……在今天的文章中,介绍一些设计精美的创意布局,let‘s  开始。【推荐学习:css视频教程】 代号 001 源码:https://codepen.io/xmark/pen/epeo…

      2025年12月24日 好文分享
      000
    • 利用CSS也能轻松实现超酷炫的转场动画!

      利用css也能轻松实现超酷炫的转场动画了!只需利用最新的 css @scroll-timeline 规范即可。下面本篇文章就通过两个案例来看看利用@scroll-timeline怎么实现超酷炫的转场动画,希望对大家有所帮助! 在 WeGame 的 PC 端官网首页,有着非常多制作精良的基于滚动的动画…

      2025年12月24日 好文分享
      000
    • 深入了解CSS中一个非常有意思的属性 mask

      本篇文章带大家深入了解css中一个非常有意思的属性 mask,希望对大家有所帮助! 顾名思义,mask 译为遮罩。在 CSS 中,mask 属性允许使用者通过遮罩或者裁切特定区域的图片的方式来隐藏一个元素的部分或者全部可见区域。【推荐学习:css视频教程】 其实 mask 的出现已经有一段时间了,只…

      2025年12月24日 好文分享
      000
    • 看看CSS如何利用计数器来实现长按点赞累积动画

      本篇文章给大家分享一个css自定义计数器的使用小技巧,聊聊如何利用它实现长按点赞累积动画,希望对大家有所帮助! 【推荐学习:css视频教程】 在某条 APP 中,如果长按点赞,会出现这样花里胡哨的动画,如下 立即学习“前端免费学习笔记(深入)”; 这个动画有两部分组成,其中这个随机表情的实现可以参考…

      2025年12月24日 好文分享
      000
    • CSS mask-composite高级技巧:单张图片的任意颜色转换

      本篇文章给大家介绍一种基于 css mask-composite 的高级切图技巧,实现基于单张图片的任意颜色转换,希望对大家有所帮助! 通过掌握 CSS mask-composite ,我们可以通过一张 图片,得到关于它的各种变换,甚至乎,得到各种不同颜色的变换。【推荐学习:css视频教程】 通过单…

      2025年12月24日 好文分享
      000
    • css如何排除第一个子元素

      4种方法:1、用“:not()”和“:first-child”,语法“元素:not(:first-child){样式}”;2、用“:nth-of-type”,语法“元素:nth-of-type(n+2){样式}”;3、用“:nth-child”,语法“元素:nth-child(n+2){样式}”;4…

      2025年12月24日 好文分享
      000

    发表回复

    登录后才能评论
    关注微信
    ,设置为 display: block,这样,它们就会竖向排列,使每一个

    内,再展示原本的表头信息呢?

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

    我们只需要简单改造一下代码,给每个

    的 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 对应的伪类如果设置了 content: attr(data-msg) ,就可以读取到 data-msg 的值,相当于 content:"ABC"

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

    CSS技巧分享:纯CSS实现表格响应式布局

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

    CSS技巧分享:纯CSS实现表格响应式布局

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

    原文地址:https://www.cnblogs.com/coco1s/p/16422777.html

    作者:ChokCoco

    (学习视频分享:web前端)