Chrome中的CSS表和最大宽度无法正常工作

TM2*_*M23 15 css firefox google-chrome css-tables

这是我的CSS代码;

#wrap {
    width:50em;
    max-width: 94%;
    margin: 0 auto;
    background-color:#fff;  
}

#head {
    width:50em;
    height:10em;
    max-width: 100%;
    margin: 0 auto;
    text-align:center;
    position: relative;
}

#css-table { 
    display: table; 
    margin: 1em auto;
    position: relative;
    width:50em;
    max-width: 100%;            
}

#css-table .col { 
    display: table-cell; 
    width: 20em;
    padding: 0px;
    margin: 0 auto;
}

#css-table .col:nth-child(even) { 
    background: #fff;
}

#css-table .col:nth-child(odd) { 
    background: #fff;
    border-right: 4px double #b5b5b5;
}
Run Code Online (Sandbox Code Playgroud)

我的HTML代码;

<div id="cont">
    <div id="css-table">
        <div class="col">123</div>
        <div class="col">123</div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

当我缩放Firefox窗口时,表格甚至可以缩小到300px宽度视口......就像我想要的那样.但在Chrome中,只有当视口宽度超过50em时,该表才正常.如果我缩小Chrome窗口,桌子会在包裹的右侧渗出.

有没有理由为什么Chrome会这样做?

Dig*_*oug 19

从技术上讲,Chrome遵循规则,因为max-width应仅适用于块元素.

来自MSDN文档:

min-width/max-width属性适用于浮动和绝对定位的块和内联块元素,以及一些内部控件.它们不适用于未替换的内联元素,例如表行和行/列组.("被替换"元素具有内在维度,例如img或textArea.)

表(或在您的情况下显示:表)在技术上应该不起作用或不受支持.FF显然服从它很好,但你可能需要提出另一个解决方案,删除display:tablemax-width.

max-width属性

MSDN Doc


Ift*_*tah 9

我找到的解决方案是使用table-layout: fixedwidth: 100%


bla*_*d Ψ 5

创建一个div并给它一个样式来显示块和最大宽度.您可以使用传统的,<table>并赋予它100%宽度的样式.