我正在尝试在CSS中创建4列布局。每列宽度相同,并包含:

A.图片
B.与图片有关的文字。

随着屏幕宽度的缩小,这些列应一一折叠。以及在屏幕扩展时最多可扩展到彼此相邻的4列。当所有列都相互折叠(在移动版本的屏幕宽度下)时,这些列应位于屏幕中央,而不是冲洗到屏幕的右侧/左侧。

以下代码片段显示了到目前为止的内容:

<div class="sections">
    <div>
        <img src="http://placehold.it/110x110"/>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
    </div>
    <div>
        <img src="http://placehold.it/110x110"/>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
    </div>
    <div>
        <img src="http://placehold.it/110x110"/>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
    </div>
    <div>
        <img src="http://placehold.it/110x110"/>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
    </div>
</div>


.sections {
    display: table;
    margin: 0 auto;
}
.sections div {
    display: table-cell;
    padding: 0 0.5em 1em 0;
    text-align: center;
    vertical-align: center;
    width: 20em;
}

最佳答案

如果媒体查询无济于事,只需将.sections div显示属性值更改为inline-block



.sections {
  display: table;
  margin: 0 auto;
}
.sections div {
  text-align: center;
  width: 20em;
  padding: 0 0.5em 1em 0;
  display: inline-block; /* Thats all you need */
  vertical-align: middle;
}

<div class="sections">
  <div>
    <img src="http://placehold.it/110x110" />
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
  </div>
  <div>
    <img src="http://placehold.it/110x110" />
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
  </div>
  <div>
    <img src="http://placehold.it/110x110" />
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
  </div>
  <div>
    <img src="http://placehold.it/110x110" />
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
  </div>
</div>

10-07 17:26