我构建了一个利用标题元素的表格;桌子周围有盒子阴影,默认情况下,标题放在桌子顶部,在盒子阴影之外。我试图让标题落在盒子阴影里面。我将标题的显示更改为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>
答案 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;
}