用纯CSS实现自适应布局表格_html/css_WEB-ITnose

 

以手机、平板等移动设备为平台的浏览行为变得越来越平常,甚至有些人叫嚣PC将死。虽然说的有些夸张,但让你的网站布局能够兼容PC和移动设备这些需求变得越来越重要。这种网页布局就是“自适应布局” (有人喜欢把“Responsive layout”直译成‘响应式布局’,本人觉得‘自适应布局’更本土化) 。这种布局的特点是使用CSS媒体查询语句(@media screen and (…)),能根据页面宽度,让页面布局自动做相应的调整,而不是采用传统的做法,几种不同的尺寸就做几个相适应的页面。

今天要说的是自适应布局技术中的一个难题,就是,如何让table元素也能表现出自适应性。按HTML5的说法,table是一个不鼓励使用的HTML标记,但现实工作中,我们避免不了的偶尔会用到它。那么,怎样让一个传统的表格也表现出自适应性呢?

网上有很多种解决方案,最常见的是配合JavaScript。 css-tricks 里给出了一个用纯CSS实现的,但它需要将一些业务数据写在CSS里。而本文这将提到的一种方法也是用纯CSS实现表格的自适应布局,而且CSS只负责表现,不牵涉业务逻辑和数据。

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

观看演示

假设一种需求,用一个表格来展示付款数据。下面是我们使用的表格和数据:


登录后复制

支付 日期 金额 周期

支付 #1 02/01/2015 $2,311 01/01/2015 – 01/31/2015 支付 #2 03/01/2015 $3,211 02/01/2015 – 02/28/2015

借助伪元素和自定义属性

我们将借助 伪元素:before和:after 的力量。通常, 它们用显示图标类的内容,比如一个箭头,提示,或文字图案(icon)。它的另外一个神奇的功能是元素属性值显示到HTML内容里,content: attr(data-label),放在before/after伪元素类里。沿着这个思路,我们就能够让table在PC端表现成网格效果,而在小屏的手机端表现成流式布局。

我们暂以600px为小屏幕大屏幕的分界点,下面的CSS使用媒体查询语句,在小于600px宽的屏幕上,用CSS将td上的属性值取出来,放到内容区显示。

@media screen and (max-width: 600px) {  table td:before {    content: attr(data-label);    float: left;    text-transform: uppercase;    font-weight: bold;  }}

登录后复制

在大屏幕上的显示效果是这样:

而到了手机设备上,变成了这样:

下面是一个实际效果演示页面,请调整页面窗口的宽度,当可视区域的宽度小于600px时,会触发自适应布局设置的条件,表格变成流式布局:

观看演示

你也可以分别在PC和手机上分别测试这个网页。

完美的实现了自适应布局的效果。

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3108786.html

(0)
上一篇 2025年3月29日 10:07:44
下一篇 2025年3月29日 10:07:52

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论