html横向table,仿segmentfault-table横向滚动

博客作者遇到一个问题,即在移动端访问时,如果表格列数过多,会导致显示不全。通过Chrome浏览器发现SegmentFault网站使用了`table-wrap`来解决此问题。当表格宽度大于文章宽度时,会给表格添加`table-wrap`类,实现横向滚动。作者提供了JavaScript代码片段来检测并包裹宽度超限的表格,并给出了两种CSS方案:一种是只对超宽表格应用`overflow-x: scroll;`,另一种是为所有表格添加`overflow-x: auto;`,使每个表格都有横向滚动条。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

自己的博客在用移动端访问时,如果table的列数足够多会显示不全,如下图红圈所示

bVbgjlz?w=800&h=938

正常情况如图

bVbgjlM?w=2066&h=244

解决过程

使用chrome发现segmentfault的解决方法是在table上套一个table-wrap,如下图蓝色背景和红圈所示

bVbgjlV?w=2766&h=1476

首先想到直接在table上套一个table-wrap即可

接着查看别的table时发现并不是每一个table都被套上一个table-wrap,如下图所示,也就是说只有显示不全的table才会套上table-wrap

bVbgjlZ?w=2738&h=1412

table什么情况是显示不全?

那就是table的宽度 > 文章的宽度

通过以上分析可以得出简单的步骤:

获取文章的宽度(articleWidth)

获取所有的table

找出比articleWidth宽的table

使其被.table-wrap包囊

let articleWidth = document.getElementById('文章').clientWidth;

let tables = $('table');

tables.each((index, table) => {

if (table.clientWidth > articleWidth) {

table.outerHTML = "

" + table.outerHTML + "
";

}

});

别忘了补上css

.table-wrap{

overflow-x: scroll;

}

其实不用判断table的宽度 > 文章的宽度也能实现,让每一个table都套上.table-wrap,使用如下css

.table-wrap{

overflow-x: auto;

}

这样的话只是会在html上多一点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值