使用CSS第一行冻结表头是在标题下

时间:2013-08-29 20:21:45

标签: html css css-tables

我已经能够冻结我的表头并且标题的宽度和其余行匹配,但是我无法从头部下方显示前两行。

table {
    font-family:Arial, Helvetica, sans-serif;
    color:#666;
    font-size:12px;
    background:#eaebec;
    border:#ccc 1px solid;
    border-radius:3px;
    border-collapse:collapse;
    border-spacing: 0;
    box-shadow: 0 1px 2px #d1d1d1;
}
table th {
    padding:2px 2px 2px 2px;
    border-top:0;
    border-bottom:1px solid #e0e0e0;
    border-left: 1px solid #e0e0e0;
    background: #ededed;
}
table th:first-child {
    text-align: left;
}
table tr:first-child th:first-child {
    border-top-left-radius:3px;
    border-left: 0;
}
table tr:first-child th:last-child {
    border-top-right-radius:3px;
}
table tr {
    text-align: center;
}
table td:first-child {
    text-align: left;
    border-left: 0;
}
table td {
    padding:2px 2px 2px 2px;
    border-top:0;
    border-bottom:1px solid #e0e0e0;
    border-left: 1px solid #e0e0e0;
    white-space: nowrap;
}
table tr:last-child td {
    border-bottom:0;
}
table tr:last-child td:first-child {
    border-bottom-left-radius:3px;
}
table tr:last-child td:last-child {
    border-bottom-right-radius:3px;
}
table tr:hover td {
    background: #F7FE2E;
}
table th,
table td {
    width: 65px;
}
table tr,
table td {
    width: 65px;
    min-width: 65px;
}
#wrapper {
    width: auto;
    height: 850px;
    overflow-x: scroll;
    overflow-y: scroll;
}
thead {
    position: fixed;
}
tbody {
    position: relative;
}

那么有人能指出我如何从头部下方移出前两行吗?如果我需要解释更多或者我是否需要添加我的问题,请告诉我们!

我添加了一些我认为没有解释的内容http://jsfiddle.net/FyJwZ/4/

2 个答案:

答案 0 :(得分:5)

以下是工作顺序中的jsFiddle:http://jsfiddle.net/FyJwZ/7/

这些是我所做的改变

/* this is what will do the trick */
tbody {
    display: block;
    padding-top: 21px;
}

thead {
    z-index: 1; /* put on top of other rows */
}

thead tr td {
    background: #ddd;
}

/* only using !important to override your styles below */
td {
    margin-left: 0 !important;
    width: 100px !important;
}

<强>更新

以下是一个更完整的示例:http://jsfiddle.net/kzuwR/14/

答案 1 :(得分:0)

您已设置thead{position:fixed}。我从来没有在桌面标题上实际使用position:fixed,但我认为它会将它固定在框架的顶部,就像你想要的那样。问题是固定位置元素不占用页面上的任何空间 - 东西正好在它们下方滑动。您应该可以通过向margin-top添加tbody来补偿这一点,如果不起作用,则可以table tr:first-child

如果这也不起作用,我只需在顶部贴上适当大小的空tr并完成它。

编辑:实际上,玩弄你的小提琴,它看起来不像固定位置表格标题是在我的浏览器上正确设置行的宽度。你使用的是什么浏览器?这似乎是可能导致跨浏览器兼容性问题的非常规CSS类型。 (表格往往很棘手。)