- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现一个跨浏览器兼容的 tbody 滚动解决方案。这几乎让我到达那里。我遇到的最后一个障碍是 tbody 中的行数非常大的情况。一切都正确滚动,但尽管隐藏了溢出,但我的 tbody 的 child 增加了页面的高度。
示例图片:http://i.imgur.com/sHWldYg.png
我不想引入第三方解决方案,而且我相信这个解决方案可以在大多数浏览器上运行。任何/所有帮助表示赞赏。我也对其他 tbody 滚动解决方案持开放态度(尽管我已经看过不少)。
编辑:应@cimmanon 的要求将已编译的 SASS 换成 CSS。
//HTML
<div class="tbody-scroll tbody-scroll--five-col">
<div class="inner-container">
<div class="table-header">
<table>
<thead>
<tr>
<th data-field='Verified'>
<input type="checkbox" id="testAll" />
<label for="testAll"></label>
</th>
<th data-field='Name'>Name</th>
<th data-field='Web'>Part #</th>
<th data-field='Twitter'>Mfg Part #</th>
<th data-field='Id'>Cost</th>
<th></th>
</tr>
</thead>
</table>
</div>
<div class="table-body">
<table>
<tbody>
<tr>
<td data-field='Action'>
<input type="checkbox" id="test1" />
<label for="test1"></label>
</td>
<td data-field='Name'>Scanner Dongle</td>
<td data-field='Part Number'>12093475214-WW</td>
<td data-field='Mfg Part Number'>WOT-232</td>
<td data-field='Cost'>$23</td>
</tr>
<tr>
<td data-field='Action'>
<input type="checkbox" id="test2" />
<label for="test2"></label>
</td>
<td data-field='Name'>Printer Paper</td>
<td data-field='Part Number'>1204341232-Z232</td>
<td data-field='Mfg Part Number'>XXT-19</td>
<td data-field='Cost'>$5</td>
</tr>
...
</tbody>
</table>
</div>
</div> <!-- /inner-container -->
</div> <!-- /tbody-scroll -->
//CSS
.tbody-scroll {
width: 100%;
}
.tbody-scroll .inner-container {
overflow: hidden;
}
.tbody-scroll .table-header {
position: relative;
background: #546775;
margin: 1rem auto 0 auto;
}
.tbody-scroll .table-body {
overflow-y: scroll;
border: 1px solid #aaaaaa;
}
.tbody-scroll table {
font-size: 1rem;
width: 100%;
border-collapse: collapse;
border-top: 0 none;
}
.tbody-scroll tbody {
overflow: hidden;
}
.tbody-scroll tr {
line-height: 1em;
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.tbody-scroll tr:last-child {
border-bottom: none;
}
.tbody-scroll tr.striped {
background-image: url(/styles/images/stripe4.png);
}
.tbody-scroll th,
.tbody-scroll td {
width: 20%;
padding: 1.33333em 1.77778em;
line-height: 1.77778em;
}
.tbody-scroll th:last-child,
.tbody-scroll td:last-child {
border-right: 0 none;
}
.tbody-scroll--four-col th,
.tbody-scroll--four-col td {
width: 25%;
}
.tbody-scroll--five-col th,
.tbody-scroll--five-col td {
width: 20%;
}
.tbody-scroll--six-col th,
.tbody-scroll--six-col td {
width: 16.66666%;
}
.tbody-scroll th {
letter-spacing: 0.31641em;
text-transform: uppercase;
font-weight: 400;
font-size: 1em;
text-align: left;
color: #ffffff;
}
.tbody-scroll th:last-child {
display: block;
padding: 0;
margin: 0;
height: 10px;
width: 19px;
}
//JS
$(document).ready(function () {
setTableBody();
$(window).resize(setTableBody);
});
function setTableBody()
{
var halfViewport = (($(window).height() * 50) / 100); // 50vh
console.log("resizing... " + halfViewport);
$(".table-body").height(halfViewport);
}
最佳答案
使用 Chrome 的检查器,我注意到我的 <table>
的“计算”值元素的 position
属性设置为 static
切换:
.tbody-scroll table {
font-size: 1rem;
width: 100%;
border-collapse: collapse;
border-top: 0 none;
}
收件人:
.tbody-scroll table {
font-size: 1rem;
width: 100%;
position: relative;
border-collapse: collapse;
border-top: 0 none;
}
成功了。不再有由 overflow: hidden
引起的巨大空白空间表行。可能值得一提的是,此解决方案似乎适用于所有边缘浏览器版本。
感谢所有花时间查看和评论的人!
关于jquery - Tbody 滚动解决方案。大量行会增加页面高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32463278/
我正在尝试从该网站上名为“燃料混合图”的表中提取数据:https://www.iso-ne.com/isoexpress/我正在使用 BeautifulSoup 读取 HTML 并提取下面列出的表格,
我一直在为这个问题伤脑筋。 我有一个 div 布局,其中某些 div 可以折叠或显示。在这些 div 下方是一个带有表格的 div。我想要的是当内容不再适合页面时,tbody 变得可滚动。我不能给 t
我试图在包含多个 tbody 元素的表的 tbody 部分之间创建一些空间,即间隙,但没有取得任何成功。怎么做到的? .
是否可以像这样在外部 tbody 中有一个内部 tbody: 这是一个示例 CSS: .class1 {background-color:#ff0000;} .class2 {b
我在 JavaScript 中添加行时遇到问题。一切正常,但在 tbody 标签之后添加了行。我需要在 tbody 中添加。 片段: function deleteRow(row) { var i
我有一个表,并使用 jquery 在我的表中添加了更多 tbody。现在我想在单击删除按钮时删除选定的 tbody,我的代码删除一行而不是删除所有选定的 tbody。怎么办?我的代码是:
我正在努力实现以下目标: 包含 div 内的 table 元素 table 没有设置width(可以是 100%),但它不能比包含的 div 宽 table 的单元格是固定宽度的(使用 width 和
我有一个表格,我需要在 tbody 中添加一个垂直滚动条。我看过一些代码但不适合我或者我不理解。我也不太擅长CSS。我添加了一个 div 并将我的 tbody 放在那里。它适用于滚动,但 tbody
我有一个带有滚动 tbody 的工作表,通过使用带有以下内容的 css。 tbody{ overflow:auto; } thread > tr, tbody{ display:block;
这是我的代码: test 运行上面的代码后,自动变成了这样: test
当我滚动浏览这个 overflow:auto; 时,我无法让这些 td 的边框跟随它们的行; .关于修复的任何想法? 注意:设置 table-layout:fixed 或使行 display:blo
嗨,我有一个问题。我想问一下如何让tbody子元素的大小与thead后第一行的大小相同? 这是我的代码..请帮助我..您可以编辑我的 fiddle 或给出答案 var theadFlag =
我知道这是一个非常简单的查询,但我花了一整天时间让它工作,但运气不好。我正在尝试删除任何带有其 ID 的 tbody,但它不是通过我在网上找到的任何方法删除的。我在这里犯了什么错误? $(do
这是固定外部高度的表格,我需要滚动开始时,thead 将被固定,tbody 将滚动显示每列的标题。是否有任何想法将表格的标题固定在顶部和表格的内部内容将滚动。 .max_height{max-heig
这个问题在这里已经有了答案: Why do browsers insert tbody element into table elements? (2 个答案) 关闭 9 年前。 我有一个非常简单的
我正在使用 xml-conduit 和 Text.XML.Cursor 来导航一些带有嵌套表的糟糕 html。有一个带有两个 tbody 标签的表,我想要第一个 tbody 的直接子 tr 标签。这是
对于某些数据集,数据表中不显示任何数据 - 仅显示列标题或列标签。即使页面上的代码没有更改,也会发生这种情况。有问题的数据在浏览器开发工具 Console.logs 中正确显示。 如下所示,DataS
我需要将 json 中的数据作为表中的行追加。我需要将 id="project"的行添加为自己的 tbody 中的第一行。如果检测到新项目,将创建新的 tbody,并且项目和任务将拥有自己的 tbod
我试图首先在页面加载时仅显示 thead 和几行数据(永久显示分组在 thead 下的数据)。加载页面后,我希望选定的对象选择(不显示任何 tbody 组)并通过选择顶部下拉菜单中的选项(以显示选定的
我已将以下 CSS 应用于我的表格。 thead, tbody { display: block; } tbody { height: 200px; overflo
我是一名优秀的程序员,十分优秀!