我会使用一点 JavaScript 来解决您的问题:http: //jsfiddle.net/qR9g2/
var tableSize = 400; // example of size
var firstCol = document.getElementById('firstCol_01');
var sizeOfFirstCol = firstCol.offsetWidth;
var myOtherCols = document.getElementsByTagName('td');
var nbcols = myOtherCols.length;
var sizeOtherCols = (tableSize-sizeOfFirstCol)/(nbcols-1);
for(var i=0;i<nbcols; i++)
{
if(myOtherCols[i].className === 'otherCols')
{
myOtherCols[i].style.width = sizeOtherCols+'px';
}
}
首先给出整体表的大小。然后去获取第一列的大小,并将其余的宽度分配给其他列。
编辑:这是一个 CSS 解决方案。它并不完美,但总比没有好:http: //jsfiddle.net/qR9g2/2/
在css中,主要思想如下:
.col1{
display:table;
float:right;
}
为第一列添加标签display:table
。这将像fit-content
所有浏览器一样工作。添加 afloat:right
会将第一列推到右侧并将其“粘贴”到表格的其余部分。
视觉效果正是您想要的。不利的一面是,问题在于您的桌子比看起来(在左侧)占据的位置更多。(基本上,如果您有一个 400px 的表格,它有 4 列,它会自动为每列提供 4*100px。添加上部 CSS 解决方案只会将 col1 移动到为该列提供的 100px 的右侧)。
您总是可以尝试使用负左边距(我不推荐),以便将您的桌子移到左边。