【问题标题】:CSS Grid column as wide as text but with an upper limitCSS Grid 列与文本一样宽但有上限
【发布时间】:2021-04-30 20:42:24
【问题描述】:

.grid{
  display: grid;
  grid-template-columns: minmax(auto, 200px) 1fr;
}
<div class="grid">
  <span>Thing 1</span>
  <span>Thing 2</span>
  <span>Thing 3</span>
  <span>Thing 4</span>
</div>

所以基本上我有一个两列布局。我希望第一列的宽度与其内容一样宽(自动),但也有一个上限(200 像素)。正如您在上面的示例中看到的那样,它似乎只是一直到 200 像素而不是自动。我也尝试了min-content,但它产生了相同的结果。我可以让第一列只和文本一样宽吗?

【问题讨论】:

    标签: css css-grid


    【解决方案1】:

    只保留auto 并在项目上使用max-width

    .grid{
      display: grid;
      grid-template-columns: auto 1fr;
    }
    span:nth-child(2n + 1) {
      max-width:200px;
    }
    <div class="grid">
      <span>Thing 1</span>
      <span>Thing 2</span>
      <span>Thing 3</span>
      <span>Thing 4</span>
    </div>
    
    <div class="grid">
      <span>Thing 1 1 1 1 1  1 1 1 1  1 1 1 1 1 1 1 1 1 1</span>
      <span>Thing 2</span>
      <span>Thing 3</span>
      <span>Thing 4</span>
    </div>

    或使用fit-content()

    .grid{
      display: grid;
      grid-template-columns: fit-content(200px) 1fr;
    }
    <div class="grid">
      <span>Thing 1</span>
      <span>Thing 2</span>
      <span>Thing 3</span>
      <span>Thing 4</span>
    </div>
    
    <div class="grid">
      <span>Thing 1 1 1 1 1  1 1 1 1  1 1 1 1 1 1 1 1 1 1</span>
      <span>Thing 2</span>
      <span>Thing 3</span>
      <span>Thing 4</span>
    </div>

    【讨论】:

      猜你喜欢
      • 2011-06-01
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-16
      • 1970-01-01
      • 2020-04-15
      相关资源
      最近更新 更多