编辑2:
问题似乎在于“bigtable”元素和规则。显然,在布局模板上使用时,它继承了错误的最小宽度。我还在调查。
不过,我还是要再试一试。一个大问题是使用固定的导航和动态内容,但我已经找到了这个(http://alistapart.com/article/holygrail)的圣杯解决方案。
谢谢你的建议和所有可爱的特罗洛洛。
编辑:
我把这个问题复制到http://jsbin.com/eyitij/4/edit
我对桌子+td宽度有个奇怪的问题。我有类似的代码:
<table class="mainLayout" style="width: 100%;">
<tr>
<td style="width: 250px;">
<div id="leftNavigationPanel"> * content * </div>
</td>
<td id="panelCell">
<div class="panel">
<table id="bigTable" width="100%"> * LOTS OF CONTENT, includes big table * </table>
</div>
</td>
<tr>
</table>
当我在浏览器上运行这段代码时,mainlayout溢出了,所以它变成了3600px,这是由于面板内的大表造成的。
我所指的大表可以包含在屏幕中。当这样做,它得到水平滚动条(这是我想要的)。如果大表加载在单独的html文件中,并且规则为“width:100%”,则此操作有效。
在添加mainlayout规则“display:block;”之后,mainlayout表呈现约1800px并包含在屏幕中,但问题是“panelcell”-td仍宽约3400px,所以我仍有整个页面滚动…td不包含在表中,但总是扩展到250px+bigtable.width()!是吗?
基本上浏览器不知道如何计算“panelcell”来填充:window.width-leftnavigationpanel。
有什么想法可以在不使用javascript+为“panelcell”预先计算的最大宽度规则的情况下创建正确的规则吗?
PanelCell必须包含在窗口中
bigtable必须包含在panelcell中,并带有滚动条
最佳答案
设置表布局:修复了表的许多奇怪问题:
<table style="table-layout:fixed;">
<col style="width:250px"/>
<col/>
<tr>
...