Struttura dell’elemento di menu e CSS
Questa pagina approfondisce un singolo elemento di menu — l’HTML che renderizza e come stilizzare solo quell’elemento usando il riquadro CSS dell’elemento (modifica l’elemento → Avanzate → Foglio di stile interno/CSS).
Questo riquadro stilizza solo l’elemento che stai modificando e il CSS si muove con l’elemento quando lo duplichi. Per i CSS su tutto il menu, usa invece CSS personalizzato per questo menu — vedi Struttura del menu e CSS.
La struttura di un elemento
Ogni elemento è un singolo li contenente un div.inner. All’interno di .inner, in ordine:
<li class="item level-1 …" data-name="Shop">
<div class="inner inner-level1">
<span class="arrow"></span> <!-- freccia del sottomenu (se presente) -->
<!-- <span class="cart_count">3</span> --> <!-- badge del carrello con conteggio (facoltativo) -->
<!-- MEDIA — icona O immagine (se l'elemento ha un'immagine, l'icona non viene renderizzata) -->
<span class="icon"><i class="ri-store-2-line"></i></span>
<!-- oppure -->
<div class="image-border">
<span class="image-box"><span class="image"><img src="…"></span></span>
</div>
<!-- TESTO -->
<div class="info">
<div class="flexcol">
<span class="name">Shop</span>
<div class="description">Sfoglia tutte le categorie</div> <!-- solo se hai compilato la descrizione -->
</div>
</div>
</div>
</li>
Le parti che puoi targetizzare
| Parte | Selettore | Note |
|---|---|---|
| L’elemento stesso (la riga) | & |
L’li. & è una scorciatoia per “questo elemento”. |
| Wrapper contenuto | .inner |
Racchiude tutto all’interno dell’elemento |
| Glifo icona | .icon i |
Remix Icon (ri-…) |
| Immagine | .image img (riquadro: .image-border, .image-box, .image) |
Mostrata al posto dell’icona quando l’elemento ha un’immagine |
| Titolo | .name |
L’etichetta |
| Descrizione | .description |
Esiste solo se hai compilato il campo descrizione |
| Colonna testo | .info, .flexcol |
Contiene nome + descrizione |
| Freccia | .arrow |
Freccia del sottomenu |
| Badge carrello | .cart_count |
Solo per elementi carrello con conteggio |
Scrivere CSS per un elemento
Il riquadro accetta tre forme, combinabili insieme. Non digiti mai #SF-… e non aggiungi mai un tag <style> — Navi+ scopa automaticamente tutto a questo solo elemento.
1. & — questo elemento (consigliato)
& significa la riga dell’elemento (l’li), proprio come & in Sass:
& { border: 1px solid #eee; border-radius: 12px; }
&:hover { background: #f8fafc; }
2. Selettori interni — parti all’interno dell’elemento
Usa i nomi di classe dalla tabella sopra:
.name { font-weight: 700; }
.description { font-size: 12px; opacity: .8; }
.icon i { font-size: 22px; color: #2563eb; }
.image img { border-radius: 10px; }
Uno spazio dopo & significa anche “all’interno dell’elemento”, quindi & .name e .name sono uguali. & scritto senza spazio (&:hover, &.active) stilizza la riga stessa.
3. Dichiarazioni bare — la scorciatoia precedente
Scrivere proprietà senza selettore le applica alla riga dell’elemento:
color: red;
font-weight: 700;
Questo continua a funzionare (i menu precedenti si affidano a questo), ma & è più chiaro — e le dichiarazioni bare non possono essere usate dentro @media.
Responsive con @media
@media funziona qui. Dentro @media devi usare un selettore (è CSS standard), quindi usa & per l’elemento stesso:
/* Padding più piccolo e nascondi la descrizione sui telefoni */
@media (max-width: 768px) {
& { padding: 8px; }
.description { display: none; }
.name { font-size: 13px; }
}
Per mostrare o nascondere un elemento per dispositivo, preferisci Mostra su mobile/Mostra su desktop nell’editor — non CSS. Su Wix,
@mediabasato su viewport potrebbe non corrispondere allo schermo reale; usa le impostazioni Display lì.
Esempi
Trasformare un elemento in una pillola/badge:
& { background: #111; color: #fff; border-radius: 999px; padding: 6px 14px; }
.name { color: #fff; }
Evidenzia all’hover:
&:hover { transform: translateY(-2px); transition: transform .15s; }
&:hover .name { color: #2563eb; }
Icona più grande e colorata:
.icon i { font-size: 24px; color: #e11d48; }
Immagine arrotondata con una cornice sottile:
.image img { border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
Compatto su mobile:
& { padding: 12px; }
@media (max-width: 768px) {
& { padding: 6px; }
.description { display: none; }
}
Cose buone da sapere
- Nessun
#SF-…, nessun tag<style>— Navi+ scopa il CSS a questo solo elemento; non influisce mai su altri elementi. - Il CSS si muove con l’elemento quando lo duplichi (è per elemento, riutilizzabile).
- Se una proprietà è impostata sia qui che nelle impostazioni visive dell’elemento (Media box/Inner box color, border, shadow…), l’impostazione visiva prevale — è applicata inline. Cancella quella impostazione se vuoi che il tuo CSS prevalga.
- Usa l’icona di espansione (in alto a destra del riquadro) per un editor più grande; premi Esc o Fatto per chiudere.
Documentazione di supporto — Navi+