获取标题元素与表元素内联

时间:2012-04-22 22:15:03

标签: html html-table caption

我构建了一个利用标题元素的表格;桌子周围有盒子阴影,默认情况下,标题放在桌子顶部,在盒子阴影之外。我试图让标题落在盒子阴影里面。我将标题的显示更改为display:table-header-group,它确实将其放在表格中,但是“打破”了我想要的布局....你可以在这里看到它:http://jsfiddle.net/jalbertbowdenii/YraVE/(我只在chrome)第一列占用的宽度比其他列宽得多。有人知道一个解决方案,将标题放在表中,同时不移动列宽吗?

CSS:

table{border-collapse:collapse; border-spacing:0; padding-top:0.5em; padding-bottom:0.5em; margin:0.8em auto; -moz-box-shadow:0 0 4px #000; -ms-box-shadow:0 0 4px #000; -o-box-shadow:0 0 4px #000; -webkit-box-shadow:0 0 4px #000; box-shadow:0 0 4px #000; color:#000; width:80%}
.captionx{display:table-header-group}

HTML:

<h1>Caption Default <code>display:table-caption</code></h1>      
<table summary="Summary of Table Data">
        <caption>Caption for Table</caption>
        <thead><tr><th>Sun</th><th>Mon</th><th>Tues</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr></thead>
        <tfoot><tr><td colspan="7"><p>Table Footer</p></td></tr></tfoot>    
        <tbody>
          <tr><td>01</td><td>02</td><td>03</td><td>04</td><td>05</td><td>06</td><td>07</td></tr>        
        </tbody>
      </table>
<hr />
<h1>Caption set to <code>display:</code></h1>
      <table summary="Summary of Table Data">
        <caption class="captionx">Caption for Table</caption>
        <thead><tr><th>Sun</th><th>Mon</th><th>Tues</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr></thead>
        <tfoot><tr><td colspan="7"><p>Table Footer</p></td></tr></tfoot>    
        <tbody>
          <tr><td>01</td><td>02</td><td>03</td><td>04</td><td>05</td><td>06</td><td>07</td></tr>        
        </tbody>
      </table>

1 个答案:

答案 0 :(得分:2)

我刚遇到同样的问题并得到了这个问题。如果你确定你的标题只有一行(即你知道它的高度),你可以尝试将其设置为position:absolute,将table设置为position:relative并设置padding-top等于caption的高度。

table {
    position: relative;
    padding-top: 20px;
}

caption {
    position: absolute;
    top: 0;
    left: 0;
    height: 20px;
    line-height: 20px;
}