Ich habe drei Spalten und eine Zeile und möchte jedes Gitterelement in einer der drei resultierenden Zellen platzieren. Das ist, was ich will, mit drei Container-Elementen:
main {
display: grid;
grid-template-columns: 33% 33% auto;
grid-gap: 15px;
}
.container {
background-color: orange;
}
.element {
transition: height 0.5s;
margin: 15px;
height: 100px;
background-color: grey;
}
.element:hover {
height: 200px;
}
<main>
<div class="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</div>
<div class="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</div>
<div class="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</div>
</main>
Ich weiß, dass dies mit drei Containern möglich wäre, aber ich möchte vermeiden, etwas zu verwenden, das nicht wirklich “notwendig” ist.
Die Verwendung mehrerer Zeilen und die Erweiterung eines Elements von einer auf zwei oder drei Zeilen wäre nicht so “flüssig” wie in dem Beispiel, das ich oben gepostet habe. Wenn Sie jedoch mehrere Zeilen verwenden und nur die Größe eines Elements ändern, wird die Größe der gesamten Zeile geändert, was sich auf die Position der nächsten Zeile auswirkt.
Eine Lösung wäre, jedes Element derselben Spalte in derselben Zelle zu platzieren. Auf diese Weise gibt es höchstens eine Zeile, und jedes Mal, wenn die Größe eines Elements geändert wird, wirkt sich dies nur auf die Position der Elemente in derselben Spalte aus, was genau das ist, was ich will.
Das Problem beim Platzieren mehrerer Elemente in derselben Zelle besteht darin, dass sie sich ständig überlappen, und ich habe keine Möglichkeit gefunden, sie daran zu hindern.
Gibt es also eine Möglichkeit, mehrere Elemente in derselben Zelle zu platzieren, ohne sich zu überlappen, indem nur das CSS-Rasterlayout verwendet wird?
Was Sie von img aus tun möchten, sind 3 Spalten und mindestens 3 Zeilen. Das Element muss sich über einige Zeilen erstrecken: jsfiddle.net/9b5abp3e/1 Erinnerung/Anleitung: css-tricks.com/snippets/css/complete-guide-grid es funktioniert sowohl für col als auch für row , das ist die Sache mit dem Raster-CSS-Layout jsfiddle.net/9b5abp3e/2 und für deine Skizze könnte es so etwas sein jsfiddle.net/9b5abp3e/3 oder jsfiddle.net/9b5abp3e/4
– G-Cyrillus
23. Juli 2017 um 12:29 Uhr
„Ich weiß, dass dies mit drei Containern möglich wäre, aber ich möchte vermeiden, etwas zu verwenden, was nicht wirklich ‚notwendig‘ ist.“ Ich bin verwirrt… du sind Verwendung von 3 Behältern. Ich weiß nicht, ob Sie dies mit CSS Grid tun können (es erwartet tendenziell eine feste Größe), aber Sie können etwas sehr Ähnliches mit nur normalen CSS-Eigenschaften tun: jsfiddle.net/qq8nsk0g/1
– TylerH
25. August 2017 um 18:35 Uhr