【发布时间】:2020-07-14 11:40:11
【问题描述】:
这个问题让我觉得它是重复的,但是在经历了多个相关线程后,我意识到......我已经浏览了大多数相关线程 (fixed columns) 关于我的要求,并且在遵循答案后我是面临一些文本重叠问题,如下所示...
我正在尝试实现类似 使前三列的标题为 a html 要修复的表,并且所有其他列都可以滚动 .
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<style>
* {
margin: 0;
padding: 0;
}
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td,
th {
text-align: left;
padding: 5px;
word-wrap: break-word;
}
th {
background: #444;
color: white;
}
td.width100px div,
th.width100px div {
width: 100px;
}
td.width86px div,
th.width86px div {
width: 86px;
}
td.width120px div,
th.width120px div {
width: 120px;
}
td.width150px div,
th.width150px div {
width: 150px;
}
td div {
word-break: break-all !important;
}
tr:nth-child(even) {
background: #eee;
}
#main_container {
padding: 10px;
overflow: auto;
margin: 5px;
border: solid 2px darkgrey;
}
</style>
</head>
<body>
<div id="main_container">
<div style="padding: 5px 0 0 5px;z-index:1;width: 150px;position:sticky;left:0;top:0;margin-bottom: 5px;font-weight: 600;">2020-12-29</div>
<div style="width:100%">
<table style="width:100%">
<tr>
<th class="width100px">
<div>EmpName</div>
</th>
<th class="width86px">
<div>EmpIdD</div>
</th>
<th class="width100px">
<div>MTN</div>
</th>
<th class="width120px">
<div>WorkingTime</div>
</th>
<th class="width86px">
<div>StartTime</div>
</th>
<th class="width150px">
<div>Location</div>
</th>
<th class="width86px">
<div>LunchTime</div>
</th>
<th class="width150px">
<div>Location</div>
</th>
<th class="width86px">
<div>EndTime</div>
</th>
<th class="width150px">
<div>Location</div>
</th>
</tr>
<tr>
<td class="width100px">
<div>William Reehil</div>
</td>
<td class="width86px">
<div>12345</div>
</td>
<td class="width100px">
<div>91657897698</div>
</td>
<td class="width120px">
<div>09:00-17:00</div>
</td>
<td class="width86px">
<div>10:30</div>
</td>
<td class="width150px">
<div>13th Street. 47 W 13th St, New York, NY 10011, USA</div>
</td>
<td class="width86px">
<div>13:00</div>
</td>
<td class="width150px">
<div>NewYark</div>
</td>
<td class="width86px">
<div>16:50</div>
</td>
<td class="width150px">
<div>NewYark</div>
</td>
</tr>
<tr>
<td class="width100px">
<div>William Reehil</div>
</td>
<td class="width86px">
<div>12345</div>
</td>
<td class="width100px">
<div>91657897698</div>
</td>
<td class="width120px">
<div>09:00-17:00</div>
</td>
<td class="width86px">
<div>10:30</div>
</td>
<td class="width150px">
<div>NewYarkNNewYark NewYark</div>
</td>
<td class="width86px">
<div>13:00</div>
</td>
<td class="width150px">
<div>NewYark</div>
</td>
<td class="width86px">
<div>16:50</div>
</td>
<td class="width150px">
<div>NewYark</div>
</td>
</tr>
</table>
</div>
<div style="padding: 5px 0 0 5px;z-index:1;width: 150px;position:sticky;left:0;top:0;margin-bottom: 5px;font-weight: 600;">2020-12-29</div>
<div style="width:100%">
<table style="width:100%">
<tr>
<th class="width100px">
<div>EmpName</div>
</th>
<th class="width86px">
<div>EmpIdD</div>
</th>
<th class="width100px">
<div>MTN</div>
</th>
<th class="width120px">
<div>WorkingTime</div>
</th>
<th class="width86px">
<div>StartTime</div>
</th>
<th class="width150px">
<div>Location</div>
</th>
<th class="width86px">
<div>LunchTime</div>
</th>
<th class="width150px">
<div>Location</div>
</th>
<th class="width86px">
<div>EndTime</div>
</th>
<th class="width150px">
<div>Location</div>
</th>
</tr>
<tr>
<td class="width100px">
<div>William Reehil</div>
</td>
<td class="width86px">
<div>12345</div>
</td>
<td class="width100px">
<div>91657897698</div>
</td>
<td class="width120px">
<div>09:00-17:00</div>
</td>
<td class="width86px">
<div>10:30</div>
</td>
<td class="width150px">
<div> NewYark</div>
</td>
<td class="width86px">
<div>13:00</div>
</td>
<td class="width150px">
<div>NewYark</div>
</td>
<td class="width86px">
<div>16:50</div>
</td>
<td class="width150px">
<div>NewYark</div>
</td>
</tr>
<tr>
<td class="width100px">
<div>William Reehil</div>
</td>
<td class="width86px">
<div>12345</div>
</td>
<td class="width100px">
<div>91657897698</div>
</td>
<td class="width120px">
<div>09:00-17:00</div>
</td>
<td class="width86px">
<div>10:30</div>
</td>
<td class="width150px">
<div> NewYark</div>
</td>
<td class="width86px">
<div>13:00</div>
</td>
<td class="width150px">
<div>NewYark</div>
</td>
<td class="width86px">
<div>16:50</div>
</td>
<td class="width150px">
<div>NewYark</div>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>
所以,最后 - 我想要实现这样的目标:
我可以尝试什么?
【问题讨论】:
-
我想到的一个简单的解决方案是将其拆分为 2 个单独的表,第一个表是 3 个第一列 - 没有滚动,第二个是其余列并且可滚动。
-
我也认为同样的@thanhdx 但是当第二个表中有更多文本时,时间行看起来错过映射:(
-
@Venki 尝试两个表的解决方案,然后解释其中的问题。
-
@DumbCoder7 好的,让我试试。
-
@DumbCoder7,请在此处查看pasteboard.co/J1X8WJx.png,因为第一个表中的文本较少,而第二个表中的文本较多,并且它正在被包裹起来,所以在这种情况下,文本将一行向下推少量。所以第一表第一行和第二表第一行不同步:(
标签: javascript jquery html css