我有一个div内的表,可以有任意的行。有时行会扩展以容纳多行文本。该div有一个固定的高度和溢出:隐藏。如何在行边界处截断表溢出?
我的问题是,是否有可能截断表,使溢出发生在行边界?
例如,有没有办法让这个:
是这样的:
主要的缺点是,这种不得使用JavaScript。这是可能的HTML/CSS?如果有必要,我可以在代码隐藏(ASP.NET Webforms)中做一些事情,尽管我想避免它。
它必须在IE7和IE8中工作。显示的行数不固定 - 取决于有多少行以额外文本溢出。
我有一个div内的表,可以有任意的行。有时行会扩展以容纳多行文本。该div有一个固定的高度和溢出:隐藏。如何在行边界处截断表溢出?
我的问题是,是否有可能截断表,使溢出发生在行边界?
例如,有没有办法让这个:
是这样的:
主要的缺点是,这种不得使用JavaScript。这是可能的HTML/CSS?如果有必要,我可以在代码隐藏(ASP.NET Webforms)中做一些事情,尽管我想避免它。
它必须在IE7和IE8中工作。显示的行数不固定 - 取决于有多少行以额外文本溢出。
除非你戴上这个JavaScript魔术帽,否则你不能削减被div
溢出特别限制的行。 CSS不知道你的内容是如何渲染的,或者不知道 - 这取决于浏览器。
您可以隐藏每一个通过,而不是做这样的事情的任意行之后来到行:
#somediv #sometable tr:nth-child(5) ~ tr {
display: none;
}
唯一真正的问题是,虽然~
是IE7及更高版本的支持,只有IE9支持:nth-child()
。你可以解决,通过堆叠多个+
组合程序,但你最终有一个相当长的选择:
#somediv #sometable tr:first-child + tr + tr + tr + tr ~ tr {
display: none;
}
如果在你的表太多行,限制了你的页面的行数代码隐藏可能更好一些,因为你可以通过削减额外的几百个字节来节省一些带宽,否则这些字节会被传输但从未被看到。
Eek抱歉,我在OP中忘记了一些注意事项。它必须在IE7和IE8中工作。显示的行数不固定 - 取决于有多少行以额外文本溢出。感谢您的帮助,这当然更接近我所需要的。 – 2011-05-05 23:35:44
哦,是的,带宽/性能不是问题,但谢谢你的提示。 – 2011-05-05 23:36:44
@Martin:在IE7 +中有很多'+'的工程,但使用CSS和'screen'风格,你只能选择一个任意的行并从那里截断。 – BoltClock 2011-05-05 23:38:22