调整大小时,具有最大宽度的容器不会包裹内联块子项

Posted

技术标签:

【中文标题】调整大小时,具有最大宽度的容器不会包裹内联块子项【英文标题】:Container with max-width won't wrap inline-block children when resized 【发布时间】:2015-06-30 14:32:12 【问题描述】:

我有这个代码:

@media screen and (max-width: 600px) 
  .col 
    max-width: 150px;
  


.wrapper 
  max-width: 500px;
  margin: 0 auto;
  background: grey;
  font-size: 0;


.col 
  width: 200px;
  margin-right: 100px;
  display: inline-block;


.col:last-child 
  margin-right: 0px;


img 
  max-width: 100%;
<section class="wrapper clearfix">
  <section class="col">
    <img src="http://placehold.it/200x120" >
  </section>
  <section class="col">
    <img src="http://placehold.it/200x120" >
  </section>
</section>

DEMO

当媒体查询被激活时,容器不会环绕它的元素。漂浮的孩子也会发生同样的事情(我猜这很正常)。

【问题讨论】:

这里有一个简单的例子来更好地表达我的问题:i.stack.imgur.com/Wggtj.png 你也可以尝试使用浮点数。 【参考方案1】:

Demo

一种选择是添加一个“内部”包装器;只是包装器中的包装器。您可以将其设为display inline-block 并在父包装器上设置text-align center。最后,从 wrapper 中移除灰色背景并应用到内部 wrapper。

只有一个缺点是,当您将窗口设置得很小时,.col div 不会在左侧排列。不知道这对你来说是否是个问题

html

<section class="wrapper clearfix">
     <div class='inner-wrap'>
        <section class="col">
            <img src="http://placehold.it/200x120" >
        </section>
        <section class="col">
            <img src="http://placehold.it/200x120" >
        </section>
            </div>
    </section>

css

@media screen and (max-width: 600px) 
    .col 
        max-width: 150px;
    


.inner-wrap 
    display: inline-block;
    background: grey;

.wrapper 
    text-align: center;
    max-width: 500px;
    margin: 0 auto;
    font-size: 0;


.col 
    width: 200px;
    margin-right: 100px;
    display: inline-block;


.col:last-child 
    margin-right: 0px;


img 
    max-width: 100%;

【讨论】:

以上是关于调整大小时,具有最大宽度的容器不会包裹内联块子项的主要内容,如果未能解决你的问题,请参考以下文章

响应式网格图块覆盖[重复]

使用具有最大宽度/高度的 ImageMagick 调整大小

jQuery图像调整大小 - 宽度不适合

在最长边上调整图像大小[重复]

表格中的右图未调整大小

WPF 不需要的网格拆分器行为