2013-01-18 31 views
1

我需要将中间列设置为100%。除非将列宽更改为100%,否则它将删除其他列的所有宽度,否则该CSS可以正常工作。有人知道为什么样式表使用CSS的不同宽度的列

.SummaryTable td:first-child 
{ 
    width: 150px; 
} 
.SummaryTable td:first-child + td 
{ 
    width: 150px; /*100% will remove other col widths*/ 
} 
.SummaryTable td:first-child + td + td 
{ 
    width: 175%; 
} 

这里是fiddle

+0

你应该添加小提琴。 –

+2

将中间一个设置为100%意味着占用整个空间 - 您为其他单元留下了什么空间?你想达到什么目的? – codingbiz

+0

表格宽度设置为100%以填满Div。然后,我想要第1列和第3列被固定,而第2列填充剩余区域。我只是回答了我自己的问题。我从第二列中删除了宽度样式,现在它工作正常。 – TroyS

回答

3

不设置宽度为中间电池应该修复它为你提供的表具有宽度= 100%。

其他单元格将被固定,但没有指定宽度的单元格将填满屏幕。

试试这个,我认为它应该工作

.SummaryTable td:first-child 
{ 
    width: 150px; 
} 
.SummaryTable td:first-child + td 
{ 
    /* don't set any width for the middle cell, it would expand */ 
} 
.SummaryTable td:first-child + td + td 
{ 
    width: 150px; 
} 
+0

这是我的jsfiddle。 [小提琴](http://jsfiddle.net/xv4TJ/) – TroyS

0

给总表中的特定宽度:

.SummaryTable {width: 100%} 

然后从第二列中删除的宽度,导致它填补剩余第一个和第三个宽度已经从总宽度中剩下。

0

如果我是你,我wouldnt使用css :child,它不会工作在旧版本的IE浏览器。 (IE8,IE7 ..)。

您更好地使用jQuery的是,你可以尝试:

$('.SummaryTable td:nth-child(2)').css({width: '100%'})

或者你可以使用:eq

$('.SummaryTable td:eq(1)').css({width: '100%'})

注意,当您使用:eq计数器由0开始,所以1是第二位。