jquery-ui - jQuery UI 图标通过 tablesorter CSS Sticky Header 流血
问题描述
我有一个简单的 Web 应用程序,它使用 jQuery (v1.12.4)、jQuery UI (v1.12.1) 和 tablesorter 插件 (v2.30.5)。我也在使用 tablesorter CSS Sticky Header Widget,这就是我遇到麻烦的地方。
在应用程序的一个页面上,我显示了一个 HTML 表格,其中一列包含一个 jQuery UI 图标,该图标是另一个页面的链接。我使用 tablesorter CSS Sticky Header Widget 来保持表格标题行在页面滚动时可见。
我的问题是,当您向下滚动页面时,表格行开始从浏览器窗口的顶部移开,每行中的 jQuery UI 图标会从粘性标题行中渗出,看起来很糟糕。
请注意,如果我用 .png 文件中的图像替换 jQuery UI 图标,我看不到问题。
当使用 jQuery UI 图标和 Firefox 作为我的浏览器时,我可以通过向表格元素添加 CSSz-index: 1
来获得使图标消失在粘性标题后面的所需行为。<thead>
当使用 Internet Explorer 作为我的浏览器时,我可以通过将 CSSz-index: 1
放在<td>
有问题的列标题的元素上来获得所需的行为。但是,我在使用 Chrome 时没有找到任何解决方案,它恰好是我的目标受众的首选浏览器。
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<link rel="stylesheet" href="jQuery/jquery-ui-themes-1.12.1/jquery-ui.min.css">
<link rel="stylesheet" href="jQuery/tablesorter-master/css/theme.blue.css">
</head>
<body>
<table id="table1">
<thead>
<tr>
<td>Column1</td>
<td>Column2</td>
</tr>
</thead>
<tbody>
<tr>
<td>r1c1</td>
<td><span class="ui-icon ui-icon-document"></span></td>
</tr>
<tr>
<td>r2c1</td>
<td><span class="ui-icon ui-icon-document"></span></td>
</tr>
<tr>
<td>r3c1</td>
<td><span class="ui-icon ui-icon-document"></span></td>
</tr>
<tr>
<td>r4c1</td>
<td><span class="ui-icon ui-icon-document"></span></td>
</tr>
<tr>
<td>r5c1</td>
<td><span class="ui-icon ui-icon-document"></span></td>
</tr>
<tr>
<td>r6c1</td>
<td><span class="ui-icon ui-icon-document"></span></td>
</tr>
<tr>
<td>r7c1</td>
<td><span class="ui-icon ui-icon-document"></span></td>
</tr>
<tr>
<td>r8c1</td>
<td><span class="ui-icon ui-icon-document"></span></td>
</tr>
<tr>
<td>r9c1</td>
<td><span class="ui-icon ui-icon-document"></span></td>
</tr>
<tr>
<td>r10c1</td>
<td><span class="ui-icon ui-icon-document"></span></td>
</tr>
</tbody>
</table>
<script src="jQuery/jquery-1.12.4.min.js"></script>
<script src="jQuery/jquery-ui-1.12.1/jquery-ui.min.js"></script>
<script src="jQuery/tablesorter-master/js/jquery.tablesorter.js"></script>
<script src="jQuery/tablesorter-master/js/widgets/widget-cssStickyHeaders.js"></script>
<script>
$(document).ready(function() {
$("#table1").tablesorter({
theme: "blue",
widgets: ["cssStickyHeaders"]
});
});
</script>
</body>
</html>
解决方案
“最简单”的解决方案是给图标一个负 z-index,然后从表格中删除所有背景颜色。这种方法的问题在于,如果要添加斑马条纹,则必须使用更复杂的方法来实现(查看css highlighting demo中的 css )。
看看这个方法是否适合你(演示):
.tablesorter-blue, .tablesorter-blue td {
background: transparent;
}
.ui-icon {
position: relative;
z-index: -1;
}
推荐阅读
- reinforcement-learning - 如何在 Windows 上安装 mujoco-py?
- firebase - 异常:错误状态:DocumentSnapshotPlatform 中不存在字段
- redis - Redisson RStreams没有收到消息
- android - 如何减少喷气背包组成“TopAppBar”中导航图标和标题之间的水平空间?
- java - 生成的Android espresso 测试运行失败,AndroidJUnitRunner 解析失败:Landroidx/test/platform/io/FileTestStorage;
- java - 地图转换
到对象列表 - django - 如何从 Django 中的模板更新列表中的单个项目?
- vba - ShapeRange(1) 和 ShapeRange.Item(1) 之间的 VBA 区别
- sql - 在 SQL (mariadb) 中创建和计算 z 分数列
- sql - 在 SQL Server 中将所有值从源表动态复制到目标表。如果目标表中有一些值,则删除并插入