10

使用 css {resize:both;} 调整表格单元格的大小不适用于表格

我需要调整表格及其单元格的大小,可以使用 css 调整大小,css {resize:both;} 在 div 中工作,但不在表格标签中

<table border="1" style="resize:both;">
<tr>
<td>hi table</td>
<td>hi div</td>
</tr>
<tr>
<td>hi table</td>
<td>hi div</td>
</tr>
<tr>
<td>hi table</td>
<td>hi div</td>
</tr>
</table>

任何身体都可以帮忙吗

4

4 回答 4

7

要涵盖 Chrome 和 Safari,请使用

th, td { resize: both; overflow: auto; }

不要在整个桌子上设置初始宽度。不过,您可以设置单元格或列的宽度。

为了涵盖 Firefox,恐怕您需要div用一个类将每个单元格的内容包装起来,并将相应的类选择器添加到上面的规则中。这将在每个单元格中的 Chrome 和 Safari 上引入两个调整大小的句柄......所以也许你应该使用

<td><div class=cell>...</div></td>

对于每个单元格和 CSS 规则

.cell { resize: both; overflow: auto; width: 100%; height: 100%; }

(不使td元素可调整大小)。

这样,所有单元格都可以调整大小,因此整个表格可以间接调整大小(只要您不设置其宽度和高度)。

原则上,resize适用于所有具有overflow除 之外的属性的元素visible。在实践中,它的工作方式更加有限,并且在不同的浏览器中也有所不同。

于 2012-11-16T11:41:07.137 回答
6

看来 resize: 不适用于表格。

table {
    border:2px solid;
    padding:10px 40px; 
    width:300px;
    resize:both;
    overflow:auto;
}​

http://jsfiddle.net/Kyle_/q4qwp/

但是您可以将表格包装在 div 中并将 resize: 设置为 div,但即使使用 % 宽度值也无法缩小表格。

http://jsfiddle.net/q4qwp/3/

于 2012-11-16T07:45:56.110 回答
2

要调整表格和表格列的大小,您必须使用 Javascript。有几个 jQuery 插件可以这样做,例如colResizable,它允许您手动拖动列锚。

这是一小段代码:

$("#tabe").colResizable({}); 

您可以在以下位置找到更多示例:http ://www.bacubacu.com/colresizable/ 或者您可以试试这个小提琴:http: //jsfiddle.net/euka4rm3/

于 2014-12-23T11:13:30.237 回答
1

您可以使用外部 div 的样式来更改表格的位置。例如

<div style="resize:both">
    <table id="sample table"></table>
</div>
于 2012-11-16T07:35:08.617 回答