css - 单个 "column"中的全宽 flex 元素

标签 css flexbox

<分区>

我有一个简单的 flexbox 设置,其中元素具有固定宽度,并在需要时很好地换行到下一行:

enter image description here

但是,当父元素宽度足够小并且元素都出现在一列中时,元素右侧的空白看起来会很别扭:

enter image description here

有没有一种简单的方法可以保持第一个屏幕截图中的行为,但在单个“列”中让元素填充父元素的整个宽度?据我所知,我不能使用媒体查询,因为我需要相对于特定父元素而不是整个屏幕宽度的东西。在单列的情况下,事情看起来像这样:

enter image description here

示例代码如下:

.cont {
  display: flex;
  flex-wrap: wrap;
  overflow: auto;
}

.item {
  flex: 0 1 auto;
  width: 200px;
  height: 50px;
  border: 1px solid black;
  background: red;
  margin-right: 10px;
  margin-bottom: 10px;
}
<div class="cont">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

最佳答案

在媒体查询中添加此样式

@media screen and (max-width: 480px) {
  .item {
    width: 100%;
  }
}

.cont {
  display: flex;
  flex-wrap: wrap;
  overflow: auto;
}

.item {
  flex: 0 1 auto;
  width: 200px;
  height: 50px;
  border: 1px solid black;
  background: red;
  margin-right: 10px;
  margin-bottom: 10px;
}

@media screen and (max-width: 480px) {
  .item {
    width: 100%;
  }
}
<div class="cont">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

关于css - 单个 "column"中的全宽 flex 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50932294/

上一篇:html - 如何放置窗口/导航栏 HTML 底部的 div - materializecss

下一篇:css - @supports 不在 FF 和 Chrome 中使用

相关文章:

css - CSS3 Flexbox 中的简约干净响应式布局 : Desktop <> Mobile toggle

javascript - Internet Explorer 上的 jquery ajax 问题

javascript - jQuery KeyUp() 问题

css - PrimeNG 样式/主题

html - Flexbox 在 Internet Explorer 11 中不工作

javascript - 使用 (flexlayout) 列时,div 大小不正确

html - 对齐元素 : center distorts height of parent

html - 用于隐藏 HTML 元素并保持其宽度和高度的 CSS?

html - 为什么我的 60px <img> 有一个 7.5px 的底部边距,而我从未设置它并且在 'Elements' 控制台中没有任何注册?

html - 伪元素与 anchor 标记边框不对齐