Ich versuche, Pseudo-Elemente, wie es nach der Spezifikation möglich sein sollte, auf einem Raster zu positionieren. Das funktioniert gut für meinen äußeren Layout, den ich auf <body>
eingestellt habe, aber es funktioniert nicht für den <header>
, der selbst ein Gitter ist.Pseudo-Elemente in CSS-Gitter positionieren
Wie kann ich den Header nav:after
Element in der rechten Spalte des Rasters positionieren? Warum funktioniert es nicht in meinem Beispiel?
Ich freue mich über jede Hilfe! Hier ist der Code:
body {
display: grid;
grid-template-columns: 1fr 800px 1fr;
}
header {
grid-column: 1/4;
grid-row: 1;
display: grid;
grid-template-columns: 1fr 800px 1fr;
}
/* Works great */
header:before {
content: 'Left';
grid-column: 1/2;
}
/* Doesn't work, treated as a child element */
header nav:after {
content: 'Right';
grid-column: 3/4;
}
header nav {
grid-column: 2/3;
}
<body>
<header>
<nav>
<ul>
<li><a href='#'>Link</a></li>
<li><a href='#'>Link</a></li>
<li><a href='#'>Link</a></li>
</ul>
</nav>
</header>
</body>
Thank you!
Hallo kukkuz, danke für deine Antwort! Von dem, was ich in meinem Header-Beispiel sehen kann, ist der Header: bevor Element tatsächlich ein Kind des Körpers ist, sonst wäre ich nicht in der Lage, es auf der linken Seite zu positionieren, würde ich? Ich versuche, das gleiche zu erreichen, ich würde das UL-Element benötigen, um ein: vor oder: nach Pseudo-Element, aber es muss es auf der rechten Seite positionieren. Ich kann jedoch nicht sehen, wie anders diese Situation ist. Warum funktioniert es nicht auf die gleiche Weise? – Sebastian
'header: before' ist ein Kind von' header' ... ': after' und': before' psuedo Elemente sind Kind des Elements, auf das Sie es anwenden ... – kukkuz
Bitte korrigieren Sie mich, wenn ich falsch liege, aber ich denke es ist nicht. Sehen Sie sich das folgende vereinfachte Beispiel an. Wenn ich positionieren kann: vorher auf dem Körpergitter, Header: vorher muss jetzt ein Kind des Körpers sein, ein Geschwisterkopf. Ich denke, das ist was die folgende Spezifikation auch sagt: https: //developer.mozilla.org/de-DE/Firefox/Releases/23 # CSS 'Körper { \t Anzeige: Gitter; \t Raster-Vorlage-Spalten: 1fr 800px 1fr; } Header { \t Gitter-Spalte: 1/4; \t Gitterreihe: 1; } Header: vor { Inhalt: 'Links'; Gitter-Spalte: 1/2; } ''