HTML:当表位于具有固定宽度的div内时,如何增加表列的宽度

时间:2013-08-28 11:34:15

标签: html css

以下HTML代码在固定宽度的div内创建一个表。似乎“th,td”宽度是从父div继承的(但是W3文档说它不是一个继承的属性!)。

如何增加表格列的宽度(比如500px)?

您可以看到更改“th,td”选择器中的宽度值对宽度没有任何影响。

请注意:
- 我不想改变div的宽度 - 我不想为我的桌子设置固定宽度
- 我试过“table-layout:fixed;”内部表选择器。它没有使“td,th”宽度属性起作用。

<!DOCTYPE html>
<html>

    <head>
        <style>
            table {
                border-collapse:collapse;
            }
            table, td, th {
                border:1px solid black;
            }
            th, td {
                /* Changing width doesn't make any difference */
                width:500px;
            }
            .myclass {
                width:200px;
                overflow:auto
            }
        </style>
    </head>

    <body>
        <div class="myclass">
            <table>
                <tr>
                    <th>Firstname</th>
                    <th>Lastname</th>
                    <th>Savings</th>
                    <th>Expenditure</th>
                </tr>
                <tr>
                    <td>Peter</td>
                    <td>Griffin</td>
                    <td>$100</td>
                    <td>$50</td>
                </tr>
            </table>
        </div>
    </body>

</html>

2 个答案:

答案 0 :(得分:2)

为什么不使用百分比?

jsfiddle:http://jsfiddle.net/qCYDq/

你也限制自己200px的宽度,如果表格内的文字(文字宽度)大于你的200px它会强制它的宽度然后使你的卷轴出现,因为桌子将拉伸以适应单词。

<!DOCTYPE html>
<html>
<head>
<style>
table {
    border-collapse:collapse;
    width: 100%;
    font-size: 9px;
}
td,th { 
    border:1px solid black;
    width: 25%;
}
.myclass
{
    width:200px;
    overflow:auto
}
</style>
</head>
<body>    
<div class="myclass">
    <table>
        <tr>
           <th>Firstname</th>
           <th>Lastname</th>
           <th>Savings</th>
           <th>Expenditure</th>
        </tr>
        <tr>
           <td>Peter</td>
           <td>Griffin</td>
           <td>$100</td>
           <td>$50</td>
        </tr>
    </table>
</div>
</body>
</html>

答案 1 :(得分:1)

最后,让它发挥作用!

“table-layout:fixed; width:100%”诀窍......

<!DOCTYPE html>
<html>

<head>
    <style>
        table {
            border-collapse:collapse;
        }
        table, td, th {
            border:1px solid black;
        }
        th, td {
            /* Changing width doesn't make any difference */
            width:500px;
        }
        .myclass {
            width:200px;
            overflow:auto
        }
    </style>
</head>

<body>
    <div class="myclass">
        <table>
            <tr>
                <th>Firstname</th>
                <th>Lastname</th>
                <th>Savings</th>
                <th>Expenditure</th>
            </tr>
            <tr>
                <td>Peter</td>
                <td>Griffin</td>
                <td>$100</td>
                <td>$50</td>
            </tr>
        </table>
    </div>
</body>

</html>