Quinta-feira, 10 de Fevereiro, 2005 | 22 comentários | 
Um dos temas que mais irei debater neste espaço, sem dúvida, são os padrões web. Nada melhor começar por um assunto tão comum e tão praticado por qualquer programador ou designer web. A idéia é criar formulários XHTML acessíveis com formatações em CSS.
O desenvolvimento em XHTML tende a separar a estrutura de dados da formatação do documento. No caso dos formulários, sempre utilize as tags fieldset e label. A primeira cria um grupo de dados para um determinado espaço do formulário (ex.: Dados Pessoais e Dados Profissionais, são 2 grupos distintos de informações), e a segunda tag rotula um campo do formulário (uma espécie de título para cada campo, utilizando a própria descrição).
Entre questões de acessibilidade e usabilidade, estas tags possuem funcionalidades bem interessantes. Experimente usar o fieldset no seu formulário sem formatações. O browser renderiza criando uma borda ao redor do grupo de dados. É comum utilizar uma legenda para este grupo, usando a tag legend. Veja um exemplo:
Veja o código em XHTML:
<form>
<fieldset>
<legend>Dados Pessoais</legend>
<label for="nome">Nome:</label>
<input type="text" name="nome" id="nome" /><br />
<label for="telefone">Telefone:</label>
<input type="text" name="telefone" id="telefone" />
</fieldset>
<fieldset>
<legend>Dados Profissionais</legend>
<label for="empresa">Empresa:</label>
<input type="text" name="empresa" id="empresa" /><br />
<label for="site">Site:</label>
<input type="text" name="site" id="site" />
</fieldset>
<input type="submit" value="enviar" class="botao" />
</form>
Agora, utilizando do CSS, veja a diferença do mesmo código acima formatado:
Veja o código CSS (download):
form fieldset
{
float: left;
margin-right: 7px;
width: 40%;
border: solid black 1px;
padding: 3%;
margin-bottom: 10px;
}
form legend
{
padding: 6px;
margin: 10px;
border: solid black 1px;
font-size: 90%;
font-weight: bold;
background-color: #e8e8e8;
}
form label
{
display: block;
font-size: 11px;
}
form input
{
width: 100%;
border: solid #ccc 1px;
font-size: 11px;
font-family: 'Trebuchet MS', Verdana, Tahoma, Serif;
}
form input.botao
{
display: block;
width: auto;
float: right;
}
Uma função da tag label por exemplo, faz com que quando o usuário clique em cima do rótulo, o browser foque o campo ao qual ela se refere. É interessante mudar o seletor CSS cursor para pointer (isto faz com que ao passar o mouse, o usuário tenha noção de que se trata de algo clicável).
Ainda se pode modificar a formatação de um campo a depender de seu status, por exemplo, ao ser focado (focus). Veja o restante do código CSS:
form fieldset label
{
cursor: pointer;
display: block
font-size: 11px;
}
form input:focus
{
border-color: black;
}
Olá Ciro, bom esta é uma das formas mais acessiveis de se fazer um form memso, tudo bem que em forms mais complexos é quese que indispensavel o uso de tabelas mas para casos mais simples esta é a melhor opção mesmo, nao esquecendo sempre de tomar medidas que facilitem a vida do usuario, como o uso do tabindex.
Forte abraço cara! sucesso!
Bom dia Ciro, é com prazer que visito teu site especialmente porque o assunto formulário me interessa muito no momento.
Gostaria de saber como é que faço o formulário do meu site(criado em DreamweaveMX), funcionar, enviando-me os dados preenchidos pelo visitante.
Antecipadamente grato, aguardo retorno.
Cordialmente
Gerson Bastos
caio, ajudou muito esse teu código para envio de formulário, mas como faço para adicionar meu e-mail, para receber o que enviarem pelo formulário, obrigado!
Olá.
Dê uma olhada na função MAIL do PHP:
http://php.net/mail
Abraço!
Boa Ciro... Soh pra complementar, e ajudar o KROL JÂNIO, postei no meu blog um post sobre como fazer um formulario em php, nada de css, etc, a parte de envio mesmo...
Para quem quiser verificar:
http://www.brunodulcetti.com/blog/2006/01/25/formulario-em-php.html
Eu ia postar uma segunda parte, postando um formulario acessível, mas jah nem preciso mais... hehehehe...
Aquele abraço rapaz...
A única dúvida que tenho ao utilizar essa estrutura de formulário, é com relação aos radios e checks. Normalmente eles usam um label necessariamente. Mas como devemos usar esse label, de forma que fique acessível e ao mesmo tempo esticamente bom?
perfeito... ainda existe muita deficiência no básco de formatação de código na web e artigos assim ajudam muito a melhorar a qualidade geral dos websites.
parabens!
Jessé,
Você pode usar um label independente para cada radio, por exemplo, setando um ID para cada radio (obviamente um ID tem valor único), mas com nomes (campo name) dos campos iguais.
Abraço!
Olá! Alguém pode me dizer como fazer uma caixa de comentários como essa na qual escrevi essa mensagem?
achei muito conplicada a esplicação
Ciro, é possível fazer um formulário em que os campos de texto tenham imagens no background, para ter uma caixa de texto com cantos arredondados, por exemplo?
Muito bom este formulario,
Oi, gostei muito da sua explicação, estou estagiando e agora estou em programação, paesar de ter iniciado este modulo, necessito criar um formulário para o site de onde estou estagiando, gostari que me enviasse se possivél for um bem melzinho com açúcar em html, pode me ajudar?
Agradeço desde de já!
grande abraço
Erika Serra
como faço um formulário no publisher, pois está dando errado momento em que coloco para os dados serem enviados para meu e-mail.
Ola Ciro,
Sou totalmente amador, mais cuido do site da escolinha de futsal do meu cunhado, e queria fazer um formulario para promover promoção aos alunos, como faço um formulario para inscricao so com nome, fone , endereço e mensagem e encaminhar as mensagens para meu email..
valeu e obrigaro
Ola Ciro,
Gostaria, se possível, saber como faço para que o formulário que coloquei no site seja enviado para meu email (feito no Publisher 2007). Sou amador no assunto.
Obrigado.
Boa noite
Mudei a hospedagem do meu site e agora meu antigo formulario nao funciona mais. Preciso receber uma copia quando o cliente clique em enviar e que o proprio cliente visualize o que escreveu logo depois que clicou em enviar.
Se alguem puder me ajudar agradeço.
Estou procurando contratar alguem que faça isso, porque eu sei que é simples, mas para mim que não entendo nada é muito difícil.
Grata
Debora
Ciro,
Estou tentando usar o formulário do publisher e encontrei o mesmo problema da maioria. Crio o formulário mas quando edito na internet ele não envia a mensagem.
Você tem alguma dica?
Agradeço
Luis
Oi, eu estou querendo criar um formulário q eu possa visualizar assim q abrir o primeiro nome cadastrado no banco de dados e q se mais alguma outra pessoa abrir o mesmo formulário visualizar o segundo nome... e assim sucessivamente e com um botão próximo funcionando.... se puder me ajudar ficarei muito grata!!!
Ciro,
queria apenas fazer uma pequena sugestão no css apresentado por você nesta solução para formulário. Sugiro colocar o estilo \'display\' com o valor \'block\' na tag input e não na tag label, com esta modificação conseguimos assim o mesmo efeito, mas não teremos o problema de ao passar o mouse fora do texto da label, o ponteiro do mouse não fique indicando que algo poderia ser \'clicado\' dando uma impressão errada ao visitante.
Espero que a dica seja útil a todos.
C\'ya
Tenho uma página na web feita no publisher, porém não consigo fazer com que os formulários venham para meu email. Até aparece o formulário na publicação, porém quando envio as informações mostra uma página não reconhecida. O publisher fala que a opção de envio para email necessita que o provedor suporte extensões de servidor do Microsoft Front Page 98 (versão 3.0 ou superior) - o que seria isso? Meu provedor é o Terra!
Obrigado.
Caraca! muito show a dica cara, parabéns...
eu tbm gostaria de passar uma dica...
tem um site que cria um form de contato automaticamente, basta preenchar o formulario com seu email nome e etc...e ele gera um codigo do form...
dai eh soh colar na pagina...para iniciantes isso eh muito bom
segue o site:
http://www.scrapfacil.890m.com/formail
flw...vlw
As imagens que aparecem são Gravatars. Ao registrar um, sempre que comentar em algum blog que suporte essa funcionalidade, sua imagem aparecerá ao lado. Se você ainda não tem um gravatar, crie aqui.
English Version © Copyright 2004-2008 Ciro Feitosa - Todos os Direitos Reservados