html - 位置:滚动条上方的绝对内容
问题描述
我有以下问题:我有一张桌子,在这张桌子上我有一堆单元格。一些单元格有工具提示。
如果用户将鼠标悬停在给定的单元格上,则会出现工具提示。不同的是,这个表格的底部有一个滚动条,从左到右。这是因为内容太大而无法放入屏幕。
如果我有一个 position : absolute 的工具提示没有相对父级,它会显示滚动条上方的内容(可读),但不跟随滚动条。
如果我有 position: absolute 具有相对父级的工具提示,它会跟随滚动条,但隐藏内容。
<!DOCTYPE html>
<head>
<style>
thead > tr > td {
background-color: grey;
width: 150px;
height: 30px;
}
table{
table-layout: fixed;
}
.tooltipWrapper{
position:relative;
}
.tooltip{
position: absolute;
display:none;
top: 10px;
background-color: green;
}
.tooltipWrapper:hover .tooltip{
display:block;
}
.contentWrapper{
overflow-x: scroll;
overflow-y: hidden;
}
</style>
</head>
<body>
<div class="contentWrapper">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<thead>
<tr>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
<td>Column 4</td>
<td>Column 5</td>
<td>Column 6</td>
<td>Column 7</td>
<td>Column 8</td>
<td>Column 9</td>
<td>Column 10</td>
<td>Column 11</td>
<td>Column 12</td>
<td>Column 13</td>
<td>Column 14</td>
<td>Column 15</td>
<td>Column 16</td>
<td>Column 17</td>
<td>Column 18</td>
</tr>
</thead>
<tbody>
<tr>
<td>Content 1-1</td>
<td>Content 1-2</td>
<td>Content 1-3</td>
<td>Content 1-4</td>
<td>Content 1-5</td>
<td>Content 1-6</td>
<td>Content 1-7</td>
<td>Content 1-8</td>
<td>Content 1-9</td>
<td>Content 1-10</td>
<td>Content 1-11</td>
<td>Content 1-12</td>
<td>Content 1-13</td>
<td>Content 1-14</td>
<td>Content 1-15</td>
<td>Content 1-16</td>
<td>Content 1-17</td>
<td>Content 1-18</td>
</tr>
<tr>
<td>Content 2-1</td>
<td>Content 2-2</td>
<td>
<div class="tooltipWrapper">
<div>Hover me!</div>
<div class="tooltip">Cool tips here!<br>Indeed, very cool tips<br>I do enjoy these tips</div>
</div>
</td>
<td>Content 2-4</td>
<td>Content 2-5</td>
<td>Content 2-6</td>
<td>Content 2-7</td>
<td>Content 2-8</td>
<td>Content 2-9</td>
<td>Content 2-10</td>
<td>Content 2-11</td>
<td>Content 2-12</td>
<td>Content 2-13</td>
<td>Content 2-14</td>
<td>Content 2-15</td>
<td>Content 2-16</td>
<td>Content 2-17</td>
<td>Content 2-18</td>
</tr>
</tbody>
</table>
</div>
</body>
我的预期结果是,如果您将鼠标悬停在“悬停我”文本上,并且向右滚动了一点,它将跟随它,并将其显示在滚动条上方。
谢谢!
解决方案
一种解决方案将 margin-bottom 添加到表格中
thead > tr > td {
background-color: grey;
width: 150px;
height: 30px;
}
table{
table-layout: fixed;
margin-bottom:70px;
}
.tooltipWrapper{
position:relative;
}
.tooltip{
position: absolute;
display: none;
background-color: green;
}
.tooltipWrapper:hover .tooltip{
display:block;
}
.contentWrapper{
overflow-x: scroll;
overflow-y: hidden;
}
<div class="contentWrapper">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<thead>
<tr>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
<td>Column 4</td>
<td>Column 5</td>
<td>Column 6</td>
<td>Column 7</td>
<td>Column 8</td>
<td>Column 9</td>
<td>Column 10</td>
<td>Column 11</td>
<td>Column 12</td>
<td>Column 13</td>
<td>Column 14</td>
<td>Column 15</td>
<td>Column 16</td>
<td>Column 17</td>
<td>Column 18</td>
</tr>
</thead>
<tbody>
<tr>
<td>Content 1-1</td>
<td>Content 1-2</td>
<td>Content 1-3</td>
<td>Content 1-4</td>
<td>Content 1-5</td>
<td>Content 1-6</td>
<td>Content 1-7</td>
<td>Content 1-8</td>
<td>Content 1-9</td>
<td>Content 1-10</td>
<td>Content 1-11</td>
<td>Content 1-12</td>
<td>Content 1-13</td>
<td>Content 1-14</td>
<td>Content 1-15</td>
<td>Content 1-16</td>
<td>Content 1-17</td>
<td>Content 1-18</td>
</tr>
<tr>
<td>Content 2-1</td>
<td>Content 2-2</td>
<td>
<div class="tooltipWrapper">
<div>Hover me!</div>
<div class="tooltip">Cool tips here!<br>Indeed, very cool tips<br>I do enjoy these tips</div>
</div>
</td>
<td>Content 2-4</td>
<td>Content 2-5</td>
<td>Content 2-6</td>
<td>Content 2-7</td>
<td>Content 2-8</td>
<td>Content 2-9</td>
<td>Content 2-10</td>
<td>Content 2-11</td>
<td>Content 2-12</td>
<td>Content 2-13</td>
<td>Content 2-14</td>
<td>Content 2-15</td>
<td>Content 2-16</td>
<td>Content 2-17</td>
<td>Content 2-18</td>
</tr>
</tbody>
</table>
</div>
推荐阅读
- javascript - 赛普拉斯:拦截一条不存在的路线
- c++ - 不存在从 std::shared_ptr 到 std::shared_ptr 的合适的用户定义转换
- python - 如何在 Django 中一个类的多个函数之间共享一个变量?
- powershell - powershell-get-random-and-rename 该目录下的所有内容,包括子目录下的所有文件
- python - ML BoW:对单词变量的预测包的每个集群进行采样,以查看哪些单词最重复地聚集在一起
- arrays - 在 C 中使用 calloc() 和 free()
- javascript - 为什么 CSS 在某些路由上不起作用?
- python - 使用 django 获取 html 模板中特定变量的值
- javascript - ReferenceError:导出函数时未定义req
- pandas - 熊猫抓取数据框:必须通过二维输入。形状=(1, 21, 2)