Menüelement-Struktur und CSS
Diese Seite befasst sich eingehend mit einem Menüelement — dem HTML, das es rendert, und wie Sie nur dieses Element mit dem eigenen CSS-Feld des Elements formatieren (Element bearbeiten → Erweitert → Internes Stylesheet / CSS).
Dieses Feld formatiert nur das Element, das Sie bearbeiten, und das CSS reist mit dem Element, wenn Sie es duplizieren. Für CSS im gesamten Menü verwenden Sie stattdessen Benutzerdefiniertes CSS für dieses Menü — siehe Menüstruktur und CSS.
Die Struktur eines Elements
Jedes Element ist ein einzelnes li mit einem div.inner. Innerhalb von .inner in der Reihenfolge:
<li class="item level-1 …" data-name="Shop">
<div class="inner inner-level1">
<span class="arrow"></span> <!-- submenu arrow (if any) -->
<!-- <span class="cart_count">3</span> --> <!-- cart badge with count (optional) -->
<!-- MEDIA — icon OR image (if the item has an image, the icon is not rendered) -->
<span class="icon"><i class="ri-store-2-line"></i></span>
<!-- or -->
<div class="image-border">
<span class="image-box"><span class="image"><img src="…"></span></span>
</div>
<!-- TEXT -->
<div class="info">
<div class="flexcol">
<span class="name">Shop</span>
<div class="description">Browse all categories</div> <!-- only if you filled description -->
</div>
</div>
</div>
</li>
Die Teile, die Sie ansprechen können
| Teil | Selektor | Notizen |
|---|---|---|
| Das Element selbst (die Zeile) | & |
Das li. & ist eine Abkürzung für „dieses Element”. |
| Inhalts-Wrapper | .inner |
Umhüllt alles innerhalb des Elements |
| Symbol-Glyphe | .icon i |
Remix Icon (ri-…) |
| Bild | .image img (Feld: .image-border, .image-box, .image) |
Wird anstelle des Symbols angezeigt, wenn das Element ein Bild hat |
| Titel | .name |
Das Label |
| Beschreibung | .description |
Existiert nur, wenn Sie das Beschreibungsfeld gefüllt haben |
| Textspalte | .info, .flexcol |
Enthält Name + Beschreibung |
| Pfeil | .arrow |
Untermenü-Pfeil |
| Warenkorbabzeichen | .cart_count |
Nur für Warenkorbgegenstände mit einer Anzahl |
CSS für ein Element schreiben
Das Feld akzeptiert drei Formen, die miteinander kombinierbar sind. Sie geben nie #SF-… ein und fügen nie ein <style>-Tag hinzu — Navi+ definiert automatisch den Gültigkeitsbereich für dieses eine Element.
1. & — dieses Element (empfohlen)
& bedeutet die Zeile des Elements selbst (das li), genau wie & in Sass:
& { border: 1px solid #eee; border-radius: 12px; }
&:hover { background: #f8fafc; }
2. Innere Selektoren — Teile innerhalb des Elements
Verwenden Sie die Klassennamen aus der obigen Tabelle:
.name { font-weight: 700; }
.description { font-size: 12px; opacity: .8; }
.icon i { font-size: 22px; color: #2563eb; }
.image img { border-radius: 10px; }
Ein Leerzeichen nach & bedeutet auch „innerhalb des Elements”, daher sind & .name und .name identisch. & geschrieben ohne Leerzeichen (&:hover, &.active) formatiert die Zeile selbst.
3. Bare Erklärungen — die ältere Abkürzung
Das Schreiben von Eigenschaften mit keinem Selektor wendet sie auf die Elementzeile an:
color: red;
font-weight: 700;
Dies funktioniert weiterhin (ältere Menüs verlassen sich darauf), aber & ist klarer — und Bare-Erklärungen können nicht innerhalb von @media verwendet werden.
Reaktiv mit @media
@media funktioniert hier. Innerhalb von @media müssen Sie einen Selektor verwenden (das ist Standard-CSS), verwenden Sie also & für das Element selbst:
/* Smaller padding + hide the description on phones */
@media (max-width: 768px) {
& { padding: 8px; }
.description { display: none; }
.name { font-size: 13px; }
}
Um ein Element nach Gerät anzuzeigen oder auszublenden, bevorzugen Sie Auf Mobilgeräten anzeigen / Auf Desktop anzeigen im Editor — nicht CSS. Auf Wix entspricht
@mediamöglicherweise nicht dem echten Bildschirm; verwenden Sie dort die Anzeigeeinstellungen.
Beispiele
Wandeln Sie ein Element in eine Pille / ein Badge um:
& { background: #111; color: #fff; border-radius: 999px; padding: 6px 14px; }
.name { color: #fff; }
Beim Hover hervorheben:
&:hover { transform: translateY(-2px); transition: transform .15s; }
&:hover .name { color: #2563eb; }
Größeres, farbiges Symbol:
.icon i { font-size: 24px; color: #e11d48; }
Abgerundetes Bild mit subtilen Rahmen:
.image img { border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
Kompakt auf Mobilgeräten:
& { padding: 12px; }
@media (max-width: 768px) {
& { padding: 6px; }
.description { display: none; }
}
Gut zu wissen
- Kein
#SF-…, kein<style>-Tag — Navi+ definiert CSS für nur dieses eine Element; es beeinflusst nie andere Elemente. - CSS reist mit dem Element, wenn Sie es duplizieren (es ist pro Element und wiederverwendbar).
- Wenn eine Eigenschaft sowohl hier als auch durch die visuellen Einstellungen des Elements (Medienfeld / Inneres Feldfeld Farbe, Rand, Schatten…) festgelegt ist, gewinnt die visuelle Einstellung — sie wird inline angewendet. Löschen Sie diese Einstellung, wenn Sie möchten, dass Ihr CSS übernimmt.
- Verwenden Sie das Erweiterungssymbol (oben rechts im Feld) für einen größeren Editor; drücken Sie Esc oder Fertig, um zu schließen.
Support documentation — Navi+