前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >table锁定列的一个方法.及琢磨思路

table锁定列的一个方法.及琢磨思路

作者头像
申君健
发布2018-09-21 15:41:50
1.4K0
发布2018-09-21 15:41:50
举报
文章被收录于专栏:前端侠2.0
代码语言:javascript
复制
         div { 
            width: 600px; 
            overflow-x:scroll;  
            margin-left:5em; 
            border:1px solid red;
        }
        .headcol {
            position:absolute; 
            width:5em; 
            background-color:green;
            left:0;
            top:auto;  
        }
        .long { background:yellow; letter-spacing:1em; }

这是从http://stackoverflow.com找到一个一链接,删除多余的css,加上色就是上图。

原理就是:

td加上 absolute,它会脱离table的文档流,不再占位。而table左边加上margin,空出td的位置 来。td的定位还是在div内。所以它就在那个绿色margin中了。

最最重要的是div不能加上relative.否则绿色的锁定列就到div里而去了。它就会随着滚动而滚动。

现成给body加上padding:20px,会发现绿黄之间有了间隔。这是因为absolute元素向上找它的相对位置时,直接找到body元素上。absolute元素不考虑padding,而div(红框)整体右移了。

这样,要让绿色不顶着左侧,要加两层div.  下面代码正常了。

代码语言:javascript
复制
<div class='out'><div class='in'><table>
body{
    padding:20px;
}     
div.out{
    position:relative;
}
div.in { 
            width: 600px; 
            overflow-x:scroll;  
            margin-left:5em; 
            border:1px solid red;
 
        }
 
        .headcol {
            position:absolute; 
            width:5em; 
            background-color:green;
            left:0;
            top:auto;  
        }
        .long { background:yellow; letter-spacing:1em; }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014/12/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档