我的表有2个标题行和50个正文行。它有20列。 我需要在页面宽度内显示表格(表格不应超过100%宽度),这样用户就不必向右滚动,即没有水平滚动条应该出现。 垂直滚动时,标题行必须保持固定。 表格列的宽度不同。
这是我迄今为止所做的事情。
创建了2个表。一个表中的所有标题部分,另一个表中的正文部分。
表布局是"固定",因为我必须设置不同的列宽。 两个表格宽度我都设置为100%。
当我为上表设置 position: fixed
时,会导致两个表之间出现对齐问题。
位置:固定属性使上表超过100%。
如果我将上表宽度设置为99%,对于某些分辨率屏幕看起来很好,但对于其他分辨率屏幕(高于1600 X 900),它再次未对齐。
以下是我的代码。
html {
overflow-y: scroll;
}
#tab1 {
table-layout: fixed;
width: 100%;
word-wrap: break-word;
position: fixed;
}
#tab2 {
table-layout: fixed;
width: 100%;
word-wrap: break-word;
}

<table border="1" id="tab1">
<caption>Test Report Dt - 12/12/2016</caption>
<colgroup>
<col style="width:130px;">
<col style="width:70px; ">
<col style="width:180px;">
<col style="width:100px;">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:90px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:90px; ">
<col style="width:120px;">
<col style="width:70px; ">
<col style="width:70px; ">
</colgroup>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th colspan="7">BAT Tool</th>
<th colspan="7">ACT Tool</th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<th>Project Name</th>
<th>Build Version</th>
<th>Test Owner</th>
<th>Test Date DD-MMM-YY</th>
<th>TC Executed</th>
<th>Passed Count</th>
<th>Failed Count</th>
<th>Pass %</th>
<th>Fail %</th>
<th>Automation % coverage</th>
<th>Remarks</th>
<th>TC Executed</th>
<th>Passed Count</th>
<th>Failed Count</th>
<th>Hold Count</th>
<th>Pass %</th>
<th>Fail%</th>
<th>Remark</th>
<th>Other Remarks</th>
<th>BAT Report Link</th>
<th>ACT Report Link</th>
</tr>
</table>
<table border="1" id="tab2">
<colgroup>
<col style="width:130px;">
<col style="width:70px; ">
<col style="width:180px;">
<col style="width:100px;">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:90px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:90px; ">
<col style="width:120px;">
<col style="width:70px; ">
<col style="width:70px; ">
</colgroup>
<tr>
<td>Project 1</td>
<td>v 1.1</td>
<td>Daniel Ruth , d.ruth, 1234</td>
<td>12-Dec-16</td>
<td>30</td>
<td>30</td>
<td>0</td>
<td>100%</td>
<td>0%</td>
<td></td>
<td>Remark1</td>
<td>39</td>
<td>35</td>
<td>0</td>
<td>4</td>
<td>91.8%</td>
<td>0%</td>
<td></td>
<td></td>
<td><a target='_blank' href='http://sample1.html'>Link</a></td>
<td><a target='_blank' href='http://sample2.html'>Link</a></td>
</tr>
</table>
&#13;
答案 0 :(得分:0)
首先,这是一个非常激烈的结构。许多嵌套col
元素有什么意义? Imo,那是你问题的一半。
其次,你不能给一个表提供一堆列,并期望它适合所有分辨率的屏幕宽度。这类似于试图违反基本的物理定律;那里空间有限,你不能期望它能容纳这么宽的桌子。
答案 1 :(得分:0)
#tab1, #tab2 {
box-sizing: border-box;
width: 100%;
padding: 0px;
margin: 0px;
position: relative;
table-layout:fixed;
}
&#13;
<table border="1" id="tab1">
<caption> Test Report Dt - 12/12/2016</caption>
<col style="width:130px;">
<col style="width:70px; ">
<col style="width:180px;">
<col style="width:100px;">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:90px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:90px; ">
<col style="width:120px;">
<col style="width:70px; ">
<col style="width:70px; ">
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th colspan="7">BAT Tool</th>
<th colspan="7">ACT Tool</th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<th>Project Name</th>
<th>Build Version</th>
<th>Test Owner</th>
<th>Test Date DD-MMM-YY</th>
<th>TC Executed</th>
<th>Passed Count</th>
<th>Failed Count</th>
<th>Pass %</th>
<th>Fail %</th>
<th>Automation % coverage</th>
<th>Remarks</th>
<th>TC Executed</th>
<th>Passed Count</th>
<th>Failed Count</th>
<th>Hold Count</th>
<th>Pass %</th>
<th>Fail%</th>
<th>Remark</th>
<th>Other Remarks</th>
<th>BAT Report Link</th>
<th>ACT Report Link</th>
</tr>
</table>
<table border="1" id="tab2">
<col style="width:130px;">
<col style="width:70px; ">
<col style="width:180px;">
<col style="width:100px;">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:90px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:50px; ">
<col style="width:90px; ">
<col style="width:120px;">
<col style="width:70px; ">
<col style="width:70px; ">
<tr>
<td>Project 1</td>
<td>v 1.1</td>
<td>Daniel Ruth , d.ruth, 1234</td>
<td>12-Dec-16</td>
<td>30</td>
<td>30</td>
<td>0</td>
<td>100%</td>
<td>0%</td>
<td></td>
<td>Remark1</td>
<td>39</td>
<td>35</td>
<td>0</td>
<td>4</td>
<td>91.8%</td>
<td>0%</td>
<td></td>
<td></td>
<td><a target='_blank' href='http://sample1.html'>Link</a></td>
<td><a target='_blank' href='http://sample2.html'>Link</a></td>
</tr>
</table>
&#13;