Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carlos Henrique A.

Menu border-top atrapalhando.

Recommended Posts

Bom dia!

Estava criando um menu rapido aqui para fazer uns teste..

 

Eai quando eu adicionei um border-top de 4px ao passar o mouse em cima, o mesmo da uma deslocada para baixo acredito eu de 4px, como faço para que isso não aconteça?

 

Segue o código:

JsFiddle

 

Agradeço desde já a ajuda,

Abcs

 

Carlos Henrique.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Você pode fazer assim:

header #menu li{
    /* deixa sempre com 4px, mas transparente para não ficar visível */
    border-top: 4px solid transparent;
}
 
header:hover #menu li:hover {
    /* aí você só muda a cor */
    border-top-color: orange;
}
 
#menu li a {
    /* e desconta os 4px da borda para ficar centralizado */
    padding: 23px 15px 27px 15px;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Carlos!

O border tem por padrão adicionar uma soma ao seu width ou height. Para fazer esse mesmo efeito, tente utilizar as pseudo-classes ::after ou ::before.

Veja um exemplo:

.menu::before {
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 2px;
   background: orange;
   display: none;
   /* ou */
   opacity: 0;
}

.menu:hover::before {
   display: block;
   /* ou */
   opacity: 1;
}

Como o position é absolute, ele tende a não somar os valores de height de ambos elementos.

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.