Estrutura do item de menu e CSS
Esta página analisa em profundidade um único item de menu — o HTML que renderiza e como estilizar apenas esse item usando a caixa CSS do item (editar o item → Avançado → Folha de estilo interna/CSS).
Esta caixa estiliza apenas o item que você está editando, e o CSS viaja com o item quando você o duplica. Para CSS em todo o menu, use CSS personalizado para este menu — veja Estrutura do menu e CSS.
A estrutura de um item
Cada item é um único li contendo um div.inner. Dentro de .inner, em ordem:
<li class="item level-1 …" data-name="Shop">
<div class="inner inner-level1">
<span class="arrow"></span> <!-- seta do submenu (se houver) -->
<!-- <span class="cart_count">3</span> --> <!-- crachá do carrinho com contagem (opcional) -->
<!-- MÍDIA — ícone OU imagem (se o item tiver uma imagem, o ícone não é renderizado) -->
<span class="icon"><i class="ri-store-2-line"></i></span>
<!-- ou -->
<div class="image-border">
<span class="image-box"><span class="image"><img src="…"></span></span>
</div>
<!-- TEXTO -->
<div class="info">
<div class="flexcol">
<span class="name">Shop</span>
<div class="description">Procure todas as categorias</div> <!-- apenas se você preencheu a descrição -->
</div>
</div>
</div>
</li>
As partes que você pode alvejar
| Parte | Seletor | Notas |
|---|---|---|
| O item em si (a linha) | & |
O li. & é um atalho para “este item”. |
| Wrapper de conteúdo | .inner |
Envolve tudo dentro do item |
| Glifo de ícone | .icon i |
Remix Icon (ri-…) |
| Imagem | .image img (caixa: .image-border, .image-box, .image) |
Mostrada em vez do ícone quando o item tem uma imagem |
| Título | .name |
O rótulo |
| Descrição | .description |
Existe apenas se você preencheu o campo de descrição |
| Coluna de texto | .info, .flexcol |
Contém nome + descrição |
| Seta | .arrow |
Seta do submenu |
| Crachá do carrinho | .cart_count |
Apenas para itens de carrinho com uma contagem |
Escrevendo CSS para um item
A caixa aceita três formas, combináveis juntas. Você nunca digita #SF-… e nunca adiciona uma tag <style> — Navi+ automaticamente limita tudo a este item.
1. & — este item (recomendado)
& significa a linha do próprio item (o li), exatamente como & em Sass:
& { border: 1px solid #eee; border-radius: 12px; }
&:hover { background: #f8fafc; }
2. Seletores internos — partes dentro do item
Use os nomes de classe da tabela acima:
.name { font-weight: 700; }
.description { font-size: 12px; opacity: .8; }
.icon i { font-size: 22px; color: #2563eb; }
.image img { border-radius: 10px; }
Um espaço após & também significa “dentro do item”, então & .name e .name são a mesma coisa. & escrito sem espaço (&:hover, &.active) estiliza a própria linha.
3. Declarações nuas — o atalho anterior
Escrever propriedades sem um seletor as aplica à linha do item:
color: red;
font-weight: 700;
Isso continua funcionando (menus antigos dependem disso), mas & é mais claro — e declarações nuas não podem ser usadas dentro de @media.
Responsivo com @media
@media funciona aqui. Dentro de @media você deve usar um seletor (é CSS padrão), então use & para o próprio item:
/* Padding menor + oculte a descrição em telefones */
@media (max-width: 768px) {
& { padding: 8px; }
.description { display: none; }
.name { font-size: 13px; }
}
Para mostrar ou ocultar um item por dispositivo, prefira Mostrar em celular/Mostrar em desktop no editor — não CSS. No Wix,
@mediabaseado em viewport pode não corresponder à tela real; use as configurações Display lá.
Exemplos
Transformar um item em uma pílula/crachá:
& { background: #111; color: #fff; border-radius: 999px; padding: 6px 14px; }
.name { color: #fff; }
Destaque ao passar:
&:hover { transform: translateY(-2px); transition: transform .15s; }
&:hover .name { color: #2563eb; }
Ícone maior e colorido:
.icon i { font-size: 24px; color: #e11d48; }
Imagem arredondada com moldura sutil:
.image img { border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
Compacto em celular:
& { padding: 12px; }
@media (max-width: 768px) {
& { padding: 6px; }
.description { display: none; }
}
Coisas boas de se saber
- Nenhum
#SF-…, nenhuma tag<style>— Navi+ limita o CSS apenas a este item; nunca afeta outros itens. - O CSS viaja com o item quando você o duplica (é por item, reutilizável).
- Se uma propriedade for definida aqui e nas configurações visuais do item (Media box/Inner box color, border, shadow…), a configuração visual vence — é aplicada inline. Limpe essa configuração se quiser que seu CSS tenha precedência.
- Use o ícone de expandir (canto superior direito da caixa) para um editor maior; pressione Esc ou Concluído para fechar.
Documentação de suporte — Navi+