两个表垂直对齐,如何同步宽度/间距? [英] Two tables vertically aligned, how to synchronise the widths/spacing?
本文介绍了两个表垂直对齐,如何同步宽度/间距?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我可以有一个可滚动的表,标题行固定在顶部我已经分离的头到一个单独的div中的自己的表。下面的div具有表数据。表的内容各不相同,因此我希望能够使顶部表与下面行的间距和宽度同步,以使标题正好对齐。如何做到这一点?
[header 1 | header 2 | header3]
[cell1 | cell2 | cell3]
以便:
[header 1 |标题2 | header 3]
[cell1 | cell2 | cell3]
解决方案
尝试此
http://jsfiddle.net/gZTsr/6/ p>
HTML:
< div id =tableContainerclass = tableContainer>
< table border =0cellpadding =0cellspacing =0width =100%class =scrollTable>
< thead class =fixedHeader>
< tr class =alternateRow>
< th>标题1< / th>
< th>标题2< / th>
< th>标题3< / th>
< / tr>
< / thead>
< tbody class =scrollContent>
< tr class =normalRow>
< td>单元格内容1 da widim dali she se sinkne kato mu nabiem kancheto s 200000 simvola otgore< / td>
< td>单元格内容2< / td>
< td>单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =normalRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>并重复1< / td>
< td>并重复2< / td>
< td>并重复3< / td>
< / tr>
< tr class =normalRow>
< td>单元格内容1< / td>
< td>单元格内容2< / td>
< td>单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =normalRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>并重复1< / td>
< td>并重复2< / td>
< td>并重复3< / td>
< / tr>
< tr class =normalRow>
< td>单元格内容1< / td>
< td>单元格内容2< / td>
< td>单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =normalRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>并重复1< / td>
< td>并重复2< / td>
< td>并重复3< / td>
< / tr>
< tr class =normalRow>
< td>单元格内容1< / td>
< td>单元格内容2< / td>
< td>单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =normalRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>并重复1< / td>
< td>并重复2< / td>
< td>并重复3< / td>
< / tr>
< tr class =normalRow>
< td>单元格内容1< / td>
< td>单元格内容2< / td>
< td>单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =normalRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>并重复1< / td>
< td>并重复2< / td>
< td>并重复3< / td>
< / tr>
< tr class =normalRow>
< td>单元格内容1< / td>
< td>单元格内容2< / td>
< td>单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =normalRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>并重复1< / td>
< td>并重复2< / td>
< td>并重复3< / td>
< / tr>
< tr class =normalRow>
< td>单元格内容1< / td>
< td>单元格内容2< / td>
< td>单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =normalRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>并重复1< / td>
< td>并重复2< / td>
< td>并重复3< / td>
< / tr>
< tr class =normalRow>
< td>单元格内容1< / td>
< td>单元格内容2< / td>
< td>单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =normalRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>并重复1< / td>
< td>并重复2< / td>
< td>并重复3< / td>
< / tr>
< tr class =normalRow>
< td>单元格内容1< / td>
< td>单元格内容2< / td>
< td>单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =normalRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>并重复1< / td>
< td>并重复2< / td>
< td>并重复3< / td>
< / tr>
< tr class =normalRow>
< td>单元格内容1< / td>
< td>单元格内容2< / td>
< td>单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =normalRow>
< td>更多单元格内容1< / td>
< td>甚至更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>并重复1< / td>
< td>并重复2< / td>
< td>并重复3< / td>
< / tr>
< tr class =normalRow>
< td>单元格内容1< / td>
< td>单元格内容2< / td>
< td>单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =normalRow>
< td>更多单元格内容1< / td>
< td>更多单元格内容2< / td>
< td>更多单元格内容3< / td>
< / tr>
< tr class =alternateRow>
< td>单元格结尾内容1< / td>
< td>单元格内容结束2< / td>
< td>单元格内容结束3< / td>
< / tr>
< / tbody>
< / table>
< / div>
CSS:
code> body {
background:#FFF;
color:#000;
font:normal normal 12px Verdana,Geneva,Arial,Helvetica,sans-serif;
margin:10px;
padding:0
}
div.tableContainer {
clear:both;
border:1px solid#963;
height:285px; $ b $b overflow:auto;
width:756px
}
/ *重置溢出值为所有非IE浏览器隐藏。 * /
html> body div.tableContainer {
overflow:hidden;
width:756px
}
/ *定义表的宽度。 IE浏览器* /
div.tableContainer表{
float:left;
width:740px
}
/ *定义表的宽度。将16px添加到滚动条的宽度。 * /
/ *所有其他非IE浏览器。 * /
html> body div.tableContainer表{
width:756px
}
/ *将表头设置到固定位置。 Winie 6.x only * /
/ *在WinIE 6.x中,position属性设置为relative的任何元素都是* /
/ *的一个子元素,它有一个overflow属性集,相对值转换为固定。 * /
/ *例如:父元素DIV和tableContainer的类有一个overflow属性设置为auto * /
thead.fixedHeader tr {
position:relative
}
/ *将THEAD元素设置为具有块级属性。所有其他非IE浏览器* /
/ *这使得溢出可以在TBODY元素上工作。所有其他非IE,非Mozilla浏览器* /
html> body thead.fixedHeader tr {
display:block
}
/ *使TH元素pretty * /
thead.fixedHeader th {
background:#C96;
border-left:1px solid#EB8;
border-right:1px solid#B74;
border-top:1px solid#EB8;
font-weight:normal;
padding:4px 3px;
text-align:left
}
/ *使A元素漂亮。使得可以点击的标题* /
thead.fixedHeader a,thead.fixedHeader a:link,thead.fixedHeader a:visited {
color:#FFF;
display:block;
text-decoration:none;
width:100%
}
/ *使A元素漂亮。使得漂亮的可点击标题* /
/ *警告:交换背景的悬停可能会导致问题在WinIE 6.x * /
thead.fixedHeader a:hover {
color:#FFF;
display:block;
text-decoration:underline;
width:100%
}
/ *定义要滚动的表内容* /
/ *设置TBODY元素以具有块级属性。所有其他非IE浏览器* /
/ *这使得溢出可以在TBODY元素上工作。所有其他非IE,非Mozilla浏览器* /
/ *引起的副作用是子TD不再接受width:auto * /
html> body tbody.scrollContent {
display:块;
height:262px; $ b $b overflow:auto;
width:100%
}
/ *使TD元素漂亮。提供用于条带化表的交替类* /
/ * http://www.alistapart.com/articles/zebratables/ * /
tbody.scrollContent td,tbody.scrollContent tr.normalRow td {
background:#FFF;
border-bottom:none;
border-left:none;
border-right:1px solid #CCC;
border-top:1px solid #DDD;
padding:2px 3px 3px 4px
}
tbody.scrollContent tr.alternateRow td {
background:#EEE;
border-bottom:none;
border-left:none;
border-right:1px solid #CCC;
border-top:1px solid #DDD;
padding:2px 3px 3px 4px
}
/ *定义TH元素的宽度:分别为1st,2nd和3rd。 * /
/ *添加16px到最后TH滚动条填充。所有其他非IE浏览器。 * /
/ * http://www.w3.org/TR/REC-CSS2/selector.html#adjacent-selectors * /
html> body thead.fixedHeader th {
width :200px
}
html> body thead.fixedHeader th + th {
width:240px
}
html> body thead。 fixedHeader th + th + th {
width:316px
}
/ *定义TD元素的宽度:分别为1st,2nd和3rd。 * /
/ *所有其他非IE浏览器。 * /
/ * http://www.w3.org/TR/REC-CSS2/selector.html#adjacent-selectors * /
html> body tbody.scrollContent td {
width :200px
}
html> body tbody.scrollContent td + td {
width:240px
}
html> body tbody。 scrollContent td + td + td {
width:300px
}
- >
这只是ilustration。你可以css所有的单元格,如果你想。
So that I can have a scrollable table with the heading row fixed at the top I have seperated the headers into their own table in a seperate div. The div below has the table data. The contents of the table varies and so I wish to be able to synchronise the top table with the spacings and widths of the rows below so that the header lines up exactly. How can I do this?
[header 1|header 2|header3]
[cell1 | cell2 | cell3]
so that:
[header 1 | header 2| header 3]
[cell1 | cell2 | cell3]
解决方案
Try this
HTML:
<div id="tableContainer" class="tableContainer">
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="scrollTable">
<thead class="fixedHeader">
<tr class="alternateRow">
<th>Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
</tr>
</thead>
<tbody class="scrollContent">
<tr class="normalRow">
<td>Cell Content 1 da widim dali she se sinkne kato mu nabiem kancheto s 200000 simvola otgore</td>
<td>Cell Content 2</td>
<td>Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>More Cell Content 1</td>
<td>More Cell Content 2</td>
<td>More Cell Content 3</td>
</tr>
<tr class="normalRow">
<td>Even More Cell Content 1</td>
<td>Even More Cell Content 2</td>
<td>Even More Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>And Repeat 1</td>
<td>And Repeat 2</td>
<td>And Repeat 3</td>
</tr>
<tr class="normalRow">
<td>Cell Content 1</td>
<td>Cell Content 2</td>
<td>Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>More Cell Content 1</td>
<td>More Cell Content 2</td>
<td>More Cell Content 3</td>
</tr>
<tr class="normalRow">
<td>Even More Cell Content 1</td>
<td>Even More Cell Content 2</td>
<td>Even More Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>And Repeat 1</td>
<td>And Repeat 2</td>
<td>And Repeat 3</td>
</tr>
<tr class="normalRow">
<td>Cell Content 1</td>
<td>Cell Content 2</td>
<td>Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>More Cell Content 1</td>
<td>More Cell Content 2</td>
<td>More Cell Content 3</td>
</tr>
<tr class="normalRow">
<td>Even More Cell Content 1</td>
<td>Even More Cell Content 2</td>
<td>Even More Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>And Repeat 1</td>
<td>And Repeat 2</td>
<td>And Repeat 3</td>
</tr>
<tr class="normalRow">
<td>Cell Content 1</td>
<td>Cell Content 2</td>
<td>Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>More Cell Content 1</td>
<td>More Cell Content 2</td>
<td>More Cell Content 3</td>
</tr>
<tr class="normalRow">
<td>Even More Cell Content 1</td>
<td>Even More Cell Content 2</td>
<td>Even More Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>And Repeat 1</td>
<td>And Repeat 2</td>
<td>And Repeat 3</td>
</tr>
<tr class="normalRow">
<td>Cell Content 1</td>
<td>Cell Content 2</td>
<td>Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>More Cell Content 1</td>
<td>More Cell Content 2</td>
<td>More Cell Content 3</td>
</tr>
<tr class="normalRow">
<td>Even More Cell Content 1</td>
<td>Even More Cell Content 2</td>
<td>Even More Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>And Repeat 1</td>
<td>And Repeat 2</td>
<td>And Repeat 3</td>
</tr>
<tr class="normalRow">
<td>Cell Content 1</td>
<td>Cell Content 2</td>
<td>Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>More Cell Content 1</td>
<td>More Cell Content 2</td>
<td>More Cell Content 3</td>
</tr>
<tr class="normalRow">
<td>Even More Cell Content 1</td>
<td>Even More Cell Content 2</td>
<td>Even More Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>And Repeat 1</td>
<td>And Repeat 2</td>
<td>And Repeat 3</td>
</tr>
<tr class="normalRow">
<td>Cell Content 1</td>
<td>Cell Content 2</td>
<td>Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>More Cell Content 1</td>
<td>More Cell Content 2</td>
<td>More Cell Content 3</td>
</tr>
<tr class="normalRow">
<td>Even More Cell Content 1</td>
<td>Even More Cell Content 2</td>
<td>Even More Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>And Repeat 1</td>
<td>And Repeat 2</td>
<td>And Repeat 3</td>
</tr>
<tr class="normalRow">
<td>Cell Content 1</td>
<td>Cell Content 2</td>
<td>Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>More Cell Content 1</td>
<td>More Cell Content 2</td>
<td>More Cell Content 3</td>
</tr>
<tr class="normalRow">
<td>Even More Cell Content 1</td>
<td>Even More Cell Content 2</td>
<td>Even More Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>And Repeat 1</td>
<td>And Repeat 2</td>
<td>And Repeat 3</td>
</tr>
<tr class="normalRow">
<td>Cell Content 1</td>
<td>Cell Content 2</td>
<td>Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>More Cell Content 1</td>
<td>More Cell Content 2</td>
<td>More Cell Content 3</td>
</tr>
<tr class="normalRow">
<td>Even More Cell Content 1</td>
<td>Even More Cell Content 2</td>
<td>Even More Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>And Repeat 1</td>
<td>And Repeat 2</td>
<td>And Repeat 3</td>
</tr>
<tr class="normalRow">
<td>Cell Content 1</td>
<td>Cell Content 2</td>
<td>Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>More Cell Content 1</td>
<td>More Cell Content 2</td>
<td>More Cell Content 3</td>
</tr>
<tr class="normalRow">
<td>Even More Cell Content 1</td>
<td>Even More Cell Content 2</td>
<td>Even More Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>And Repeat 1</td>
<td>And Repeat 2</td>
<td>And Repeat 3</td>
</tr>
<tr class="normalRow">
<td>Cell Content 1</td>
<td>Cell Content 2</td>
<td>Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>More Cell Content 1</td>
<td>More Cell Content 2</td>
<td>More Cell Content 3</td>
</tr>
<tr class="normalRow">
<td>Even More Cell Content 1</td>
<td>Even More Cell Content 2</td>
<td>Even More Cell Content 3</td>
</tr>
<tr class="alternateRow">
<td>End of Cell Content 1</td>
<td>End of Cell Content 2</td>
<td>End of Cell Content 3</td>
</tr>
</tbody>
</table>
</div>
CSS:
body {
background: #FFF;
color: #000;
font: normal normal 12px Verdana, Geneva, Arial, Helvetica, sans-serif;
margin: 10px;
padding: 0
}
div.tableContainer {
clear: both;
border: 1px solid #963;
height: 285px;
overflow: auto;
width: 756px
}
/* Reset overflow value to hidden for all non-IE browsers. */
html>body div.tableContainer {
overflow: hidden;
width: 756px
}
/* define width of table. IE browsers only */
div.tableContainer table {
float: left;
width: 740px
}
/* define width of table. Add 16px to width for scrollbar. */
/* All other non-IE browsers. */
html>body div.tableContainer table {
width: 756px
}
/* set table header to a fixed position. WinIE 6.x only */
/* In WinIE 6.x, any element with a position property set to relative and is a child of */
/* an element that has an overflow property set, the relative value translates into fixed. */
/* Ex: parent element DIV with a class of tableContainer has an overflow property set to auto */
thead.fixedHeader tr {
position: relative
}
/* set THEAD element to have block level attributes. All other non-IE browsers */
/* this enables overflow to work on TBODY element. All other non-IE, non-Mozilla browsers */
html>body thead.fixedHeader tr {
display: block
}
/* make the TH elements pretty */
thead.fixedHeader th {
background: #C96;
border-left: 1px solid #EB8;
border-right: 1px solid #B74;
border-top: 1px solid #EB8;
font-weight: normal;
padding: 4px 3px;
text-align: left
}
/* make the A elements pretty. makes for nice clickable headers */
thead.fixedHeader a, thead.fixedHeader a:link, thead.fixedHeader a:visited {
color: #FFF;
display: block;
text-decoration: none;
width: 100%
}
/* make the A elements pretty. makes for nice clickable headers */
/* WARNING: swapping the background on hover may cause problems in WinIE 6.x */
thead.fixedHeader a:hover {
color: #FFF;
display: block;
text-decoration: underline;
width: 100%
}
/* define the table content to be scrollable */
/* set TBODY element to have block level attributes. All other non-IE browsers */
/* this enables overflow to work on TBODY element. All other non-IE, non-Mozilla browsers */
/* induced side effect is that child TDs no longer accept width: auto */
html>body tbody.scrollContent {
display: block;
height: 262px;
overflow: auto;
width: 100%
}
/* make TD elements pretty. Provide alternating classes for striping the table */
/* http://www.alistapart.com/articles/zebratables/ */
tbody.scrollContent td, tbody.scrollContent tr.normalRow td {
background: #FFF;
border-bottom: none;
border-left: none;
border-right: 1px solid #CCC;
border-top: 1px solid #DDD;
padding: 2px 3px 3px 4px
}
tbody.scrollContent tr.alternateRow td {
background: #EEE;
border-bottom: none;
border-left: none;
border-right: 1px solid #CCC;
border-top: 1px solid #DDD;
padding: 2px 3px 3px 4px
}
/* define width of TH elements: 1st, 2nd, and 3rd respectively. */
/* Add 16px to last TH for scrollbar padding. All other non-IE browsers. */
/* http://www.w3.org/TR/REC-CSS2/selector.html#adjacent-selectors */
html>body thead.fixedHeader th {
width: 200px
}
html>body thead.fixedHeader th + th {
width: 240px
}
html>body thead.fixedHeader th + th + th {
width: 316px
}
/* define width of TD elements: 1st, 2nd, and 3rd respectively. */
/* All other non-IE browsers. */
/* http://www.w3.org/TR/REC-CSS2/selector.html#adjacent-selectors */
html>body tbody.scrollContent td {
width: 200px
}
html>body tbody.scrollContent td + td {
width: 240px
}
html>body tbody.scrollContent td + td + td {
width: 300px
}
-->
This is just ilustration. You can css all the cells if you want.
这篇关于两个表垂直对齐,如何同步宽度/间距?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文