Desenvolvimento - CSS
Botão com CSS 3: Como criar um botão sem imagens
Neste tutorial iremos ver como criar um botão com css3, abolindo o uso de imagens para criar botões personalizados.
por Anderson WeschnhoskiAinda a melhor forma que temos de criar um botão personalizado para um site, que tenha compatibilidade com todos os navegadores, é utilizando uma imagem. Porém, em muitos casos podemos criar o mesmo botão apenas com CSS3. O que torna a manutenção e a personalização muito mais fáceis e práticas, além de ser muito mais leve.
Vou ensinar logo abaixo como fazer um botão com CSS3. Ele até poderia ser animado com jquery, ou alguma outra biblioteca javascript, mas a ideia é mostrar as possibilidades do CSS.

Figura 1: Prévia final do botão
HTML
Abaixo vamos criar o nosso documento HTML, dentro do body não teremos nada demais, além de uma div que vai posicionar o elemento na tela, e um link que vai ser nosso botão.
Listagem 1: Código HTML
<html>
<head>
<title>Botão com CSS3</title>
</head>
<body>
<div class="content">
<a href="#" class="botao01">Botao</a>
</div>
</body>
</html>
Para colocarmos todos esses efeitos no botão, vamos usar dois pseudo-elementos, o :after e o :before. Esses dois são utilizados com a propriedade “content”, porém, neste momento não precisamos saber exatamente como funciona seu comportamento, na verdade mais pra frente eu falo melhor sobre isso.
Agora vamos começar a estilizar o nosso botão com CSS:
Listagem 2: Primeira parte do CSS
<html>
<head>
<title>Botão com CSS3</title>
</head>
<style>
.botao01{
background: -webkit-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: -moz-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: -o-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: -ms-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
border: 1px solid #CCCCCE;
border-radius: 3px;
box-shadow: 0 3px 0 rgba(0, 0, 0, .3),
0 2px 7px rgba(0, 0, 0, 0.2);
color: #616165;
display: block;
font-family: "Trebuchet MS";
font-size: 14px;
font-weight: bold;
line-height: 25px;
text-align: center;
text-decoration: none;
text-transform: uppercase;
text-shadow:1px 1px 0 #FFF;
padding: 5px 15px;
position: relative;
width: 80px;
}
</style>
<body>
<div class="content">
<a href="#" class="botao01">Botao</a>
</div>
</body>
</html>
Com esse primeiro bloco de CSS, já definimos boa parte da forma do botão. Não têm muito segredo, apenas duas coisas em quê você deve manter a atenção, no background, onde usei um linear-gradient que ainda é algo novo para alguns navegadores, e o box-shadow. Neste ultimo, são duas sombras, então deve se separar com uma vírgula cada valor.
Agora vamos trabalhar com os pseudo-elementos :after e :before. Com eles vamos conseguir colocar mais alguns estilos no botão sem ter que criar outro elemento, como uma div ou span.
Listagem 3: Segunda parte do CSS, inclusão dos pseudo-elementos
<html>
<head>
<title>Botão com CSS3</title>
</head>
<style>
.botao01{
background: -webkit-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: -moz-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: -o-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: -ms-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
border: 1px solid #CCCCCE;
border-radius: 3px;
box-shadow: 0 3px 0 rgba(0, 0, 0, .3),
0 2px 7px rgba(0, 0, 0, 0.2);
color: #616165;
display: block;
font-family: "Trebuchet MS";
font-size: 14px;
font-weight: bold;
line-height: 25px;
text-align: center;
text-decoration: none;
text-transform: uppercase;
text-shadow:1px 1px 0 #FFF;
padding: 5px 15px;
position: relative;
width: 80px;
}
.botao01:before{
border: 1px solid #FFF;
border-radius: 3px;
box-shadow: inset 0 -2px 12px -4px rgba(70, 70, 70, .2),
inset 0 3px 2px -1px rgba(255, 255, 255, 1);
content: "";
bottom: 0;
left: 0;
right: 0;
top: 0;
padding: 5px;
position: absolute;
}
.botao01:after{
background: rgba(255, 255, 255, .4);
border-radius: 2px;
content: "";
bottom: 15px;
left: 0px;
right: 0px;
top: 0px;
position: absolute;
}
</style>
<body>
<div class="content">
<a href="#" class="botao01">Botao</a>
</div>
</body>
</html>
Para fazermos o uso deles, temos que utilizar a propriedade content, ela adiciona conteúdo dentro de um elemento via CSS, é muito útil. E para que os peseudo-elementos “existam” é necessário que tenha alguma coisa dentro deles, por isso temos que usá-la.
Contendo essa propriedade podemos colocar os estilos. O :before, usamos para colocar duas sombras internas e mais uma borda na cor branca. No :after, é onde tem o style que faz aquele efeito espelhado.
No próximo passo vamos colocar um efeito de clique, como se o botão estivesse abaixando quando clicamos em cima dele.
Segue o código logo abaixo:
Listagem 4: Terceira parte do CSS, efeito do click
<html>
<head>
<title>Botão com CSS3</title>
</head>
<style>
.content{
margin: 30px;
}
.botao01{
background: -webkit-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: -moz-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: -o-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: -ms-linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
background: linear-gradient(bottom, #E0E0E0, #F9F9F9 70%);
border: 1px solid #CCCCCE;
border-radius: 3px;
box-shadow: 0 3px 0 rgba(0, 0, 0, .3),
0 2px 7px rgba(0, 0, 0, 0.2);
color: #616165;
display: block;
font-family: "Trebuchet MS";
font-size: 14px;
font-weight: bold;
line-height: 25px;
text-align: center;
text-decoration: none;
text-transform: uppercase;
text-shadow:1px 1px 0 #FFF;
padding: 5px 15px;
position: relative;
width: 80px;
}
.botao01:before{
border: 1px solid #FFF;
border-radius: 3px;
box-shadow: inset 0 -2px 12px -4px rgba(70, 70, 70, .2),
inset 0 3px 2px -1px rgba(255, 255, 255, 1);
content: "";
bottom: 0;
left: 0;
right: 0;
top: 0;
padding: 5px;
position: absolute;
}
.botao01:after{
background: rgba(255, 255, 255, .4);
border-radius: 2px;
content: "";
bottom: 15px;
left: 0px;
right: 0px;
top: 0px;
position: absolute;
}
.botao01:active{
box-shadow: inset 0 0 7px rgba(0, 0, 0, .2);
top: 4px;
}
.botao01:active:before{
border: none;
box-shadow:none;
}
</style>
<body>
<div class="content">
<a href="#" class="botao01">Botao</a>
</div>
</body>
</html>
Aqui colocamos um estilo para quando o botão receber um click. Removemos as sombras externas, inclusive aquela que dá a impressão de que o botão está saltado, e o movemos um pouco para baixo, para dar a impressão de que ele está afundando.
E pra finalizar inserimos uma margin na div content, pra dar um espaçamento entre o botão e as bordas do browser. Nada que modifique o elemento diretamente.
Esse é um exemplo de uma estilização de um simples botão com css, as possibildades são imensas e a sua criatividade é o limite.
Finalizo aqui este tutorial, se alguém estiver com alguma dúvida pode usar a área de comentários ou me enviar um email: andersonweschnhoski@gmail.com


