html实现文字在表格上方左侧,html实现固定表格四周并且可以上下左右滚动

5268f80b9b1e01f982625ef6fac83ca1.png

这篇文章主要为大家详细介绍了固定表格四周实现表格上下左右滚动的解决方法,表格上下滚动时,表格头尾固定;左右滚动的时候表格,表格第一列最后一列固定,本文为大家提供了思路,感兴趣的小伙伴们可以参考一下

问题:

最近做项目统计的时候碰见一个特定的需求,要求表格上下滚动时,表格头尾固定;左右滚动的时候表格,表格第一列最后一列固定。

先上效果图可能会更明了些:

左右滚动时,两列固定,头尾中间部分跟着滚动。

080752a450fd6c29ad6db30a3cecdb37.png

上下滚动时,头尾固定,第一列和最后一列中间部分跟着滚动。

a4ebdaeb70a82980bda5338d1257b88e.png

思路:

思考了很久发现,如果单纯的用表格基本很难实现,上下滚动的时候存在相互矛盾的地方。最后换了个思路去用p布局,仿表格设计,来实现这样的效果。

解决:

1、整体布局:分为上中下三部分,即header,body,footer三个部分。body固高。实现上下滚动。是不是很简单,哈哈。

2、header布局:分为left container right,left10%宽度左浮动,container80%宽度左浮动,right10%宽度左浮动。container里面加一个数据实际宽度的容器column-container(相对定位)。

3、body,footer同header。

4、控件核心:生成一个宽度同container同宽的(80%)p,里面放置一个同column-container实际数据宽度相同的p(如id=Scroll)。来模拟左右滚动条。

JavaScript Code复制内容到剪贴板$("#Scroll").scroll(function () {

var scrollLeft = $(this).scrollLeft();

$(".column-container").css({ "left": -scrollLeft + "px" });

});

即,模拟的滚动条去控制header body footer 中的column-container滚动。这样就实现了左右滚动时固定了两列,同时头尾行的container也跟着滚动。

结语:

由于代码样式等贴出来太冗长了,在这里就只说说思路了,动手试试吧。

【相关推荐】

1. HTML免费视频教程

2. 详解前端开发常用的HTML标签

3. 通过marquee标签完成滚动效果的纯html代码

4. 用HTML编写个人简历的代码实例

5. 分享三种创建新元素的方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现部分列冻结并且不随着横向滚动条移动,可以使用 CSS 的 position 属性和 z-index 属性来实现。 首先,将表格分为两个部分,左边是需要冻结的列,右边是不需要冻结的列。然后将左边的表格使用 position: fixed; 和 z-index: 1; 属性进行固定定位,并设置宽度和表头行高。同时,将右边的表格使用 margin-left 属性将其向右移动与左边表格相同的距离,并设置 z-index: 0; 属性。 具体代码如下: HTML: ``` <div class="table-wrapper"> <table class="left-table"> <thead> <tr> <th>Column 1</th> <th>Column 2</th> <th>Column 3</th> </tr> </thead> <tbody> <tr> <td>Row 1, Column 1</td> <td>Row 1, Column 2</td> <td>Row 1, Column 3</td> </tr> <tr> <td>Row 2, Column 1</td> <td>Row 2, Column 2</td> <td>Row 2, Column 3</td> </tr> </tbody> </table> <table class="right-table"> <thead> <tr> <th>Column 4</th> <th>Column 5</th> <th>Column 6</th> <th>Column 7</th> </tr> </thead> <tbody> <tr> <td>Row 1, Column 4</td> <td>Row 1, Column 5</td> <td>Row 1, Column 6</td> <td>Row 1, Column 7</td> </tr> <tr> <td>Row 2, Column 4</td> <td>Row 2, Column 5</td> <td>Row 2, Column 6</td> <td>Row 2, Column 7</td> </tr> </tbody> </table> </div> ``` CSS: ``` .table-wrapper { position: relative; overflow-x: scroll; } .left-table { position: fixed; top: 0; left: 0; z-index: 1; width: 200px; border-collapse: collapse; background-color: #fff; } .right-table { margin-left: 200px; z-index: 0; border-collapse: collapse; } th, td { border: 1px solid #ddd; padding: 8px; text-align: left; } th { background-color: #f2f2f2; height: 50px; } ``` 在上面的代码,我们将两个表格放在一个包裹 div ,并将 div 的 overflow-x 属性设置为 scroll,以便在表格宽度超出 div 宽度时出现横向滚动条。 左边的表格使用 position: fixed; 和 z-index: 1; 属性进行固定定位,并设置宽度和表头行高。右边的表格使用 margin-left 属性将其向右移动与左边表格相同的距离,并设置 z-index: 0; 属性。 这样,左边的列就会被冻结在页面上方,不会随着横向滚动条移动,而右边的列则会随着横向滚动条移动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值