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

本文深入解析如何使用CSS实现网页布局中绿色锁定列的效果,通过设置元素定位、宽度、背景色等属性,使列在滚动时保持固定,与黄色背景形成对比,提升用户体验。
         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; }


153757_XDke_1540190.png

这是从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.  下面代码正常了。

<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; }


161010_L4m3_1540190.png











转载于:https://my.oschina.net/u/1540190/blog/351484

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值