- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我找到了一个不错的“固定表格”样式,但不足以满足我的需求。我还需要卡住第二行 (Header 1.x) 和最后一列 (Header 8.1)。我做了一些更改,从 td 到 th(在第一列示例之后),但没有用。有什么想法吗?
这是我的代码:
.table-scroll {
position: relative;
width: 100%;
z-index: 1;
margin: auto;
overflow: auto;
height: 350px;
}
.table-scroll table {
width: 100%;
min-width: 1280px;
margin: auto;
border-collapse: separate;
border-spacing: 0;
}
.table-wrap { position: relative; }
.table-scroll th, .table-scroll td {
padding: 5px 10px;
border: 1px solid #000;
background: #fff;
vertical-align: top;
}
.table-scroll thead th {
background: #333;
color: #fff;
position: -webkit-sticky;
position: sticky;
top: 0;
}
.table-scroll tfoot, .table-scroll tfoot th, .table-scroll tfoot td {
position: -webkit-sticky;
position: sticky;
bottom: 0;
background: #666;
color: #fff;
z-index: 4;
}
th:first-child {
position: -webkit-sticky;
position: sticky;
left: 0;
z-index: 2;
background: #ccc;
}
thead th:first-child, tfoot th:first-child { z-index: 5;}
<div id="table-scroll" class="table-scroll">
<table id="main-table" class="main-table">
<thead>
<tr>
<th scope="col">Header 1</th>
<th scope="col">Header 2</th>
<th scope="col">Header 3</th>
<th scope="col">Header 4</th>
<th scope="col">Header 5</th>
<th scope="col">Header 6</th>
<th scope="col">Header 7</th>
<th scope="col">Header 8</th>
</tr>
<tr>
<th scope="col">Header 1.1</th>
<th scope="col">Header 2.1</th>
<th scope="col">Header 3.1</th>
<th scope="col">Header 4.1</th>
<th scope="col">Header 5.1</th>
<th scope="col">Header 6.1</th>
<th scope="col">Header 7.1</th>
<th scope="col">Header 8.1</th>
</tr>
</thead>
<tbody>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
<tr>
<th>Fixed left</th>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<td>Cell content</td>
<th>Fixed right</th>
</tr>
</tbody>
<tfoot>
<tr>
<th>Footer 1</th>
<td>Footer 2</td>
<td>Footer 3</td>
<td>Footer 4</td>
<td>Footer 5</td>
<td>Footer 6</td>
<td>Footer 7</td>
<th>Footer 8</th>
</tr>
</tfoot>
</table>
</div>
最佳答案
新答案:
长话短说;
这是 Firefox 上的工作代码:https://jsfiddle.net/vjmc52tf/
这是 Chrome 的工作代码:https://jsfiddle.net/36yabef7/
总结一下你的问题,据我所知,我假设你希望你的表卡住:
因为你已经完成了(1)任务,所以(2)基本上是一样的,你只需要添加:last-child
您已声明卡住第一列的那些样式的选择器,并再添加一行 right: 0;
,最后一列也将按预期卡住,这是代码:
th:first-child,
th:last-child { // add th:last-child
position: -webkit-sticky;
position: sticky;
left: 0;
right: 0; // add right: 0;
z-index: 2;
background: #ccc;
}
thead th:first-child,
tfoot th:first-child,
thead th:last-child, // add thead th:last-child
tfoot th:last-child { // add tfoot th:last-child
z-index: 5;
}
要执行 (3) 任务,请注意 Edge 和 Chrome have a bug目前position: sticky
不适用于 thead
和 tr
元素,但可以在 th
上使用它元素。
thead
元素而不是 .table-scroll thead th
:.table-scroll thead th {
background: #333;
color: #fff;
position: -webkit-sticky;
position: sticky;
top: 0;
}
// become --------------------
.table-scroll thead th {
background: #333;
color: #fff;
}
.table-scroll thead {
position: -webkit-sticky;
position: sticky;
top: 0;
z-index: 10; // need this to work correctly
}
.table-scroll thead th
(就像你所做的那样),然后手动重新计算 top
那些不在第一行的单元格的位置:.table-scroll thead th {
background: #333;
color: #fff;
position: -webkit-sticky;
position: sticky;
top: 0;
}
// add this to make the second row work --------------------
.table-scroll tr:nth-child(2) th {
top: 30px;
}
关于html - 固定列不起作用 - thead、tbody、tfoot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59384964/
当我将 CSS 边框属性应用于 tfoot 时,边框不呈现(border-top、border-bottom、 border 等,没有渲染边框) 有哪些选项可以在 tfoot 或 tbody 上呈现边
我有一张如下表: 如您所见,底部的每一列都有一些搜索输入字段。我想把它移到上面。即:就在 之后. HTML代码(表格的基本结构,这里只考虑共享2行)是:
当我点击删除和添加商品的按钮( buttAdd / nameDelete )时,会出现一个新行 被添加。当我使用数组 this.products 创建表时,我还创建 与产品的总价一起,在添加或删除新产
我正在使用 jQuery 数据表插件。如何在下面的代码中添加带有单独列搜索的 tfoot: if ($('#myTable').length > 0) { var oTable = $('#m
扩展到多个打印页面的表格将在 Firefox 中重新打印其 thead 和 tfoot 部分。这通常很好,但是,有没有办法使用 CSS 关闭此行为? [更新] 感谢您到目前为止的回复。我想在表格底部打
这可能是一个简单的问题,但我无法解决它,我想将值设置为 tfoot 部分中的 th 元素,请参见下图 下面是代码 $('#'+tableId+" tfoot tr").each(function(i,
我有以下用于呈现PDF 文件的html,我需要呈现部分始终位于每个页面的底部,即使页面内容很小。 Som
我想将 tfoot 固定在页面底部,使其与表格的行一样响应。 我的代码:https://codepen.io/adu8/pen/MWWXqGY 我现在面临的问题是,一旦我将 class="fixed-
是否可以重复 元素仅在选定页面上? 如果是,如何实现?现在,我可以在每一页上重复: tfoot { display: table-footer-group; } 如果我想要 ,我应该如何更改此
我想为 td 元素显示一个 border,但前提是该元素不在 tfoot元素。我如何使用 .not CSS 选择器做到这一点? 这行不通: td.not(tfoot) { ... } 最佳答案 你可以
我有一个包含大量行的 html 表格,当我尝试打印它时,TFOOT 中的内容显示在每个分页符中。我可以让它只显示在最后一页的表格末尾吗? 注意:我无法从表中删除 tfoot,因为该表是从我正在使用的
HTML 中的表格可以有“页脚”: Your header goes here Your footer goes here Page body i
我尝试在我的 HTML 报告中使用 counter(page) 但没有成功。 我阅读了许多有关此主题的 StackOverflow 页面,但从未找到可行的解决方案! 环境 Chrome(最新版本:70
我有这个示例表 row 1, cell 1 row 1, cell 2 row 2, cell 1 row 2, cell 2 我尝试使用 Jquery 动态添加内
我正在使用数据表以 JSON 格式显示一些数据,并且我已将查询总计包含在 JSON 的底部,如下所示: { "data": [ { "id": "1",
我找到了一个不错的“固定表格”样式,但不足以满足我的需求。我还需要卡住第二行 (Header 1.x) 和最后一列 (Header 8.1)。我做了一些更改,从 td 到 th(在第一列示例之后),但
我一直在努力思考 的用法,以及我应该朝着哪个方向前进最容易接近。 应该总结列:在完美的情况下,每列在 中都有一个相应的摘要单元格. 不幸的是,这种情况几乎从来没有发生过。 通常只有几列包含数字数据
我正在尝试打印帐单类型 HTML 页面。由于法案的篇幅,可能会有多页。以下是 HTML 页面的结构 ... ...
我想使用 表中的标记在语义上是正确的,但它一直显示在我的表的顶部。有没有办法让它显示在底部? 最佳答案 正如其他人所说,tfoot 在 tbody 之前定义,但在之后呈现。这是设计使然,并没有改变语义
在我们的网络无障碍类(class)中,我们的老师一直告诉我们应该把 之前的标签一个在 table 上。他没有解释原因,但他说这将使这张 table 更容易接近。由于没有一个学生习惯这样做,我们做了
我是一名优秀的程序员,十分优秀!