Rolf B: Banner über die Seite legen

Beitrag lesen

Hallo Gerlinde,

mit ::before definierst Du ein Pseudoelement. D.h. du brauchst im HTML nichts zu tun, die Angabe

body::before {
   content: "xyz";
}

sorgt dafür, das aus

<body>
<h1>Überschrift</h1>
<p>Bla Bla</p>
</body>

etwas wird, das man sich so vorstellen könnte (es ist nur eine Visualisierung, kein gültiges HTML)

<body>
<::before>xyz</::before>
<h1>Überschrift</h1>
<p>Bla Bla</p>
</body>

Die content-Angabe ist Pflicht für ein ::before und gibt den Inhaltstext an.

Ohne zusätzliche CSS Eigenschaften verhält sich das ::before-Element so wie ein <span>. Über weitere CSS Angaben mache ich daraus ein Blockelement mit absoluter oder fixer Positionierung, gebe ihm eine Größe relativ zur Fensterbreite und male per linear-gradient eine Ukraine-Fahne hinein.

Die aspect-ratio Eigenschaft ist relativ neu im CSS Eigenschaftenzoo, sie sorgt dafür, dass sich Breite und Höhe des Elements im angegebenen Verhältnis befinden. Früher musste man da mit padding-bottom tricksen. aspect-ratio macht das deutlich einfacher.

Außer ::before gibt es auch noch ::after, um am Ende eines Elements ein Pseudoelement einzufügen.

Wenn der Selektor vor dem ::before auf mehrere Elemente passt, bekommt jedes davon das Pseudoelement eingefügt.

h2::before {
   content: "* "; 
}

würde in jeder h2 Überschrift ein Sternchen an den Anfang setzen.

Artikel im Selfwiki zu ::before und ::after

Rolf

--
sumpsi - posui - obstruxi