Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >纯CSS实现响应式表格

纯CSS实现响应式表格

作者头像
Jace
发布于 2018-08-01 09:26:53
发布于 2018-08-01 09:26:53
2.3K00
代码可运行
举报
文章被收录于专栏:进步博客进步博客
运行总次数:0
代码可运行

先看DEMO

自从转岗至腾讯云后,项目中接触到大量的数据表格。多列数据表格在空间有限的手机屏幕下,难以完美呈现,需要做响应式处理。本文介绍一种使用纯CSS实现响应式表格的方法。

通常表格中的一行代表一条项目,每列代表项目的一个属性方面(即字段)。在屏幕空间充足的情况下,我们可以将表格的每列都完全显式在屏幕上,但在手机下,每列内容会拥挤不堪,甚至出现横向滚动条,用户快速了解每条项目基本情况的效率会大打折扣。

一种优化方法是:使用media queries监测屏幕viewport小于568px时,让单元格(td)独占一行,每行(tr)相互隔离,如同每条项目为一独立的表格,如下图:

现在每条项目便于阅读了,但表头(th)与对应的单元格(td)隔离开了,单元格的具体意义难以理解。那么,隐藏掉表格的thead,单元格内容右对齐,在每个单元格前面插入对应的表头(th)即可解决这个问题,如下图:

伪元素(:before)结合att()表达式(获取伪元素所依附元素的HTML属性值)可完成此任务。当然,我们首先要对每个单元格(td)元素改造:

样式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
table {
    border: 1px solid #ccc;
    width: 100%;
    margin: 0;
    padding: 0;
    border-collapse: collapse;
    border-spacing: 0;
}

table tr {
    border: 1px solid #ddd;
    padding: 5px;
}

table th,
table td {
    padding: 10px;
    text-align: center;
}

table th {
    text-transform: uppercase;
    font-size: 14px;
    letter-spacing: 1px;
}

/* <= 568px */
@media screen and (max-width: 35.5em) {
    table {
        border: 0;
    }
    table thead {
        display: none;
    }
    table tr {
        margin-bottom: 10px;
        display: block;
        border-bottom: 2px solid #ddd;
    }
    table td {
        display: block;
        text-align: right;
        font-size: 13px;
        border-bottom: 1px dotted #ccc;
    }
    table td:last-child {
        border-bottom: 0;
    }
    table td:before {
        content: attr(data-label);
        float: left;
        text-transform: uppercase;
        font-weight: bold;
    }
}

大功告成了吗?某些屏幕阅读器(如OSX 和iOS下voiceOver)可朗读伪类插入的内容,这 是否造成了过度提示,会不会影响屏幕阅读器用户的访问效率。而某些屏幕阅读器与浏览器的组合又不会朗读,如何优化呢?

参考资料: Responsive Tables in Pure CSS

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015/04/082,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
IT课程 CSS基础 029_列表和表格
CSS 中 可以通过 list-style-type list-style-image list-style-position 等属性优化列表样式。
zhaoJian.Net
2024/04/03
1220
IT课程 CSS基础 029_列表和表格
请不要忘了,有一个值叫 inherit
该文章展示了一个简单的表格,表格中包含三个单元格,每个单元格中包含一个标题和一段描述文字。表格的样式使用了CSS样式表进行设置,包括单元格的边框、背景颜色、字体颜色和字号等。在表格中,还使用了一些伪元素来添加一些特效,如阴影和渐变等。此外,文章还介绍了一些常用的CSS属性,如float、position、display和flex等,以及如何使用它们来布局和样式表格和其他元素。
练小习
2017/12/29
1.1K0
请不要忘了,有一个值叫 inherit
uni-app 非常易用的表格控件,用来排版展示很好用
加菲猫的VFP
2023/11/10
1.4K0
uni-app 非常易用的表格控件,用来排版展示很好用
7.表格样式-CSS基础
一、表格标题位置(caption-side) 默认情况下,表格标题是在表格的上方。 在CSS中,可以使用caption-side属性来定义表格标题的位置。 caption-side属性是在table元素中定义(也可以在caption元素中定义)。 1.标题位置 (1)语法格式 caption-side:取值; ① caption-side属性值 属性值 说明 top 标题在顶部(默认) bottom 标题在底部 ② 示例 Ⅰ.例1 <!DOCTYPE html> <html xmlns="htt
见贤思齊
2020/10/29
1.4K0
7.表格样式-CSS基础
【Web前端】CSS 样式化表格
表格在网页设计中扮演了重要角色,尤其是在展示数据和信息时。尽管 HTML 表格提供了结构化的数据展示,但要使其看起来既美观又实用,CSS 样式化至关重要。
一条晒干的咸鱼
2024/11/19
2200
【Web前端】CSS 样式化表格
读书笔记《CSS权威指南》
阅读本书主要目的: 自从学会CSS以来,虽然熟练掌握了其使用方法和技巧,但对其底层的原理和实现并不清晰,阅读本书想进一步系统化的学习和深入研究其本质,对这门前端基础语言从熟练使用到真正理解。  第1章 CSS和文档 1.1 WEB的衰落(为了表现增加很多标记元素如font等,这些阻碍了页面的结构化) 1.2 CSS作救星(95年W3C发布正在进行的CSS计划) CSS特点:丰富的样式;易于使用和维护;可以在多个页面重复使用;方便层叠;缩减文件大小;为将来做准备(为解决HTML结构化而生,实现结构和表现分离
小古哥
2018/03/08
1.3K0
读书笔记《CSS权威指南》
【HTML/CSS篇】牛客题库练习
【HTML/CSS】牛客题库练习 1. HTML 1.1 FED1-表单类型 ⭐方法1 🌸注意 1.2 FED2-表格结构 ⭐方法1 🌸注意 1.3 FED3-图像标签属性 ⭐方法1 🌸注意 1.4 FED4-新窗口打开文档 ⭐方法1 🌸注意 1.5 FED5-自定义列表 ⭐方法1 🌸注意 1.6 FED73-加粗字体 ⭐方法1 🌸注意 1.7 FED6-语义化标签 ⭐方法1 🌸注意 1.8 FED7- 音频媒体标签属性 ⭐方法1 🌸注意 1.9 FED7- 音频媒体标签属性 ⭐方法1 🌸注意 2. CS
司六米希
2022/11/15
1.2K0
【HTML/CSS篇】牛客题库练习
第84天:jQuery动态创建表格
jQuery动态创建表格 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>动态创建表格</title> 6 <script src="jquery-1.11.1.js"></script> 7 <style> 8 table { 9 border-collapse: collapse; 10
半指温柔乐
2018/09/11
2K0
表格使用总结
细线表格: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>细线表格</title> <style type="text/css"> table{ border-collapse:collapse; } td{height:30px;width:50px;border-spacing:0px;border-collapse:collapse;} </style> </head> <body> <h4>这个表格没
windseek
2018/06/14
4430
49个常用的CSS代码片段,建议整理收藏
text-shadow 为网页字体添加阴影,通过对text-shadow属性设置相关的属性值。
前端达人
2021/07/16
2.2K0
超 Nice 的表格响应式布局小技巧
今天,遇到了一个很有意思的问题,一名群友问我,仅仅使用 CSS,能否实现这样一种响应式的布局效果:
Sb_Coco
2022/06/30
1.5K0
超 Nice 的表格响应式布局小技巧
表格行与列边框样式处理的原理分析及实战应用
导语: table之间的边框存在共用问题,自然而然就存在冲突。既然存在冲突,那么就势必涉及到最后渲染哪一个样式的问题。本文就主要研究当冲突产生时,如何让浏览器按照自己意愿渲染冲突边框。在这篇文章中都有
韩宇波
2017/10/30
5.3K6
表格行与列边框样式处理的原理分析及实战应用
JavaScript/CSS制作一个简易表格搜索功能
提示: 如果你要搜索第二列,可以将 tr[i].getElementsByTagName('td')[0] 中的 [0] 变为 [1]。
小颖club
2022/04/11
2K0
利用css 设计markdown 主题
Markdown 入门 :文章目录生成、合并单元格、文章快速插入链接(使用剪切板的链接插到选中文字)【修订】
公众号iOS逆向
2021/07/29
5450
IT课程 HTML基础 012_列表和表格
HTML列表是在网页中组织和呈现信息的重要元素,通过使用不同类型的列表,可以更好地结构化和展示内容。
zhaoJian.Net
2024/04/03
1540
IT课程 HTML基础 012_列表和表格
css基本样式1(7.1)
2.盒模型 盒模型内容的width、height、padding内边距、border、margin外边距。
bamboo
2019/01/29
8790
css基本样式1(7.1)
WEB入门 四 CSS样式表深入
上一章学习了CSS的语法基础及文字效果,学习了3种选择器,选择器是CSS中非常重要的概念,本章将深入学习选择器的知识,主要包括选择器的集体声明和嵌套。面向对象编程语言中有为了实现代码的重用有继承的特性,而CSS中也有可以使用继承的特性实现代码的重用。
张哥编程
2024/12/17
2430
css基础教程之列表和表格
list-style:<' list-style-type '> || <' list-style-position '> || <' list-style-image '>
老雷PHP全栈开发
2020/07/02
8220
CSS重要的盒子模型
新浪导航栏的核心就是因为里面的字数不一样多,所以我们不方便给宽度,还是给padding ,撑开盒子的。
乐心湖
2020/07/31
1.1K0
CSS重要的盒子模型
CSS入门学习笔记+案例
使用单独的 .CSS 文件定义,然后在页面中使用 link标签 或 @import指令 引入
全栈程序员站长
2022/08/15
1.6K0
CSS入门学习笔记+案例
相关推荐
IT课程 CSS基础 029_列表和表格
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验