好的,这里有一个需要翻译的问题,涉及到it技术。我想要一个包含4列的表格,即使在调整浏览器大小时,我只想查看其中的3列,第4列始终隐藏不可见。但是,我仍然需要保留滚动条,以便在必要时可以滚动到第4列。本质上,3列占据了视口的100%。
我想要使用jQuery实现这一功能,而不使用任何插件。
好的,这里有一个需要翻译的问题,涉及到it技术。我想要一个包含4列的表格,即使在调整浏览器大小时,我只想查看其中的3列,第4列始终隐藏不可见。但是,我仍然需要保留滚动条,以便在必要时可以滚动到第4列。本质上,3列占据了视口的100%。
我想要使用jQuery实现这一功能,而不使用任何插件。
这符合您的想象吗? http://jsfiddle.net/daybreaker/b6LEd/
HTML:
<div id="container">
<table>
<tr>
<th>Row 1</th>
<th>Row 2</th>
<th>Row 3</th>
<th>Row 4</th>
</tr>
<tr>
<td>Row 1 Content</td>
<td>Row 2 Content</td>
<td>Row 3 Content</td>
<td>Row 4 Content</td>
</tr>
</table>
</div>
CSS:
body{
width: 600px;
}
#container {
overflow: scroll;
width: 600px;
}
#container table tr td {
min-width: 200px;
}
JSFiddle目前对我来说无法工作,因此没有实时演示。
(至于为什么它显示“行”而不是“列”,我要归咎于@daybreaker,因为我是从他的fiddle开始的)
<style type="text/css">
table { border-collapse: collapse; }
th, td { border: 1px solid #000; padding: 5px; }
</style>
<script type="text/javascript">
$(window).bind('load resize', function() {
var col_width = $('#optional-data').outerWidth();
$('#mytable').css('position','absolute').css('right', (-1) * col_width);
});
</script>
<table>
<tr>
<th>Row 1</th>
<th>Row 2</th>
<th>Row 3</th>
<th id="optional-data">Row 4</th>
</tr>
<tr>
<td>Row 1 Content</td>
<td>Row 2 Content</td>
<td>Row 3 Content</td>
<td>Row 4 Content</td>
</tr>
</table>
好的,伙计们。这是如何做到的,创建一个函数,您可以在body标签中调用onResize。创建一个表格,其中包含一个标题行,该行跨越3个未使用的列,使其不换行(很重要)。获取总宽度视口的大小,并将第一个td的宽度设置为该大小,实际上比我想象的要容易:
<html>
<head>
<script src="jquery.min.js"></script>
<script type="text/javascript">
function doColWidths(){
$("td:first").css("width",$(window).width());
}
</script>
</head>
<body onresize="doColWidths()">
<table>
<tr>
<td colspan="3" nowrap="nowrap"></td><td></td>
</tr>
<tr>
<td id="col1">Col1</td>
<td id="col2">Col2</td>
<td id="col3">Col3</td>
<td id="col4">Col4</td>
</tr>
</table>
</body>
</html>
我希望这能帮助到未来的某个人。
设计选择极差,但你可以这样做:
当然,这引出了一个问题:如果第四列永久处于屏幕外并且因此不可见,那么它的目的是什么?如果只是用来存储其他东西,那么你可以使用隐藏的 div 来实现相同的效果。当然,简单地禁用 CSS 或查看页面源代码将揭示该列的内容,因此它对于保密信息的隐藏毫无用处。