2012-10-30 35 views
1

我有一些HTML代码可以生成包含标题和数据行的HTML表格。标题列不与数据列对齐。将表格标题与表格数据行对齐

我从我在网上找到的一个例子中得到了这段代码。我想要标题单元格宽度匹配表的数据单元格宽度。

这里是下面的代码是jsfiddle:http://jsfiddle.net/tee3n/

HTML

<div class="scrollableContainer"> 
    <div class="scrollingArea"> 
    <table class="cruises scrollable"> 
    <thead> 
     <tr> 
     <th><div class="name">Name</div></th> 
     <th><div class="operator">Operator</div></th> 
     <th><div class="began">Began operation</div></th> 
     <th><div class="tonnage">Tonnage</div></th> 
     <th><div class="status">Status</div></th> 
    </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td><div class="name">Name of ship</div></td> 
      <td><div class="operator">Who operates</div></td> 
      <td><div class="began">Began service when</div></td> 
      <td><div class="tonnage">How big</div></td> 
      <td><div class="status">Current status</div></td>       
     </tr> 
     <tr> 
      <td><div class="name">Name of ship</div></td> 
      <td><div class="operator">Who operates</div></td> 
      <td><div class="began">Began service when</div></td> 
      <td><div class="tonnage">How big</div></td> 
      <td><div class="status">Current status</div></td>       
     </tr> 
     <tr> 
      <td><div class="name">Name of ship</div></td> 
      <td><div class="operator">Who operates</div></td> 
      <td><div class="began">Began service when</div></td> 
      <td><div class="tonnage">How big</div></td> 
      <td><div class="status">Current status</div></td>       
     </tr> 
     <tr> 
      <td><div class="name">Name of ship</div></td> 
      <td><div class="operator">Who operates</div></td> 
      <td><div class="began">Began service when</div></td> 
      <td><div class="tonnage">How big</div></td> 
      <td><div class="status">Current status</div></td>       
     </tr> 
     <tr> 
      <td><div class="name">Name of ship</div></td> 
      <td><div class="operator">Who operates</div></td> 
      <td><div class="began">Began service when</div></td> 
      <td><div class="tonnage">How big</div></td> 
      <td><div class="status">Current status</div></td>       
     </tr><tr> 
      <td><div class="name">Name of ship</div></td> 
      <td><div class="operator">Who operates</div></td> 
      <td><div class="began">Began service when</div></td> 
      <td><div class="tonnage">How big</div></td> 
      <td><div class="status">Current status</div></td>       
     </tr> 
     <tr> 
      <td><div class="name">Name of ship</div></td> 
      <td><div class="operator">Who operates</div></td> 
      <td><div class="began">Began service when</div></td> 
      <td><div class="tonnage">How big</div></td> 
      <td><div class="status">Current status</div></td>       
     </tr></tr><tr> 
      <td><div class="name">Name of ship</div></td> 
      <td><div class="operator">Who operates</div></td> 
      <td><div class="began">Began service when</div></td> 
      <td><div class="tonnage">How big</div></td> 
      <td><div class="status">Current status</div></td>       
     </tr> 
     <tr> 
      <td><div class="name">Name of ship</div></td> 
      <td><div class="operator">Who operates</div></td> 
      <td><div class="began">Began service when</div></td> 
      <td><div class="tonnage">How big</div></td> 
      <td><div class="status">Current status</div></td>       
     </tr> 
     </tr><tr> 
      <td><div class="name">Name of ship</div></td> 
      <td><div class="operator">Who operates</div></td> 
      <td><div class="began">Began service when</div></td> 
      <td><div class="tonnage">How big</div></td> 
      <td><div class="status">Current status</div></td>       
     </tr> 
     <tr> 
      <td><div class="name">Name of ship</div></td> 
      <td><div class="operator">Who operates</div></td> 
      <td><div class="began">Began service when</div></td> 
      <td><div class="tonnage">How big</div></td> 
      <td><div class="status">Current status</div></td>       
     </tr> 
     </tbody> 
    </table> 
</div> 
</div> 

CSS:

table.cruises { 
    font-family: verdana, arial, helvetica, sans-serif; 
    font-size: 11px; 
    cellspacing: 0; 
    border-collapse: collapse; 
    width: 99.9%;  
    } 
    table.cruises th, table.cruises td { 
    border-right: 1px solid #999; 
    border-bottom: 1px solid #999; 
    width: 20%; 
    } 
    table.cruises th { background: #aab; } 
    table.cruises td { background: #eee; } 

    div.scrollableContainer { 
    position: relative; 
    width: 80%; 
    padding-top: 1.7em; 
    margin: 40px;  
    border: 1px solid #999; 
    background: black; 
    } 
    div.scrollingArea { 
    width: 100%; 
    height: 240px; 
    overflow: auto; 
    } 
    table.scrollable thead tr { 
    left: 0; top: 0; 
    position: absolute; 
    width: auto; 
    } 

    table.cruises .name  { width: 20%; } 
    table.cruises .operator { width: 20%; } 
    table.cruises .began { width: 20%; text-align:center; } 
    table.cruises .tonnage { width: 20%; text-align:center; } 
    table.cruises .status { width: 20%; } 

为什么头不与下面的数据列调心?

+0

你是否设法解决这个问题? –

+0

我结束了使用数据表插件(datatables.net)。 – Valter

回答

0

我结束了使用datatables插件(datatables.net)。

0

检查你的CSS:

table.scrollable thead th tr { 
    left: 0; top: 0; 
    position: absolute; 
    width: auto; 
    } 

我增加了th

此外,从

div.scrollableContainer { 
    position: relative; 
    width: 80%; 
    padding-top: 1.7em; 
    margin: 40px;  
    border: 1px solid #999; 
    background: black; 
    } 

padding-top: 1.7em;除去在顶部,以除去黑色空间。它应该工作(在Chrome中测试)。

+0

谢谢Sable Foste,但这不是我正在寻找它,我希望头部被修复。 – Valter

+0

然后我很困惑...在你的小提琴中,它看起来像你有你想要的东西,只有列不与表体对齐。它们在滚动条的宽度之外。你想把滚动条放到整个桌子的左边吗? – Sablefoste

+0

如果你在IE7上打开我的提琴......这就是我想要的。但它不适用于IE8或IE9。在IE8和IE9上,thead colums不与tbody列对齐。 – Valter