Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript冻结表头_Javascript_Jquery_Html - Fatal编程技术网

如何使用javascript冻结表头

如何使用javascript冻结表头,javascript,jquery,html,Javascript,Jquery,Html,我有一张200行的桌子。第一行有标题(th标记)。当我向下滚动时,标题是固定的,并且对所有行可见。有什么帮助吗 谢谢你最简单的答案,看看这个-> 一个警告:不适用于IE 7-9(适用于6和10)。如果您需要7-9的解决方案,请尝试。您甚至可以将JS设置为仅用于IE 7-9版本,方法是将JS的javascript调用放入其中。然后你会知道任何使用更好浏览器的人都会使用纯CSS(更快),你会为那些使用垃圾的人找到一个解决方案。。。我是说7、8或9 它基本上与CSS有关。一键是将表体设置为disp

我有一张200行的桌子。第一行有标题(th标记)。当我向下滚动时,标题是固定的,并且对所有行可见。有什么帮助吗


谢谢你

最简单的答案,看看这个->


一个警告:不适用于IE 7-9(适用于6和10)。如果您需要7-9的解决方案,请尝试。您甚至可以将JS设置为仅用于IE 7-9版本,方法是将JS的javascript调用放入其中。然后你会知道任何使用更好浏览器的人都会使用纯CSS(更快),你会为那些使用垃圾的人找到一个解决方案。。。我是说7、8或9


它基本上与CSS有关。一键是将表体设置为
display:block
。另一个问题是处理固定宽度。看看吧。复制那个例子真的很容易

真的没什么可说的了!这个例子是纯CSS,没有JS

CSS HTML

单元格内容1
单元格内容2
单元格内容3
更多单元格内容1
更多单元内容2
更多单元格内容3
更多单元格内容1
更多单元内容2
更多单元格内容3
重复1
重复2次
重复3次
...
...
...
单元格内容1结尾
单元格内容结束2
单元格内容3结束

Maybe的可能重复是您想尝试的……您可能想看看这个问题:是的,这里的答案使用javascript,它可以在没有任何可能重复的@Stano lol的情况下完成,因为您将宽度设置为100%。你需要固定的宽度才能使它完美。是的,我遗漏了container div。这就是我提供链接的原因,它有完整的示例。无论如何,现在更新答案以包括一个JSFIDLE,我看到了!哈哈,有趣的是它在IE 5、6和10中工作!但不是在7到9中!把它留给微软吧。我相信稍微调整一下CSS,你就可以找到一个IE 7-9特定的CSS设置来添加。我可能已经为你的IE问题找到了解决方案,我更新了答案,但链接是:@Stano不一定正确。我为几家公司工作过,就像我现在一样,他们拒绝IE,只使用Chrome或FF。另外,如果你检查一下,IE正在失去很多市场份额,而Chrome现在是世界上最受欢迎的。当然,大多数军事和医疗仍然使用IE7或IE8,但即使是它们最终也会出现。如果你想确保IE用户获得与chrome用户相同的体验,还可以选择在你的网站上使用chrome插件。此外,您可以简单地使用IE注释,如前所述,将插件隔离为仅使用IE,从而提供更好的浏览器和更好的体验
/* define height and width of scrollable area. Add 16px to width for scrollbar          */
div.tableContainer {
    clear: both;
    border: 1px solid #963;
    height: 285px;
    overflow: auto;
    width: 756px
}

/* Reset overflow value to hidden for all non-IE browsers. */
html>body div.tableContainer {
    overflow: hidden;
    width: 756px
}

/* define width of table. IE browsers only                 */
div.tableContainer table {
    float: left;
    width: 740px
}

/* define width of table. Add 16px to width for scrollbar.           */
/* All other non-IE browsers.                                        */
html>body div.tableContainer table {
    width: 756px
}

/* set table header to a fixed position. WinIE 6.x only                                       */
/* In WinIE 6.x, any element with a position property set to relative and is a child of       */
/* an element that has an overflow property set, the relative value translates into fixed.    */
/* Ex: parent element DIV with a class of tableContainer has an overflow property set to auto */
thead.fixedHeader tr {
    position: relative
}

/* set THEAD element to have block level attributes. All other non-IE browsers            */
/* this enables overflow to work on TBODY element. All other non-IE, non-Mozilla browsers */
html>body thead.fixedHeader tr {
    display: block
}

/* make the TH elements pretty */
thead.fixedHeader th {
    background: #C96;
    border-left: 1px solid #EB8;
    border-right: 1px solid #B74;
    border-top: 1px solid #EB8;
    font-weight: normal;
    padding: 4px 3px;
    text-align: left
}

/* make the A elements pretty. makes for nice clickable headers                */
thead.fixedHeader a, thead.fixedHeader a:link, thead.fixedHeader a:visited {
    color: #FFF;
    display: block;
    text-decoration: none;
    width: 100%
}

/* make the A elements pretty. makes for nice clickable headers                */
/* WARNING: swapping the background on hover may cause problems in WinIE 6.x   */
thead.fixedHeader a:hover {
    color: #FFF;
    display: block;
    text-decoration: underline;
    width: 100%
}

/* define the table content to be scrollable                                              */
/* set TBODY element to have block level attributes. All other non-IE browsers            */
/* this enables overflow to work on TBODY element. All other non-IE, non-Mozilla browsers */
/* induced side effect is that child TDs no longer accept width: auto                     */
html>body tbody.scrollContent {
    display: block;
    height: 262px;
    overflow: auto;
    width: 100%
}

/* make TD elements pretty. Provide alternating classes for striping the table */
/* http://www.alistapart.com/articles/zebratables/                             */
tbody.scrollContent td, tbody.scrollContent tr.normalRow td {
    background: #FFF;
    border-bottom: none;
    border-left: none;
    border-right: 1px solid #CCC;
    border-top: 1px solid #DDD;
    padding: 2px 3px 3px 4px
}

tbody.scrollContent tr.alternateRow td {
    background: #EEE;
    border-bottom: none;
    border-left: none;
    border-right: 1px solid #CCC;
    border-top: 1px solid #DDD;
    padding: 2px 3px 3px 4px
}

/* define width of TH elements: 1st, 2nd, and 3rd respectively.          */
/* Add 16px to last TH for scrollbar padding. All other non-IE browsers. */
/* http://www.w3.org/TR/REC-CSS2/selector.html#adjacent-selectors        */
html>body thead.fixedHeader th {
    width: 200px
}

html>body thead.fixedHeader th + th {
    width: 240px
}

html>body thead.fixedHeader th + th + th {
    width: 316px
}

/* define width of TD elements: 1st, 2nd, and 3rd respectively.          */
/* All other non-IE browsers.                                            */
/* http://www.w3.org/TR/REC-CSS2/selector.html#adjacent-selectors        */
html>body tbody.scrollContent td {
    width: 200px
}

html>body tbody.scrollContent td + td {
    width: 240px
}

html>body tbody.scrollContent td + td + td {
    width: 300px
}
<div id="tableContainer" class="tableContainer">
    <table border="0" cellpadding="0" cellspacing="0" width="100%" class="scrollTable">
        <thead class="fixedHeader">
            <tr>
                <th><a href="#">Header 1</a></th>
                <th><a href="#">Header 2</a></th>
                <th><a href="#">Header 3</a></th>
            </tr>
        </thead>
        <tbody class="scrollContent">
            <tr>
                <td>Cell Content 1</td>
                <td>Cell Content 2</td>
                <td>Cell Content 3</td>
            </tr>
            <tr>
                <td>More Cell Content 1</td>
                <td>More Cell Content 2</td>
                <td>More Cell Content 3</td>
            </tr>
            <tr>
                <td>Even More Cell Content 1</td>
                <td>Even More Cell Content 2</td>
                <td>Even More Cell Content 3</td>
            </tr>
            <tr>
                <td>And Repeat 1</td>
                <td>And Repeat 2</td>
                <td>And Repeat 3</td>
            </tr>
            ...
            ...
            ...
            <tr>
                <td>End of Cell Content 1</td>
                <td>End of Cell Content 2</td>
                <td>End of Cell Content 3</td>
            </tr>
        </tbody>
    </table>
</div>