CSS网格列最小为max-content和固定宽度。

huangapple go评论107阅读模式
英文:

CSS grid column min of max-content and a fixed width

问题

我帮您翻译以下内容:

我有一个 CSS 网格,我希望列的宽度要么是该列中最大项目的宽度,要么是 100px,取两者中较小的值。我以为 minmax(max-content, 100px) 可能会起作用,但实际上并没有。在下面的示例中,窄列应该是 max-content(但是是 100px),而宽列应该是 100px(但是是 max-content)。是否可以使用 CSS 网格来实现这个效果?

.table {
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(4, minmax(max-content, 100px));
}

.element {
  background-color: lightblue;
  word-break: break-all;
  white-space: nowrap;
}
<div class="table">
  <div class="element">a</div>
  <div class="element">wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide</div>
  <div class="element">narrow</div>
  <div class="element">d</div>
  <div class="element">narrow</div>
  <div class="element">b</div>
  <div class="element">c</div>
  <div class="element">wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide</div>
</div>

希望这对您有所帮助。

英文:

I have a css grid for which I would like the column widths to be either the width of the largest item in that column or 100px, whichever is smaller. I thought minmax(max-content, 100px) might work but it doesn't. In the below example, the narrow column should be max-content (but is 100px) and the wide column should be 100px (but is max-content). Is it possible to do this with css grid?

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-css -->

.table {
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(4, minmax(max-content, 100px));
}

.element {
  background-color: lightblue;
  word-break: break-all;
  white-space: nowrap;
}

<!-- language: lang-html -->

&lt;div class=&quot;table&quot;&gt;
  &lt;div class=&quot;element&quot;&gt;a&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;narrow&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;d&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;narrow&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;b&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;c&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide&lt;/div&gt;
&lt;/div&gt;

<!-- end snippet -->

答案1

得分: 1

使用 max-width 在项目上,保持列的自动宽度。

.table {
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(4, auto);
  justify-content: start; /* 为了避免列之间的间隙,您需要这个 */
}

.element {
  background-color: lightblue;
  word-break: break-all;
  white-space: nowrap;
  max-width: 100px;
  /* 隐藏溢出部分 */
  overflow: hidden;
  text-overflow: ellipsis;
}
<div class="table">
  <div class="element">a</div>
  <div class="element">wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide</div>
  <div class="element">narrow</div>
  <div class="element">d</div>
  <div class="element">narrow</div>
  <div class="element">b</div>
  <div class="element">c</div>
  <div class="element">wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide</div>
</div>
英文:

Use max-width on the item and keep the column auto width

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-css -->

.table {
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(4, auto);
  justify-content: start; /* you need this to avoid the gap between column */
}

.element {
  background-color: lightblue;
  word-break: break-all;
  white-space: nowrap;
  max-width: 100px;
  /* hiding the overflow */  
  overflow: hidden;
  text-overflow: ellipsis;
}

<!-- language: lang-html -->

&lt;div class=&quot;table&quot;&gt;
  &lt;div class=&quot;element&quot;&gt;a&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;narrow&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;d&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;narrow&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;b&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;c&lt;/div&gt;
  &lt;div class=&quot;element&quot;&gt;wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiide&lt;/div&gt;
&lt;/div&gt;

<!-- end snippet -->

huangapple
  • 本文由 发表于 2023年5月14日 06:24:40
  • 转载请务必保留本文链接:https://go.coder-hub.com/76245108.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定