【问题标题】:How to get items to stretch to fill width?如何让项目拉伸以填充宽度?
【发布时间】:2017-12-19 23:59:22
【问题描述】:

.container {
  display: grid;
  grid-template-columns: repeat(auto-fill, 100px);
  grid-gap: 3px;
  border: 1px solid green;
}

.item {
  border: 1px solid red;
  height: 50px;
}
<div class="container">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

如何稍微拉伸红色的item 框,使它们填满绿色的container 框的整个宽度?

它们都应该是相同的宽度,并且比 100 像素大一点。

最后一行应该像现在一样左对齐。

【问题讨论】:

    标签: css grid-layout css-grid


    【解决方案1】:

    您只需在grid-template-columns 规则中添加一个分数单位

    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    

    此规则会创建尽可能多的列以适合容器。

    每列的最小宽度为 100px。

    最大宽度为1fr,这意味着该列将占用行上的任何可用空间。

    现在容器中的所有水平空间都被使用了。

    .container {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
      grid-auto-rows: 50px;
      grid-gap: 3px;
      border: 1px solid green;
    }
    
    .item {
      border: 1px solid red;
    }
    <div class="container">
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
    </div>

    这些帖子更详细地解释了上述解决方案:

    【讨论】:

    • 在这种情况下1frauto 有区别吗?听起来“自动”可能会使列宽不均匀,但事实并非如此。
    • 列宽不均匀,因为每列的最小宽度固定为100px,并且items中没有内容,这是auto的依据.
    • 啊..好的。谢谢!在我的实际使用中,内容确实有所不同,但它没有重新分发,我猜是因为我有overflow: hidden?无论如何..没关系,这是完美的。再次感谢!
    猜你喜欢
    • 2018-04-25
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    相关资源
    最近更新 更多