Como corrigir o Sticky Header que não funciona no Safari no Astra Pro
O que é Sticky Header do Astra Pro no Safari?
O Astra sticky header é o cabeçalho fixo entregue pelo módulo Sticky Header do Astra Pro: ao rolar a página, o cabeçalho deixa de rolar junto e gruda no topo da janela. No Astra ele é configurado pelo Personalizar (Customizer), dentro do construtor de cabeçalho, com opções para ativar o efeito por dispositivo (desktop, tablet e mobile) e ajustes como reduzir o cabeçalho ao rolar. O Safari, da Apple, usa o motor WebKit e é mais rígido na implementação de cabeçalhos fixos do que o Chrome ou o Firefox.
A incompatibilidade aparece quando esse cabeçalho funciona no Chrome mas não gruda no Safari do macOS ou do iPhone: o cabeçalho rola junto com a página, pisca, fica sobreposto ao conteúdo ou simplesmente ignora o efeito. Na maioria dos casos a causa não é um defeito do Astra, e sim a forma como o WebKit trata position sticky e propriedades CSS como overflow e transform em elementos ancestrais, somada a CSS e cache antigos que o Safari continua servindo após uma alteração no tema.
Como identificar
- O cabeçalho gruda no topo normalmente no Chrome e no Firefox, mas no Safari rola junto com a página como se o efeito sticky não existisse.
- No Safari do iPhone ou do iPad o cabeçalho some ao rolar para baixo e só reaparece quando a rolagem para, em vez de ficar fixo o tempo todo.
- O cabeçalho fixo aparece sobreposto ao conteúdo ou pisca durante a rolagem apenas no Safari, enquanto nos demais navegadores fica estável.
- O efeito de encolher o cabeçalho ao rolar funciona em outros navegadores, mas no Safari o cabeçalho fica travado no tamanho cheio ou na altura errada.
- No console do Safari (Desenvolver e Mostrar Console JavaScript) o cabeçalho aparece com position sticky aplicado, mas o elemento não permanece fixo ao rolar.
Como prevenir
- Sempre que ajustar o cabeçalho no Astra Pro, teste no Safari do macOS e no Safari do iPhone, não apenas no Chrome, porque o WebKit é mais rígido com position sticky.
- Evite aplicar overflow hidden, transform ou will-change em containers que envolvem o cabeçalho, pois essas propriedades invalidam o sticky no Safari.
- Ative o Sticky Header por dispositivo de forma consistente no construtor de cabeçalho, cobrindo desktop, tablet e mobile, para o efeito não falhar só no Safari mobile.
- Após qualquer alteração no cabeçalho, limpe o cache do plugin de cache e do navegador antes de validar, para garantir que o Safari recebe o CSS novo do Astra.
Causa
- O módulo Sticky Header do Astra Pro está desativado para o dispositivo testado: a opção de ativar o sticky por dispositivo no construtor de cabeçalho do Personalizar está marcada só para desktop, então o Safari do iPhone ou do tablet não recebe o efeito.
- Um elemento ancestral do cabeçalho tem a propriedade overflow definida como hidden, auto ou scroll: o WebKit do Safari invalida o position sticky de qualquer filho cujo container de rolagem tenha overflow recortado, e o cabeçalho deixa de grudar.
- Um ancestral do cabeçalho aplica transform, filter ou will-change via CSS do tema ou de outro plugin: no Safari essas propriedades criam um novo bloco de contexto que faz o cabeçalho fixo se ancorar nesse ancestral em vez de na janela, quebrando o sticky.
- O Safari está servindo CSS antigo do Astra a partir do cache do navegador ou de um plugin de cache, então a alteração feita no Customizer não chega ao WebKit e o cabeçalho continua com o comportamento anterior.
- Há altura insuficiente ou conteúdo curto na página: se o conteúdo não gera rolagem suficiente, o WebKit do Safari não dispara o estado fixo do cabeçalho, dando a impressão de que o sticky não funciona.
Como resolver
- Confirme o módulo Sticky Header ativo por dispositivo: No Astra Pro, abra o construtor de cabeçalho no Personalizar e confirme que o Sticky Header está ativado para o mesmo dispositivo em que o Safari falha (desktop, tablet ou mobile). Um efeito ligado só no desktop não gruda o cabeçalho no Safari do iPhone.
Painel WP -> Aparência -> Personalizar -> Cabeçalho (Header Builder) Abra as opções de Sticky Header do cabeçalho Marque Ativar em Desktop, Tablet e Mobile conforme o dispositivo testado Clique em Publicar - Teste com cache limpo no Safari: Limpe o cache do plugin de cache e do Safari e recarregue a página, para garantir que o WebKit recebe o CSS atual do Astra e não a versão anterior do cabeçalho.
Limpe o cache do plugin de cache do site (ex.: WP Rocket -> Limpar cache) Safari -> menu Desenvolver -> Esvaziar Caches Recarregue a página segurando Shift (recarga forçada) - Localize o ancestral que quebra o sticky no WebKit: No Safari, abra o inspetor (Desenvolver e Mostrar Inspetor da Web), selecione o cabeçalho e suba pelos elementos pais procurando overflow diferente de visible ou transform aplicado. Esse ancestral é o que invalida o position sticky no Safari.
Safari -> Desenvolver -> Mostrar Inspetor da Web (Cmd+Option+I) Selecione o elemento do cabeçalho (ex.: .ast-sticky-active ou #masthead) Nos pais, procure overflow: hidden/auto/scroll ou transform/filter/will-change - Neutralize overflow e transform do ancestral via CSS adicional: Adicione um CSS direcionado ao container pai identificado para devolver overflow visible e remover transform, restaurando a referência do position sticky à janela no Safari. Use o seletor real do seu site no lugar do exemplo.
Painel WP -> Aparência -> Personalizar -> CSS Adicional Cole a regra ajustando o seletor do ancestral (ver bloco de código abaixo) Clique em Publicar e recarregue no Safari com cache limpo - Isole conflito de plugin ou tema filho: Se o cabeçalho ainda não grudar no Safari, desative os demais plugins um a um e teste sem o CSS do tema filho, recarregando no Safari a cada passo até identificar o que aplica overflow ou transform no ancestral do cabeçalho.
Painel WP -> Plugins -> desative os demais plugins um a um Desative temporariamente o CSS do tema filho que afete o cabeçalho Recarregue no Safari a cada teste até o sticky voltar a funcionar
/* Restaura o sticky do cabecalho no Safari (WebKit). */
/* Devolve overflow visible ao container que invalida o sticky. */
.site-content,
.ast-container,
#page {
overflow: visible;
}
/* Remove transform/filter de ancestrais que criam contexto de posicionamento. */
#page,
.site-header-focus-item {
transform: none;
filter: none;
will-change: auto;
}
/* Garante a ancoragem do cabecalho no topo da janela. */
.ast-primary-sticky-header-active #masthead,
.ast-header-sticked #masthead {
position: -webkit-sticky;
position: sticky;
top: 0;
}














