Code: Select all
grid-template-areas:
"v p"
"v o"
"v t"
"m t";
Code: Select all
grid-template-rows: repeat(4, min-content);
Das ist jedoch nicht der Fall. Stattdessen scheint die Videohöhe für die ersten drei Zeilen durch drei geteilt zu werden.
Wenn ich die Vorlage jedoch nur in der vierten (!) Zeile ändere, zu:
Code: Select all
grid-template-rows: repeat(3, min-content) 1fr;
Unten sind zwei Snippets, die bis auf die obigen Zeilen identisch sind.
Meine Frage ist: Kann ich die Höhenverteilung der ersten drei Zeilen wie im zweiten Snippet erreichen, aber die letzte Zeile nicht mit 1fr skalieren (was ich aus anderen Gründen nicht möchte)? Und wie lässt sich der Unterschied im Ergebnis zwischen den beiden Snippets erklären? Sieht für mich nach einem Fehler aus ...
Anmerkung: Die Lösung, nach der ich suche, sollte eine reine Grid-Lösung bleiben, d. h. einige der Elemente nicht in ein zusätzliches Div einpacken. Außerdem würde ich es vorziehen, die minimalen Höhen der Elemente nicht explizit in die Grid-Template-Rows-Definition zu schreiben, um diese Größen nicht an mehreren Stellen redundant zu haben.
Code: Select all
html, body {
height: 100vh;
max-height: 100vh;
margin: 0px;
}
/* Grid-Container */
#container {
display:grid;
grid-template-areas:
"v p"
"v o"
"v t"
"m t";
grid-template-columns: 1fr min-content;
grid-template-rows: repeat(4, min-content);
gap: 4px;
width:100%;
}
/* Grid-Items */
div.grid-item {
border-color: black;
border-width: 2px;
border-style: solid;
position: relative;
}
#video {
background-color: green;
height: 180px;
grid-area: v;
}
#metadata {
background-color: yellow;
height: 30px;
grid-area: m;
}
#previewSelect {
background-color: red;
height:30px;
grid-area: p;
}
#transcript {
background-color: blue;
align-self: stretch;
grid-area: t;
}
#optional {
height: 30px;
grid-area: o;
}Code: Select all
Video
Metadata
Preview-Select
Transcript
Optional
Code: Select all
html, body {
height: 100vh;
max-height: 100vh;
margin: 0px;
}
/* Grid-Container */
#container {
display:grid;
grid-template-areas:
"v p"
"v o"
"v t"
"m t";
grid-template-columns: 1fr min-content;
grid-template-rows: repeat(3, min-content) 1fr;
gap: 4px;
width:100%;
}
/* Grid-Items */
div.grid-item {
border-color: black;
border-width: 2px;
border-style: solid;
position: relative;
}
#video {
background-color: green;
height: 180px;
grid-area: v;
}
#metadata {
background-color: yellow;
height: 30px;
grid-area: m;
}
#previewSelect {
background-color: red;
height:30px;
grid-area: p;
}
#transcript {
background-color: blue;
align-self: stretch;
grid-area: t;
}
#optional {
height: 30px;
grid-area: o;
}Code: Select all
Video
Metadata
Preview-Select
Transcript
Optional
Mobile version