HTML & CSS para iniciantes

HTML & CSS para iniciantes (Parte 47): O formulário de contato (2)

Todos os vídeos do tutorial HTML & CSS para iniciantes

Vamos começar com o botão de envio. O estado atual do CSS deve parecer assim:

input[type="submit"] {
   background-color: #3399FF;
   color: #fff;
   cursor: pointer;
   font: bold 1em/1.2 Georgia, "Times New Roman ", serif;
   border: 1px solid #000;
   padding: 5px 10px;
   width: auto;
}

Esta sintaxe leva ao seguinte resultado:

HTML & CSS para iniciantes (Parte 47): O formulário de contato (2)

Este é um botão bastante normal. Não está especialmente emocionante em termos de design, mas cumpre bem o seu propósito. No entanto, ele será melhorado um pouco. O resultado final será o seguinte:

HTML & CSS para iniciantes (Parte 47): O formulário de contato (2)



Além disso, há um efeito hover. O botão mudará de cor quando o cursor do mouse passar por cima dele.

Se olharem o botão com mais detalhe, perceberão os cantos arredondados. Isso é certamente uma das novidades em CSS que os web designers esperavam há muito tempo. Porque "antigamente" não era possível fazer isso. (Exceção eram, naturalmente, os elementos button, nos quais era possível trabalhar com imagens.)

Agora, é possível aplicar cantos arredondados não apenas em elementos normais da página, mas também em botões.

No rascunho de trabalho do CSS3, existe a propriedade border-radius para isso. Navegadores Mozilla e WebKit oferecem diferentes formas de escrever para um suporte experimental a essa propriedade.

-moz-border-radius

-webkit-border-radius

No entanto, atualmente, todos os navegadores modernos suportam cantos arredondados.

Com base nesse conhecimento, a definição de border-radius pode ser feita da seguinte forma:

-webkit-border-radius: 17px;
-moz-border-radius: 17px;
border-radius: 17px;



No entanto, se olharem com mais detalhe, verão que também foi atribuído um degradê ao botão.

HTML & CSS para iniciantes (Parte 47): O formulário de contato (2)

Finalmente, é possível fazer isso com as ferramentas CSS disponíveis. Para isso, são usadas as diferentes propriedades de gradient, que são atribuídas à propriedade background. Atualmente, existem várias ferramentas para gerar degradês de cores.

Uma delas, por exemplo, pode ser encontrada no site http://www.css3factory.com/linear-gradients/. Na seguinte sintaxe, foi definido um degradê e os cantos arredondados conhecidos.

No exemplo atual, a sintaxe para o botão é a seguinte:

input[type="submit"] {
   border-top: 1px solid #96d1f8;
   background: #65a9d7;
   background: -webkit-gradient(linear, left top, left bottom, from(#3e779d), to(#65a9d7));
   background: -webkit-linear-gradient(top, #3e779d, #65a9d7);
   background: -moz-linear-gradient(top, #3e779d, #65a9d7);
   background: -ms-linear-gradient(top, #3e779d, #65a9d7);
   background: -o-linear-gradient(top, #3e779d, #65a9d7);
   background: -linear-gradient(top, #3e779d, #65a9d7);
   padding: 10px 20px;
   -webkit-border-radius: 17px;
   -moz-border-radius: 17px;
   border-radius: 17px;
   -webkit-box-shadow: rgba(0,0,0,1) 0 1px 0;
   -moz-box-shadow: rgba(0,0,0,1) 0 1px 0;
   box-shadow: rgba(0,0,0,1) 0 1px 0;
   text-shadow: rgba(0,0,0,.4) 0 1px 0;
   color: white;
   font-size: 21px;
   font-family: 'Lucida Grande', Helvetica, Arial, Sans-Serif;
   text-decoration: none;
   vertical-align: middle;
   width: auto;
}



Como mencionei antes, os botões devem reagir ao passar do mouse sobre eles. Para isso, é usado o conhecido :hover.

#submit:hover {
   border-top-color: #28597a;
   background: #28597a;
   color: #ccc;
}

O botão também reagirá a outro evento. Para isso, é usado o pseudo-classe :active. Assim, podemos reagir quando o botão é clicado.

#submit:active {
   border-top-color: #1b435e;
   background: #1b435e;
}



No exemplo atual, quando o botão é clicado, a cor da parte superior e o fundo do botão mudam de cor.

Cantos arredondados para os campos

Os chamados cantos arredondados podem ser aplicados não apenas aos botões, mas também aos campos de entrada. O resultado final pode ser algo assim:

HTML & CSS para iniciantes (Parte 47): O formulário de contato (2)

E aqui está a sintaxe correspondente:

input[type="text"], input[type="email"], textarea {
   border: 1px solid #bebebe;
   -moz-border-radius: 9px;
   -webkit-border-radius: 9px;
   border-radius: 9px;
}



Vocês já conhecem as propriedades necessárias para definir cantos arredondados como esses.

Validação de formulário com CSS3

Atualmente, os visitantes podem digitar nos campos de entrada o que quiserem. Não há verificação dos valores inseridos. Isso mudará agora. Os campos serão verificados quanto aos seguintes critérios:

• O campo de Nome deve estar preenchido.

• O campo de E-mail deve conter um endereço de e-mail sintaticamente correto.

• O campo de entrada multi-linhas também deve estar preenchido.

Somente quando esses critérios forem atendidos, o formulário poderá ser realmente enviado.

Para marcar um campo como obrigatório, atribuímos a ele o atributo required. Um campo marcado com ele deve ser preenchido, ou seja, não pode estar vazio.

Uma aplicação correspondente seria assim:

<form>
 <input type="text" name="name" id="name" value="" required/>
</form>

Aqui o navegador verificará se o campo foi preenchido. Se o campo estiver vazio e mesmo assim for tentado enviar o formulário, o navegador deve exibir uma mensagem de erro.

HTML & CSS para iniciantes (Parte 47): O formulário de contato (2)

Algo um pouco mais avançado acontece com os campos de e-mail. Eles são atribuídos com type="email" e o atributo required. Agora, não só um valor precisa ser inserido no campo, mas sim um endereço de e-mail correto, caso contrário também haverá uma mensagem de erro ao enviar o formulário.

HTML & CSS para iniciantes (Parte 47): O formulário de contato (2)

No total, o formulário pode parecer assim:

<ol>
   <li>
      <label for="name">Nome:</label>
      <input type="text" name="name" id="name" value="" required/>
   </li>

   <li>
      <label for="email">Endereço de E-mail:</label>
      <input type="email" name="email" id="email" value="" required/>
   </li>
   <li>
      <label for="comment">Comentário:</label>
      <textarea cols="32" rows="7" name="content" id="content" required></textarea>
   </li>
   <li class="button">
      <input type="submit" name="submit" id="submit" value="Enviar" />
   </li>
 </ol>



Especialmente em formulários mais extensos, pode haver campos obrigatórios, mas também campos que não precisam ser preenchidos necessariamente. Nestes casos, você pode destacar os campos obrigatórios separadamente. O acesso aos campos obrigatórios é feito no CSS por meio de: required.

:required {
   background-color: #ff0000;
}

Com essa sintaxe, os campos obrigatórios são destacados com uma cor de fundo vermelha.

HTML & CSS para iniciantes (parte 47): O formulário de contato (2)

Outra maneira de chamar a atenção para campos obrigatórios é a seguinte sintaxe:

input:required:focus {
   border: 1px solid red;
   outline: none;
}



Quando você tenta enviar o formulário, o primeiro campo recebe uma borda vermelha e o foco, se ele não foi preenchido ou não atende aos requisitos de validação.

HTML & CSS para iniciantes (Parte 47): O formulário de contato (2)



Se um usuário preenche corretamente este campo, mas há outro campo não preenchido, ele será focado também após o próximo envio e terá uma borda vermelha.