使用display来阻止div:来自拉伸的table-cell

时间:2011-02-13 00:03:13

标签: html css

我有以下HTML

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
    <title>Table-cell issue</title>
    <style type="text/css">
        html, body { height: 100%; }
        .table
        {
            display: table;
            height: 100%;
        }
        .row
        {
            display: table-row;
        }
        .aside
        {
            display: table-cell;        
        }
        .center
        {
            background-color: red;
            display: table-cell;
            width: 100%;
        }
        .wide
        {
            background-color: green;
            width: 16000px;
        }
    </style>
</head>
<body>
    <div class="table">
        <div class="row">
        <div class="aside">
            Left column
        </div>
        <div class="center">
            <div class="wide">&nbsp;</div>
        </div>
        <div class="aside">
            Right column
        </div>
        </div>
    </div>
</body>
</html>

问题是div.center伸展以适应其内容,而div.table意味着占据整个视口,div.center内容的其余部分应该是不可见的。 overflow:hidden和显式宽度设置(例如900px)都没有帮助。

如果想解决这个问题,我将非常感激。

1 个答案:

答案 0 :(得分:5)

在表格div上使用table-layout:fixed。这会禁用自动单元格大小调整,并且只会使中心的宽度达到允许的范围。