html - Flexbox:当屏幕太小时折叠 - 如何?

标签 html css responsive-design flexbox

我想在我的网站上实现两张图片,只要屏幕宽度大于 600 像素,它们就会并排显示,但当可用宽度较小时(例如在智能手机上),它们就会折叠。

.imgrid {
  display: flex;
  flex-flow: row wrap;
}

.img {
  flex: 1;
}

.img img {
  max-width: 100%;
}
<section class="imgrid">
  <div class="img">
    <img src="http://via.placeholder.com/500x500" />
  </div>
  <div class="img">
    <img src="http://via.placeholder.com/500x500" />
  </div>
</section>

.imgrid 具有 flex-flow: row wrap 以便当没有足够的空间在同一行显示两个元素时它会换行。所以这里的想法是,一旦没有足够的可用屏幕宽度,它就会自然地折叠。

但是,

.imgflex: 1; 阻止了这种情况的发生,因为图像将被缩放为相同的大小并共享线条的宽度。

我添加了一个媒体查询,但我不知道该怎么做。理想情况下,我会简单地删除 flex: 1 但我认为这是不可能的。

如何在不恢复使用 px 的情况下实现这种效果?我的意思是 flex wrapping 是一种非常优雅的做事方式,我认为有一种非常自然的方式可以实现这一点?

最佳答案

当屏幕小于 600px 时,您可以添加媒体查询。演示:

.imgrid {
  display: flex;
  flex-flow: row wrap;
}

.img img {
  width: 100%;
}

/* add media query for growing and shrinking */
@media (max-width: 600px) {
  .img {
    flex: 1 1 auto;
  }
}
<section class="imgrid">
  <div class="img">
    <img src="http://via.placeholder.com/500x500" />
  </div>
  <div class="img">
    <img src="http://via.placeholder.com/500x500" />
  </div>
</section>

关于html - Flexbox:当屏幕太小时折叠 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45544937/

相关文章:

css - Wordpress: Logo 在小屏幕上的尺寸非常小

html - 如何使用 flexbox 实现复杂的响应式 HTML 布局?

html - 高度响应水平图像库,固定页眉和页脚

javascript - 可编辑的 Div 边框样式

javascript - 如何向移动网站提供更少的图片

javascript - SVG 响应在 Bootstrap 3 中不起作用

javascript - 在 Rails 中清理 CSS

html - 如何调整下拉菜单的宽度?

html - iframe 高度属性不适用于 Firefox

css - 如何在 Primefaces 中垂直对齐 inputText 和 commandButton