HTML & CSS para iniciantes

HTML & CSS para iniciantes (Parte 15): Formulários (3)

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

Mesmo que os formulários HTML5 tenham muito mais recursos do que seus predecessores, eles podem ser definidos da mesma forma.

O HTML5 de fato oferece muitos novos tipos de campos. O suporte dos navegadores atuais para eles é relativamente bom. No entanto, nesta seção, vou apresentar apenas tipos de campo que são práticos.


Seletor de cores

Você pode oferecer aos seus visitantes a opção de escolher uma cor.

HTML & CSS para iniciantes (Parte 15): Formulários (3)

Quando você clica em um campo desse tipo, um seletor de cor típico é aberto.

HTML & CSS para iniciantes (Parte 15): Formulários (3)



Através dele, é possível escolher a cor desejada. Um seletor de cores desse tipo é definido por <input type="color" />.

Escolha a sua cor favorita: <input type="color" name="lf" />



O campo sempre deve ter um valor atribuído. Se ele estiver faltando ou for inválido, automaticamente será assumido o valor #000 (ou seja, preto).

Data e Hora

Principalmente no que diz respeito aos tipos de campo para datas e horários, existem várias novidades em HTML5. E esses tipos de campo podem ser realmente complexos. Pense, por exemplo, nos passos necessários para oferecer aos seus visitantes um campo de seleção de datas. Normalmente, sem JavaScript (ou mesmo Flash), isso não seria possível. Graças ao HTML5, agora isso está muito mais fácil. Aqui, você precisa apenas definir um campo de entrada do tipo date.

<input type="date" />



A exibição e implementação do calendário é de responsabilidade exclusiva do navegador. Os navegadores devem apresentar um widget adequado para a exibição do calendário. No Google Chrome, uma aplicação pode ser assim:

HTML e CSS para iniciantes (Parte 15): Formulários (3)

Com date, um calendário é definido, pelo qual os usuários podem escolher a data desejada. Após a seleção, a data é automaticamente inserida no campo de texto.

Da mesma forma, é fácil criar um campo de hora. Para isso, é usado um campo do tipo time.

<input type="time" />



Por meio de time, os navegadores devem exibir controles para selecionar um horário.

HTML & CSS para iniciantes (Parte 15): Formulários (3)



De forma similar, week funciona. Ele exibe um campo para seleção da semana.

<input type="week" />



Também é possível exibir um campo de mês.

<input type="month" />



Ambos os tipos de campo apresentam controles pelos quais as informações desejadas podem ser ajustadas.

Enquanto time e date permitem apenas a seleção da data ou apenas a seleção do horário, datetime e datetime-local permitem uma combinação de ambas as variantes.

Com datetime, um campo de data e um campo para selecionar o horário são exibidos lado a lado. (Datetime atualmente é suportado apenas pelo Safari e Opera).

HTML & CSS para iniciantes (Parte 15): Formulários (3)

Já foi mencionado que os campos de formulários apresentados nesta seção ainda não são suportados por todos os navegadores. Se você deseja ainda assim utilizá-los, pode recorrer a soluções JavaScript apropriadas. Grandes frameworks em JavaScript, como jQuery e Dojo, oferecem scripts adequados. Com o jQuery UI, seria da seguinte maneira:

<!DOCTYPE html>
<html>
<head>
  <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>
/* <![CDATA[ */
  $(document).ready(function() {
    $("#datepicker").datepicker();
  });
/* ]]> */
  </script>
</head>
<body>
   <input type="text" id="datepicker" />
</body>
</html>

Dessa forma, você estará seguro, mesmo que o navegador não suporte o clássico date.

HTML & CSS para iniciantes (Parte 15): Formulários (3)

Campos para Números

Por meio de number, é oferecido um campo especialmente destinado à entrada de números.

<input type="number" />



Os números podem ser inseridos nesses campos de duas maneiras:

• através do teclado

• através dos elementos de controle

Através da especificação de atributos adicionais, os campos de tipo number podem ser descritos de forma mais detalhada. Em primeiro lugar, há os dois atributos min e max que determinam os intervalos de valores dos campos.

min - o valor mínimo

max - o valor máximo

No entanto, esses dois atributos se aplicam apenas aos elementos de controle do navegador. As entradas manuais dos usuários através do teclado não são afetadas por eles.

Ambos os atributos podem ser atribuídos a números inteiros e de ponto flutuante.

O atributo step permite definir o passo que deve ser seguido pelos elementos de controle do navegador.

<input type="number" min="0" max="8" step="2" />



Neste caso, através dos controles do navegador, só seria possível selecionar os valores 0, 2, 4, 6 e 8.

Controle deslizante

Campos do tipo range permitem a seleção de um valor dentro de um intervalo de valores definido.

HTML & CSS para iniciantes (Parte 15): Formulários (3)

Os navegadores interpretam o campo range através de um controle deslizante.

<input type="range"  min="0" max="10" step="2" value="6">



O valor mínimo possível é especificado pelo atributo min. max descreve o valor máximo. Se os atributos min e max estiverem ausentes, os navegadores assumem os valores 0 e 100.

Através do step, pode-se definir a sequência de passos.

Criando campos de pesquisa

search inicialmente não tem função. Em vez disso, esse tipo de campo é visto como um complemento ao campo de entrada de texto clássico. A finalidade dos campos search é simplesmente se diferenciar visualmente dos campos de texto simples. Normalmente, os navegadores devem lidar com a aparência dos campos search.

<input type="search" />



Como isso será implementado, fica a critério dos fabricantes. Uma boa combinação é adicionar o atributo results.

<input type="search" results="5" placeholder="Pesquisar..." />



O atributo results determina quantas pesquisas anteriores devem ser exibidas no campo.

Mas atenção: O atributo results não faz parte da especificação do HTML5.