html - 如何设置CSS网格列的最大宽度

标签 html css css-grid

<分区>

我有一个 CSS 网格,当有很多元素时,它看起来和工作起来都很棒。但是,当有 1、2 或 3 个元素时,卡片会被拉伸(stretch)。

我尝试为每张卡片设置 max-width,但列的宽度保持不变。有没有办法设置每列的 max-width ?只有当有 3 列或更少时,我才需要使用它。 (我对 css 网格很陌生)

.big-container {
  padding: 0 10%;
}

.header {
  width: 100%;
  height: 50px;
  background-color: blue;
}
.container {
  border: 1px solid black;
  display: grid;
  justify-content: space-between;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  grid-gap: 10px;
}
.box {
  border: 1px solid black;
  height: 30px;
  background-color: yellow;
}
<div class="big-container">
  <div class="header"></div>
  <p>Text</p>
  <div class="container">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>

</div>
</div>

谢谢!

最佳答案

grid-template-columns 设置为 auto-fill,将防止单元格在第 < 4 列的情况下拉伸(stretch)

请看下面的片段:

.big-container {
  padding: 0 10%;
}

.header {
  width: 100%;
  height: 50px;
  background-color: blue;
}

.container {
  border: 1px solid black;
  display: grid;
  justify-content: space-between;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  grid-gap: 10px;
}

.box {
  border: 1px solid black;
  height: 30px;
  background-color: yellow;
}
<div class="big-container">
  <div class="header"></div>
  <p>Text</p>
  <div class="container">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
  </div>
</div>

关于html - 如何设置CSS网格列的最大宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49081957/

相关文章:

javascript - 页面加载到另一个页面的 ID 时滚动到顶部失败

c# - 图像、CSS 在登录屏幕页面加载 session 超时后未加载。

javascript 工具提示跟随光标位置

JavaScript Toggle 不适用于许多具有相同类属性的元素

css - 如何使 CSS 网格左列适合行数

css - 如何使用 css 网格重新创建 float 布局?

javascript - 根据选择的单选/选择选项禁用/启用文本框 Javascript

当文本框在最多 3 个数字算法中为空时,javascript 特定警报

javascript - 如何将包含 "< >"个字符的文本作为纯文本插入到 TinyMCE 中,而不将其视为 HTML 标签

css - 使用 CSS Grid 每行不同的列集