Wie richtet man ein Element vertikal zentriert an der letzten Zeile im CSS-Raster aus?
P粉520204081
2023-08-22 15:57:06
<p>Ich gestalte einige Elemente mithilfe eines CSS-Rasters, etwa so...</p>
<p><br /></p>
<pre class="brush:css;toolbar:false;">#container {
Anzeige: Raster;
Rastervorlagenspalten: 16,666 % 16,666 % 16,666 % 16,666 % 16,666 % 16,666 %;
}
.Artikel {
Hintergrund: blaugrün;
Farbe weiß;
Polsterung: 20px;
Rand: 10px;
}</pre>
<pre class="brush:html;toolbar:false;"><div id="container">
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
</div></pre>
<p><br /></p>
<p>Wie kann ich die letzte Zeile zentriert statt linksbündig gestalten? Ich kann die Anzahl der Artikel nicht garantieren, hoffe also, dass das Layout mit einer beliebigen Anzahl von Artikeln funktioniert. </p>
<p>Ist das etwas, wofür ich Flexbox verwenden sollte? Oder eignet sich CSS Grid zur Verwendung? </p>
在这篇文章中发现了一个很棒的关于如何使用伪选择器控制剩余网格项的方法:Control Leftover Grid Items with Pseudo-selectors
CSS Grid不适合在整行上进行对齐,因为交叉轨道会阻挡道路。这里有一个详细的解释:
作为替代方案,使用flexbox并设置
justify-content: center
。这将把所有项打包在行的水平中心。然后,您的边距将把它们分开。
在完全填充的行上,
justify-content
将不起作用,因为没有空闲空间可供其工作。在具有空闲空间的行上(在您的情况下,仅为最后一行),项目将居中显示。