Um recurso bem interessante e pouco explorado é criar bordas múltiplas com CSS, neste post vou mostrar as possibilidades e os detalhes que conseguimos criar com esta técnica.
Teoria das bordas múltiplas com CSS
Utilizaremos um pseudo elemento para fazer este efeito, então alguns cuidados são importantes
É preciso que o elemento que terá múltiplas bordas tenha sua própria borda e também esteja com position relative
Outro ponto importante é que esta técnica pode ser utilizada tanto para inserir bordas exteriores e também interiores no elemento
E então como disse anteriormente a partir da segunda borda, as bordas serão adicionadas com pseudo elementos e um z-index negativo
Isso é necessário para que o conteúdo dentro do elemento principal não seja prejudicado, assim podemos clicar num link dentro dele, por exemplo
Além disso teremos de adicionar um content vazio, e também posicionar o elemento de forma absoluta no elemento que está posicionado com relative
Quer se especializar em HTML e CSS? Veja o nosso catálogo de cursos.
Outro ponto importante é cuidar com os outros elementos que possuem z-index na página, pois pode gerar uma aberração visual se eles sobreporem ou se confundirem com os elementos de bordas múltiplas 😀
Então chega de teoria, e bora pra prática?
Bordas múltiplas na prática
Vamos então ver o resultado deste HTML e CSS
<div class="multiple-borders1"></div>
.multiple-borders1 { position: relative; border: 5px solid #44CF6C; width: 100px; height: 100px; } /* border para dentro */ .multiple-borders1:before { content: ""; position: absolute; z-index: -1; top: 0px; left: 0px; right: 0px; bottom: 0px; border: 5px solid #32A287; } /* border para fora */ .multiple-borders1:after { content: ""; position: absolute; z-index: -1; top: -10px; left: -10px; right: -10px; bottom: -10px; border: 5px solid #A9FDAC; }
Resultado:
Perceba que o HTML é bem simples, apenas uma div para podermos adicionar a posição relativa, a borda e também medidas, exatamente como explicado anteriormente
Então adicionamos duas bordas com :after e :before, uma interna e outra externa do elemento
Bônus: efeito de blur com múltiplas bordas
Há também uma outra possibilidade que é replicar a borda principal com intensidades diferentes, gerando um efeito bem legal
Para isso nós utilizaremos o box-shadow, que nos possibilitará infinitas bordas
<div class="multiple-borders2"> </div> .multiple-borders2 { position: relative; border: 5px solid #44CF6C; width: 100px; height: 100px; margin-top: 100px; margin-left: 100px; box-shadow: 0 0 0 10px rgba(68, 207, 108, 0.9), 0 0 0 15px rgba(68, 207, 108, 0.7), 0 0 0 20px rgba(68, 207, 108, 0.5), 0 0 0 25px rgba(68, 207, 108, 0.3), 0 0 0 30px rgba(68, 207, 108, 0.1); }
Resultado final:
Conclusão
Vimos neste post duas possibilidades de adicionar uma borda adicional no elemento principal
A primeira foi com os pseudo elementos em :after e :before
Já a segunda utilizamos o box-shadow para conseguir um efeito de gradiente no elemento, de forma mais fácil apenas replicando várias vezes a borda com intensidades diferentes a partir do rgba
E por hoje é isso, até o próximo post!
Confira também nosso curso de HTML e CSS gratuito no YouTube clicando aqui! Onde criamos um site do 0 até o resposivo