Heim > Fragen und Antworten > Hauptteil
Ich habe ein CSS-Raster und möchte, dass seine Spaltenbreite der Breite des größten Elements in der Spalte oder 100 Pixel entspricht, je nachdem, welcher Wert kleiner ist. Ich dachte, minmax(max-content, 100px)
könnte funktionieren, aber das funktioniert nicht. Im folgenden Beispiel sollte die schmale Spalte den maximalen Inhalt (aber 100 Pixel) und die breite Spalte 100 Pixel (aber den maximalen Inhalt) haben. Ist das mit CSS Grid möglich?
.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>
P粉6424362822023-09-07 00:02:09
在项目上使用max-width
并保持列自动宽度
.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; }
<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>