1

我在这里尝试做的是在一个最大宽度为 300px的 div 中创建一个带有 Javascript(成功)的表。

现在,如果我的表格宽于 300 像素,我希望隐藏溢出,但发生的情况是表格每次将其宽度缩小到 300 像素,即使我将其设置<td>为不同的宽度:

<style>
#tablespace {
margin:auto;
position:relative;
width:300px;
overflow:hidden;    
}
</style>

<button onclick="CreateTable()" >Try it</button>
<div id="tablespace">
   <p id="tablespace"> </p>
</div>

<script>
function CreateTable()
{
    var tablecontents = "";
    tablecontents = "<table border=1>";
//number of rows
for (var i = 0; i < 3; i ++)
{ 
tablecontents += "<tr>";
//number of columns
    for (var a = 0; a < 5; a ++)
    {
      tablecontents += "<td height= 50, width= 100>" + i + "</td>";      
    }
    tablecontents += "</tr>";
}
tablecontents += "</table>";
document.getElementById("tablespace").innerHTML = tablecontents;
}
</script>

因此,我使用单元格的高度为 50 像素和宽度为 100 像素,因为我的 div 的最大宽度为 300 像素,我应该只看到 2 个半单元格,然后其余的单元格被隐藏,但事实并非如此。

我知道这可能是一个基本错误,但我不知道。

4

2 回答 2

0

用于min-width表格单元格。

演示:http: //jsfiddle.net/jUqvj/

快速示例:

CSS:

div {
    max-width: 300px;
    border: 1px solid #f00;
    overflow: hidden;
}
#table1 td {
    min-width: 100px;
    border: 1px solid #0ff;
}
#table2 td {
    width: 100px; /* here it's not effective as desired */
    border: 1px solid #0ff;
}

HTML:

<pre>With min-width on table cells</pre>
<div>
    <table id="table1">
        <tr>
            <td>Col1</td>
            <td>Col2</td>
            <td>Col3</td>
            <td>Col4</td>
        </tr>
        <tr>
            <td>Col1</td>
            <td>Col2</td>
            <td>Col3</td>
            <td>Col4</td>
        </tr>
        <tr>
            <td>Col1</td>
            <td>Col2</td>
            <td>Col3</td>
            <td>Col4</td>
        </tr>
    </table>
</div>
<hr><br>
<pre>Without min-width on table cells</pre>
<div>
    <table id="table2">
        <tr>
            <td>Col1</td>
            <td>Col2</td>
            <td>Col3</td>
            <td>Col4</td>
        </tr>
        <tr>
            <td>Col1</td>
            <td>Col2</td>
            <td>Col3</td>
            <td>Col4</td>
        </tr>
        <tr>
            <td>Col1</td>
            <td>Col2</td>
            <td>Col3</td>
            <td>Col4</td>
        </tr>
    </table>
</div>
于 2013-05-13T21:45:34.527 回答
0

尝试改变它(我不知道这是否真的已经在代码中了):

tablecontents += "<td height= 50, width= 100>" + i + "</td>";

tablecontents += '<td height="50px", width="100px">' + i + "</td>";

顺便说一句,我建议跳过所有这些 HTML3 参数,并通过单独的 CSS 类来完成这一切

tablecontents += '<td class='croppedTable'>' + i + "</td>";

<style>
#tablespace {
margin:auto;
position:relative;
width:300px;
overflow:hidden;    
}

.croppedTable {
... some styles ...
}
.croppedTable TD {
... some additional styles ...
width: 100px;
height: 50px;

}
</style>
于 2013-05-13T22:04:32.823 回答