24

这是我的 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;
}

还有我的 HTML 代码;

<div id="cont">
    <div id="css-table">
        <div class="col">123</div>
        <div class="col">123</div>
    </div>
</div>

当我缩放 Firefox 窗口时,表格甚至可以缩小到 300 像素宽度的视口……就像我想要的那样。但是在 Chrome 中,只有当视口宽于 50em 时,表格才显得正常。如果我缩小 Chrome 窗口,表格会在包装的右侧流出。

Chrome这样做是有原因的吗?

4

4 回答 4

24

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

来自 MSDN 文档:

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

该表(或在您的情况下为 display:table)在技术上不应工作或受支持。FF 显然很好地遵守了它,但您可能需要提出另一种解决方案,或者删除display:tablemax-width

最大宽度属性

MSDN 文档

于 2012-09-02T02:48:36.863 回答
21

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

于 2017-01-16T12:16:04.340 回答
7

创建一个 div 并为其设置样式以显示块和最大宽度。您可以使用传统<table>的并给它一个 100% 宽度的样式。

于 2012-09-02T04:58:14.433 回答
0

我能够使用 mixin(SASS) 来解决这个问题。

 @mixin clearfix {
   &::after{
    content: "";
    display: table;
    clear: both;
   }
 }
于 2018-06-03T01:39:22.703 回答