2012-04-22 60 views
1

我构建了一个利用字幕元素的表格;桌子周围有盒子阴影,默认情况下,标题放置在桌子上方,盒子阴影之外。我试图让标题落入箱形阴影内。我将标题的显示更改为display:table-header-group,它将其放置在表格内,但是“打破”了我期望的布局....您可以在此处看到:http://jsfiddle.net/jalbertbowdenii/YraVE/(我只在铬中查看过)第一列占用了很多比其他列更宽。任何人都知道一个解决方案,将标题放在表中,同时不移动列宽?获取与表格元素内嵌的字幕元素

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> 

回答

2

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

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

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

这不适合我。 http://jsfiddle.net/YraVE/3/ – albert 2017-09-09 22:41:23