<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Projetista Digital &#187; tutorial iniciante html</title>
	<atom:link href="http://www.projetistadigital.com/tag/tutorial-iniciante-html/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.projetistadigital.com</link>
	<description>Projetando pra web. Projetando a web.</description>
	<lastBuildDate>Thu, 23 Jul 2009 15:18:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Minicurso de HTML: Parte XII – Formulários Web: mais alguns elementos e atributos</title>
		<link>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-xii-%e2%80%93-formularios-web-mais-alguns-elementos-e-atributos/</link>
		<comments>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-xii-%e2%80%93-formularios-web-mais-alguns-elementos-e-atributos/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 08:00:16 +0000</pubDate>
		<dc:creator>Diego Marques</dc:creator>
				<category><![CDATA[WebStandards (Padrões Web)]]></category>
		<category><![CDATA[XHTML & HTML]]></category>
		<category><![CDATA[agrupar options]]></category>
		<category><![CDATA[atributo id]]></category>
		<category><![CDATA[atributo name]]></category>
		<category><![CDATA[atributo value]]></category>
		<category><![CDATA[botões formulários web]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[caixa de texto várias linhas]]></category>
		<category><![CDATA[campo upload de arquivo]]></category>
		<category><![CDATA[campos de formulário somente leitura]]></category>
		<category><![CDATA[campos de senha]]></category>
		<category><![CDATA[checkbox checked]]></category>
		<category><![CDATA[checkbox marcado]]></category>
		<category><![CDATA[checkbox preenchido]]></category>
		<category><![CDATA[curso online de html]]></category>
		<category><![CDATA[desabilitar campos de formulário]]></category>
		<category><![CDATA[disabled]]></category>
		<category><![CDATA[dividindo o formulário]]></category>
		<category><![CDATA[fieldset]]></category>
		<category><![CDATA[formulário web]]></category>
		<category><![CDATA[formulários html]]></category>
		<category><![CDATA[HTML & XHTML]]></category>
		<category><![CDATA[html para iniciantes]]></category>
		<category><![CDATA[introdução ao html]]></category>
		<category><![CDATA[juntar options]]></category>
		<category><![CDATA[label]]></category>
		<category><![CDATA[legend]]></category>
		<category><![CDATA[legenda formulário]]></category>
		<category><![CDATA[option selecionado]]></category>
		<category><![CDATA[option selected]]></category>
		<category><![CDATA[readonly]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[tag form]]></category>
		<category><![CDATA[tags html head body]]></category>
		<category><![CDATA[textarea]]></category>
		<category><![CDATA[tutorial básico html]]></category>
		<category><![CDATA[tutorial iniciante html]]></category>

		<guid isPermaLink="false">http://www.projetistadigital.com/?p=183</guid>
		<description><![CDATA[Olá Pessoal,
Continuando com o assunto formulários web, falaremos hoje sobre mais alguns elementos e atributos, e dicas para criação de formulários acessíveis. Aproveitem bem o conteúdo e estudem com calma:
Elementos FIELDSET e LEGEND
No decorrer da nossa vida como profissionais de web (designers, programadores de interfaces, desenvolvedores etc.), construiremos desde simples formulários de contato, até complexos [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Continuando com o assunto formulários web, falaremos hoje sobre mais alguns elementos e atributos, e dicas para criação de formulários acessíveis. Aproveitem bem o conteúdo e estudem com calma:</p>
<h3>Elementos FIELDSET e LEGEND</h3>
<p>No decorrer da nossa vida como profissionais de web (designers, programadores de interfaces, desenvolvedores etc.), construiremos desde simples formulários de contato, até complexos e extensos formulários de cadastro ou compra de produtos. E em todos os casos teremos a necessidade de agrupar os elementos de um formulário conforme características relacionadas.  Já imaginou um formulário de cadastro onde os campos para dados pessoais se misturassem com os campos para dados profissionais, ou escolares? Sem uma distinção clara entre cada grupo de campos o formulário seria uma zona, aumentando em muito o tempo levado para preenchê-lo e a taxa de usuários que desistiriam.</p>
<p>Para agrupar os campos de um formulário com características comuns, utilizamos o elemento FIELDSET. Todos os campos serão englobados pelas tags &lt;fieldset&gt;&lt;/fieldset&gt;. Visualmente o elemento FIELDSET criará uma borda em torno dos elementos nele contidos, criando um bloco de conteúdo isolado de outros elementos. Se nosso formulário possuir vários elementos FIELDSET, teremos então várias caixas de elementos, separadas umas das outras. Cada elemento FIELDSET pode possuir uma legenda, ou seja, um texto indicando ao que se referem os elementos contidos nele (Ex: Dados Pessoais, Dados Escolares, Dados Residenciais, Dados Profissionais etc.). Essas legendas são marcadas pela tag LEGEND &#8211;  &lt;legend&gt;&lt;/legend&gt;. Veja um exemplo dos elementos FIELDSET e LEGEND:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
   &lt;fieldset&gt;
         &lt;legend&gt;Formulário de Contato&lt;/fieldset&gt;
         &lt;label for=&quot;nome&quot;&gt;Nome:&lt;/label&gt; &lt;input type=&quot;text&quot; id=&quot;nome&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;email&quot;&gt;Email:&lt;/label&gt; &lt;input type=&quot;text&quot; id=&quot;email&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;masc&quot;&gt;MASC:&lt;/label&gt; &lt;input type=&quot;radio&quot; name=&quot;masc&quot; /&gt; &lt;label for=&quot;fem&quot;&gt;FEM&lt;/label&gt; 
         &lt;input type=&quot;radio&quot; name=&quot;sexo&quot; id=&quot;fem&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;news&quot;&gt;Deseja receber nossa newsletter:&lt;/label&gt; &lt;input type=&quot;checkbox&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;como&quot;&gt;Como nos conheceu:&lt;/label&gt; 
         &lt;select id=&quot;como&quot;&gt;
            &lt;option&gt;Google&lt;/option&gt;
            &lt;option&gt;Indicação de amigo&lt;/option&gt;
            &lt;option&gt;Outros&lt;/option&gt;
         &lt;/select&gt;&lt;br /&gt;
         &lt;label for=&quot;msg&quot;&gt;Mensagem:&lt;/label&gt; &lt;textarea cols=&quot;7&quot; rows=&quot;40&quot; id=&quot;msg&quot;&gt;&lt;/textarea&gt;
         &lt;button type=&quot;submit&quot;&gt;Enviar&lt;/button&gt;
   &lt;/fieldset&gt;  
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
   <fieldset><br />
         <legend>Formulário de Contato</fieldset><br />
         <label for="nome">Nome:</label><br />
<input type="text" id="" />
         <label for="email">Email:</label><br />
<input type="text" id="" />
         <label for="masc">MASC:</label><br />
<input type="radio" name="masc" /> <label for="fem">FEM</label> </p>
<input type="radio" name="sexo" id="fem" />
         <label for="news">Deseja receber nossa newsletter:</label><br />
<input type="checkbox" />
         <label for="como">Como nos conheceu:</label> </p>
<select id="como">
            <option>Google</option><br />
            <option>Indicação de amigo</option><br />
            <option>Outros</option><br />
         </select>
<p>
         <label for="msg">Mensagem:</label> <textarea cols="7" rows="40" id="msg"></textarea><br />
         <button type="submit">Enviar</button><br />
   </fieldset><br />
</form>
<p>Antes de prosseguir, façam o seguinte exercício:</p>
<p>Entrem na <a href="http://www.mercadolivre.com.br/jm/reg" target="_blank" title="Página de Cadastro do Mercado Livre">página de cadastro do Mercado Livre</a> e observem o formulário: esqueçam o layout e diagramação, e reconstruam esse formulário separando os elementos por FIELDSET e LEGEND (Dados Pessoais e Dados do Usuário no Mercado Livre).</p>
<h3>Atributos NAME, ID e VALUE</h3>
<p>Quem tem nos acompanhado desde o primeiro post sobre formulários, tem visto que utilizo em  alguns momentos os atributos NAME, ID e VALUE, e sempre prometo que irei explicá-los “mais pra frente”. Pois bem, “mais pra frente” é agora! <img src='http://www.projetistadigital.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Qualquer controle de formulário (INPUT, SELECT, TEXTAREA, BUTTON) permite ao usuário passar informações para o nosso site, e essas informações serão enviadas para algum script (em PERL, CGI, PHP, ASP.NET, JAVA etc.) que receberá os dados, verificá-los e por fim dará um fim ao formulário (envio por email, inserção num banco de dados etc.). Ok, mas como esse script saberá qual foi o valor digitado pelo usuário num campo de texto, por exemplo? Simples: quando clicamos no botão ENVIAR, mandamos uma espécie de catálogo de dados, onde cada campo do formulário corresponde a uma ficha desse catálogo. Essa ficha, por sua vez, é dividida em duas partes: índice (uma forma de referenciar o campo, e diferenciá-lo) e conteúdo (o valor digitado pelo usuário). Sabemos o que é o conteúdo, mas o que são os índices? O atributo NAME funciona como índice de um campo do formulário, ou seja, é o NAME do elemento que será referenciado pelo script responsável por processar o formulário.</p>
<p>Vários elementos HTML admitem o uso do atributo NAME (lembrem-se que utilizamos NAME para criação de links âncoras), assim como o atributo ID. Ambos os atributos tem uma única função: identificar um elemento. Simples assim! No caso dos controles de formulário, o atributo NAME tem uma função de integração com linguagens de programação para o tratamento de dados; assim como tanto NAME e ID podem ser usados como referência de elementos para JavaScript, CSS etc. </p>
<p>Ok! Qual é a diferença entre NAME e ID? O atributo ID funciona como “o CPF do elemento”, ou seja, não podem haver dois ou mais elementos, na mesma página, com o mesmo ID. Já o atributo NAME admite repetição, podemos ter vários elementos com o mesmo NAME. Por isso o elemento LABEL se vincula ao campo de formulário através do atributo ID&#8230; Veja um formulário com ambos os atributos ID e NAME:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
   &lt;fieldset&gt;
         &lt;legend&gt;Formulário de Contato&lt;/fieldset&gt;
         &lt;label for=&quot;nome&quot;&gt;Nome:&lt;/label&gt; &lt;input type=&quot;text&quot; id=&quot;nome&quot; name=&quot;nome&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;email&quot;&gt;Email:&lt;/label&gt; &lt;input type=&quot;text&quot; id=&quot;email&quot; name=&quot;email&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;masc&quot;&gt;MASC:&lt;/label&gt; &lt;input type=&quot;radio&quot; name=&quot;masc&quot; /&gt; &lt;label for=&quot;fem&quot;&gt;FEM&lt;/label&gt; &lt;input type=&quot;radio&quot; name=&quot;sexo&quot; id=&quot;fem&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;news&quot;&gt;Deseja receber nossa newsletter:&lt;/label&gt; &lt;input type=&quot;checkbox&quot; name=&quot;news&quot; id=&quot;news&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;como&quot;&gt;Como nos conheceu:&lt;/label&gt; 
         &lt;select id=&quot;como&quot; name=&quot;como&quot;&gt;
            &lt;option&gt;Google&lt;/option&gt;
            &lt;option&gt;Indicação de amigo&lt;/option&gt;
            &lt;option&gt;Outros&lt;/option&gt;
         &lt;/select&gt;&lt;br /&gt;
         &lt;label for=&quot;msg&quot;&gt;Mensagem:&lt;/label&gt; &lt;textarea cols=&quot;7&quot; rows=&quot;40&quot; id=&quot;msg&quot; name=&quot;msg&quot;&gt;&lt;/textarea&gt;
         &lt;button type=&quot;submit&quot;&gt;Enviar&lt;/button&gt;
   &lt;/fieldset&gt;  
&lt;/form&gt;</pre></td></tr></table></div>

<p>Muitos de vocês já viram formulários web que apresentam algum conteúdo dentro da caixa de texto, normalmente uma instrução de preenchimento. E nesse momento devem se perguntar: como posso fazer isso? Simples: basta adicionar o atributo VALUE em seus elementos. Veja como funciona:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
   &lt;fieldset&gt;
         &lt;legend&gt;Formulário de Contato&lt;/fieldset&gt;
         &lt;label for=&quot;nome&quot;&gt;Nome:&lt;/label&gt; &lt;input type=&quot;text&quot; id=&quot;nome&quot; name=&quot;nome&quot; value=&quot;Digite seu nome..&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;email&quot;&gt;Email:&lt;/label&gt; &lt;input type=&quot;text&quot; id=&quot;email&quot; name=&quot;email&quot;  value=&quot;Digite seu email...&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;masc&quot;&gt;MASC:&lt;/label&gt; &lt;input type=&quot;radio&quot; name=&quot;masc&quot; id=&quot;masc&quot; value=&quot;masc&quot; /&gt; &lt;label for=&quot;fem&quot;&gt;FEM&lt;/label&gt; &lt;input type=&quot;radio&quot; name=&quot;sexo&quot; id=&quot;fem&quot; value=&quot;fem&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;news&quot;&gt;Deseja receber nossa newsletter:&lt;/label&gt; &lt;input type=&quot;checkbox&quot; name=&quot;news&quot; id=&quot;news&quot; value=&quot;&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;como&quot;&gt;Como nos conheceu:&lt;/label&gt; 
         &lt;select id=&quot;como&quot; name=&quot;como&quot;&gt;
            &lt;option&gt;Google&lt;/option&gt;
            &lt;option&gt;Indicação de amigo&lt;/option&gt;
            &lt;option&gt;Outros&lt;/option&gt;
         &lt;/select&gt;&lt;br /&gt;
         &lt;label for=&quot;msg&quot;&gt;Mensagem:&lt;/label&gt; &lt;textarea cols=&quot;7&quot; rows=&quot;40&quot; id=&quot;msg&quot; name=&quot;msg&quot;&gt;O elemento textarea não possui o atributo VALUE&lt;/textarea&gt;
         &lt;button type=&quot;submit&quot;&gt;Enviar&lt;/button&gt;
   &lt;/fieldset&gt;  
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
   <fieldset><br />
         <legend>Formulário de Contato</fieldset><br />
         <label for="nome">Nome:</label><br />
<input type="text" id="nome" name="nome" value="Digite seu nome.." />
         <label for="email">Email:</label><br />
<input type="text" id="email" name="email"  value="Digite seu email..." />
         <label for="masc">MASC:</label><br />
<input type="radio" name="masc" id="masc" value="masc" /> <label for="fem">FEM</label><br />
<input type="radio" name="sexo" id="fem" value="fem" />
         <label for="news">Deseja receber nossa newsletter:</label><br />
<input type="checkbox" name="news" id="news" value="" />
         <label for="como">Como nos conheceu:</label> </p>
<select id="como" name="como">
            <option value="google">Google</option><br />
            <option value="amigo">Indicação de amigo</option><br />
            <option value="outros">Outros</option><br />
         </select>
<p>
         <label for="msg">Mensagem:</label> <textarea cols="7" rows="40" id="msg" name="msg">O elemento textarea não possui o atributo VALUE</textarea><br />
         <button type="submit">Enviar</button><br />
   </fieldset><br />
</form>
<p>Reparem que mesmo não exibindo nenhum texto na tela, usamos o atributo VALUE nos elementos INPUT RADIO, INPUT CHECKBOX e OPTION. Esses controles permitem ao usuário escolher uma ou mais opções, dentre uma lista, e o conteúdo do atributo VALUE será o valor enviado para o script de processamento do formulário, assim que o mesmo for disparado.</p>
<h3>Atributos CHECKED e SELECTED</h3>
<p>Podemos também apresentar um elemento INPUT CHECKBOX (aquelas caixinhas onde marcamos / desmarcamos com um clique) já preenchido, por padrão. Para isso basta adicionar o atributo CHECKED no elemento.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
   &lt;label for=&quot;news&quot;&gt;Deseja receber nossa newsletter:&lt;/label&gt; &lt;input type=&quot;checkbox&quot; name=&quot;news&quot; id=&quot;news&quot; value=&quot;news&quot; checked=&quot;checked&quot; /&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
   <label for="news">Deseja receber nossa newsletter:</label><br />
<input type="checkbox" name="news" id="news" value="news" checked="checked" />
</form>
<p>Da mesma forma podemos escolher um elemento OPTION para aparecer selecionado, por padrão, dentro de um SELECT. Basta adicionar, ao OPTION, o atributo SELECTED. Veja como fica:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
   &lt;select id=&quot;como&quot; name=&quot;como&quot;&gt;
       &lt;option value=&quot;google&quot;&gt;Google&lt;/option&gt;
       &lt;option value=&quot;amigo&quot;&gt;Indicação de amigo&lt;/option&gt;
       &lt;option value=&quot;outros&quot; selected=&quot;selected&quot;&gt;Outros&lt;/option&gt;
   &lt;/select&gt; 
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<select id="como" name="como">
       <option value="google">Google</option><br />
       <option value="amigo">Indicação de amigo</option><br />
       <option value="outros" selected="selected">Outros</option><br />
   </select>
</form>
<h3>Atributos READONLY e DISABLED</h3>
<p>Existem situações em que o usuário não pode manipular um elemento de formulário. Imagine que você tem alguns campos para compor o endereço do usuário, e o usuário não poderá digitar diretamente o endereço, precisará primeiro preencher o CEP, e aí será feita uma consulta na base de endereços completando os demais campos (rua, cidade, estado etc.); ou então, você quer manter o botão de envio do formulário desabilitado, enquanto alguns campos não forem preenchidos. Enfim, não importa o seu motivo, se for necessário desativar elementos de um formulário, utilizaremos os atributos READONLY ou DISABLED.</p>
<p>READONLY é um atributo aplicado apenas nos elementos INPUT e TEXTAREA, e impede o usuário de editar o conteúdo da caixa de texto. O valor do campo será enviado para o script de processamento, assim como o usuário poderá dar foco normalmente no campo e a navegação via teclado funcionará normalmente. A única coisa que o usuário não poderá fazer é: editar o conteúdo.</p>
<p>DISABLED é um atributo aplicado nos elementos INPUT, TEXTAREA, SELECT, OPTGROUP, OPTION e BUTTON, e desabilita o campo do formulário, impedindo a edição do seu valor. Quando desabilitamos um campo, seu valor não será enviado junto com os demais campos do formulário, o usuário não conseguirá colocar o foco no campo e a navegação via teclado será desabilitada.</p>
<p>Veja um exemplo dos atributos READONLY e DISABLED:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
   &lt;fieldset&gt;
         &lt;legend&gt;Formulário de Contato&lt;/fieldset&gt;
         &lt;label for=&quot;nome&quot;&gt;Nome:&lt;/label&gt; &lt;input type=&quot;text&quot; id=&quot;nome&quot; name=&quot;nome&quot; value=&quot;Diego&quot; readonly=&quot;readonly&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;email&quot;&gt;Email:&lt;/label&gt; &lt;input type=&quot;text&quot; id=&quot;email&quot; name=&quot;email&quot;  value=&quot;Digite seu email...&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;masc&quot;&gt;MASC:&lt;/label&gt; &lt;input type=&quot;radio&quot; name=&quot;masc&quot; id=&quot;masc&quot; value=&quot;masc&quot; /&gt; &lt;label for=&quot;fem&quot;&gt;FEM&lt;/label&gt; &lt;input type=&quot;radio&quot; name=&quot;sexo&quot; id=&quot;fem&quot; value=&quot;fem&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;news&quot;&gt;Deseja receber nossa newsletter:&lt;/label&gt; &lt;input type=&quot;checkbox&quot; name=&quot;news&quot; id=&quot;news&quot; value=&quot;&quot; /&gt;&lt;br /&gt;
         &lt;label for=&quot;como&quot;&gt;Como nos conheceu:&lt;/label&gt; 
         &lt;select id=&quot;como&quot; name=&quot;como&quot; disabled=&quot;disabled&quot;&gt;
            &lt;option&gt;Google&lt;/option&gt;
            &lt;option&gt;Indicação de amigo&lt;/option&gt;
            &lt;option&gt;Outros&lt;/option&gt;
         &lt;/select&gt;&lt;br /&gt;
         &lt;label for=&quot;msg&quot;&gt;Mensagem:&lt;/label&gt; &lt;textarea cols=&quot;7&quot; rows=&quot;40&quot; id=&quot;msg&quot; name=&quot;msg&quot;&gt;O elemento textarea não possui o atributo VALUE&lt;/textarea&gt;
         &lt;button type=&quot;submit&quot;&gt;Enviar&lt;/button&gt;
   &lt;/fieldset&gt;  
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
   <fieldset><br />
         <legend>Formulário de Contato</fieldset><br />
         <label for="nome">Nome:</label><br />
<input type="text" id="nome" name="nome" value="Diego" readonly="readonly" />
         <label for="email">Email:</label><br />
<input type="text" id="email" name="email"  value="Digite seu email..." />
         <label for="masc">MASC:</label><br />
<input type="radio" name="masc" id="masc" value="masc" /> <label for="fem">FEM</label><br />
<input type="radio" name="sexo" id="fem" value="fem" />
         <label for="news">Deseja receber nossa newsletter:</label><br />
<input type="checkbox" name="news" id="news" value="" />
         <label for="como">Como nos conheceu:</label> </p>
<select id="como" name="como" disabled="disabled">
            <option>Google</option><br />
            <option>Indicação de amigo</option><br />
            <option>Outros</option><br />
         </select>
<p>
         <label for="msg">Mensagem:</label> <textarea cols="7" rows="40" id="msg" name="msg">O elemento textarea não possui o atributo VALUE</textarea><br />
         <button type="submit">Enviar</button><br />
   </fieldset><br />
</form>
<p>Por hoje é só, pessoal! No próximo post terminaremos essa parte sobre formulários web, falando um pouco sobre como incrementar a acessibilidade em nossos formulários. Até lá e bom estudo!</p>
<p>Abraços,<br />
Diego.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-xii-%e2%80%93-formularios-web-mais-alguns-elementos-e-atributos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Minicurso de HTML: Parte XII – Formulários Web: elementos de um formulário</title>
		<link>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-xii-%e2%80%93-formularios-web-elementos-de-um-formulario/</link>
		<comments>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-xii-%e2%80%93-formularios-web-elementos-de-um-formulario/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 16:13:32 +0000</pubDate>
		<dc:creator>Diego Marques</dc:creator>
				<category><![CDATA[WebStandards (Padrões Web)]]></category>
		<category><![CDATA[XHTML & HTML]]></category>
		<category><![CDATA[agrupar options]]></category>
		<category><![CDATA[botões formulários web]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[caixa de texto várias linhas]]></category>
		<category><![CDATA[campo upload de arquivo]]></category>
		<category><![CDATA[campos de senha]]></category>
		<category><![CDATA[curso online de html]]></category>
		<category><![CDATA[formulário web]]></category>
		<category><![CDATA[formulários html]]></category>
		<category><![CDATA[HTML & XHTML]]></category>
		<category><![CDATA[html para iniciantes]]></category>
		<category><![CDATA[introdução ao html]]></category>
		<category><![CDATA[juntar options]]></category>
		<category><![CDATA[label]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[tag form]]></category>
		<category><![CDATA[tags html head body]]></category>
		<category><![CDATA[textarea]]></category>
		<category><![CDATA[tutorial básico html]]></category>
		<category><![CDATA[tutorial iniciante html]]></category>

		<guid isPermaLink="false">http://www.projetistadigital.com/?p=180</guid>
		<description><![CDATA[Olá Pessoal,
Falamos anteriormente sobre o que são formulários web e o elemento INPUT. Hoje continuaremos a descrever os elementos que compõem um formulário. Então, mãos à obra:
Elementos SELECT, OPTION e OPTGROUP
Chamamos de SELECT aquelas caixinhas de seleção, onde ao pressionar uma seta para baixo, visualizamos uma lista de opções, dentre as quais escolheremos apenas uma. [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Falamos anteriormente sobre o que são formulários web e o elemento INPUT. Hoje continuaremos a descrever os elementos que compõem um formulário. Então, mãos à obra:</p>
<h3>Elementos SELECT, OPTION e OPTGROUP</h3>
<p>Chamamos de SELECT aquelas caixinhas de seleção, onde ao pressionar uma seta para baixo, visualizamos uma lista de opções, dentre as quais escolheremos apenas uma. Para criar uma caixa de seleção, basta utilizar as tags &lt;select&gt;&lt;/select&gt;. Uma vez criada a caixa de seleção, utilizaremos o elemento OPTION para criar as opções a serem selecionadas. Cada opção será marcada pelas tags &lt;option&gt;&lt;/optiont&gt;. Veja o exemplo abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;select&gt;
&lt;option&gt;HTML &amp; XHTML&lt;/option&gt;
&lt;option&gt;CSS&lt;/option&gt;
&lt;option&gt;JavaScript&lt;/option&gt;
&lt;option&gt;PHP&lt;/option&gt;
&lt;/select&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<select>
<option>HTML &#038; XHTML</option><br />
<option>CSS</option><br />
<option>JavaScript</option><br />
<option>PHP</option><br />
</select>
</form>
<p>Em caixas de seleção extensas, onde o usuário terá uma lista enorme de opções para escolha, pode ser interessante agrupar as opções que tenham relações entre si. Para criar grupos de opções, utilizaremos o elemento OPTGROUP. Veja como fica o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;select&gt;
&lt;optgroup label=&quot;Camada Visual&quot;&gt;
    &lt;option&gt;HTML &amp; XHTML&lt;/option&gt;
    &lt;option&gt;CSS&lt;/option&gt;
    &lt;option&gt;JavaScript&lt;/option&gt;
&lt;/optgroup&gt;
&lt;optgroup label=&quot;Programação&quot;&gt;
    &lt;option&gt;PHP&lt;/option&gt;
    &lt;option&gt;Phyton&lt;/option&gt;
    &lt;option&gt;Ruby&lt;/option&gt;
&lt;/optgroup&gt;
&lt;optgroup label=&quot;Banco de Dados&quot;&gt;
    &lt;option&gt;Modelagem de Dados&lt;/option&gt;
    &lt;option&gt;Linguagem SQL&lt;/option&gt;
    &lt;option&gt;MySQL Server&lt;/option&gt;
&lt;/optgroup&gt;
&lt;/select&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<select>
<optgroup label="Camada Visual"><br />
    <option>HTML &#038; XHTML</option><br />
    <option>CSS</option><br />
    <option>JavaScript</option><br />
</optgroup><br />
<optgroup label="Programação"><br />
    <option>PHP</option><br />
    <option>Phyton</option><br />
    <option>Ruby</option><br />
</optgroup><br />
<optgroup label="Banco de Dados"><br />
    <option>Modelagem de Dados</option><br />
    <option>Linguagem SQL</option><br />
    <option>MySQL Server</option><br />
</optgroup><br />
</select>
</form>
<h3>Elemento TEXTAREA</h3>
<p>Sabemos como criar caixas de texto com uma única linha mas, não temos idéia de como permitir ao usuário digitar uma mensagem em várias linhas. Para criar esse tipo de caixa de texto, usaremos o elemento TEXTAREA. Veja o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;textarea rows=&quot;7&quot; cols=&quot;40&quot;&gt;&lt;/textarea&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<textarea rows="7" cols="40"></textarea><br />
</form>
<p>Os atributos ROWS e COLS definem o tamanho do TEXTAREA: ROWS fica responsável pela quantidade de linhas (altura); COLS define a quantidade de colunas (largura) da caixa de texto.</p>
<h3>Elemento BUTTON</h3>
<p>Podemos criar botões para nossos formulários, com muito mais liberdade do que o elemento INPUT. Com o uso do elemento BUTTON, podemos inserir conteúdo dentro de nossos botões: imagens, flash, texto etc. Veja o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;text&quot; /&gt; 
&lt;button type=&quot;submit&quot;&gt;Enviar&lt;/button&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<input type="text" />
<button type="submit">Enviar</button><br />
</form>
<p>Usamos o atributo TYPE para definir o tipo do botão, possuímos três valores distintos para esse atributo: SUBMIT – cria um botão para envio de formulário; RESET – cria um botão para limpar todos os valores de um formulário; BUTTON – cria um botão associado a um evento do JavaScript, que normalmente inicia uma função do sistema (Ex: botões para inserção, alteração e exclusão de itens). Dentro das tags &lt;button&gt;&lt;/button&gt; podemos inserir qualquer tipo de conteúdo: imagens, flash, texto etc. Isso nos dá uma grande vantagem sobre o elemento INPUT, que é um elemento vazio.</p>
<h3>Elemento LABEL</h3>
<p>Com o que vimos até agora, podemos criar nossos formulários web. Já conhecemos o elemento INPUT e seus tipos, SELECT, TEXTAREA e BUTTON. Não construímos um formulário apenas enfileirando elementos, é preciso que cada campo possua um texto indicando como  devemos preenchê-lo. Vamos montar um pequeno formulário de cadastro:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
Nome: &lt;input type=&quot;text&quot; /&gt;&lt;br /&gt;
Email: &lt;input type=&quot;text&quot; /&gt;&lt;br /&gt;
Sexo: &lt;input type=&quot;radio&quot; name=&quot;sexo&quot; /&gt;MASC 
&lt;input type=&quot;radio&quot; name=&quot;sexo&quot; /&gt;FEM&lt;br /&gt;
Deseja receber nossa newsletter: &lt;input type=&quot;checkbox&quot; /&gt;&lt;br /&gt;
Como nos conheceu: &lt;select&gt;
   &lt;option&gt;Google&lt;/option&gt;
   &lt;option&gt;Indicação de amigo&lt;/option&gt;
   &lt;option&gt;Outros&lt;/option&gt;
&lt;/select&gt;&lt;br /&gt;
Mensagem: &lt;textarea cols=&quot;7&quot; rows=&quot;40&quot;&gt;&lt;/textarea&gt;
&lt;button type=&quot;submit&quot;&gt;Enviar&lt;/button&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
Nome:<br />
<input type="text" />
Email:<br />
<input type="text" />
Sexo:<br />
<input type="radio" name="sexo" />MASC </p>
<input type="radio" name="sexo" />FEM<br />
Deseja receber nossa newsletter:<br />
<input type="checkbox" />
Como nos conheceu:<br />
<select>
   <option>Google</option><br />
   <option>Indicação de amigo</option><br />
   <option>Outros</option><br />
</select>
<p>
Mensagem: <textarea cols="7" rows="40"></textarea><br />
<button type="submit">Enviar</button><br />
</form>
<p>Antes de mais nada: o uso da tag BR não é aconselhável. Diagramação de elementos fica por conta do CSS, como já falamos anteriormente. Feito esse aviso, reflitam por um instante: visualmente, conseguimos associar a legenda NOME ao INPUT TEXT correspondente, mas, quando construímos um site, temos diversos perfis de visitantes e o conteúdo deve ser acessível a todos eles. A tag LABEL associa um elemento de formulário à sua legenda correspondente, essa tag possui um atributo chamado FOR, cujo valor deve ser igual ao valor do atributo ID do elemento referenciado pelo LABEL. Veja como funciona:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;label for=&quot;nome&quot;&gt;Nome:&lt;/label&gt; &lt;input type=&quot;text&quot; id=&quot;&quot; /&gt;&lt;br /&gt;
&lt;label for=&quot;email&quot;&gt;Email:&lt;/label&gt; &lt;input type=&quot;text&quot; id=&quot;&quot; /&gt;&lt;br /&gt;
&lt;label for=&quot;masc&quot;&gt;MASC:&lt;/label&gt; &lt;input type=&quot;radio&quot; name=&quot;masc&quot; /&gt; &lt;label for=&quot;fem&quot;&gt;FEM&lt;/label&gt; 
&lt;input type=&quot;radio&quot; name=&quot;sexo&quot; id=&quot;fem&quot; /&gt;&lt;br /&gt;
&lt;label for=&quot;news&quot;&gt;Deseja receber nossa newsletter:&lt;/label&gt; &lt;input type=&quot;checkbox&quot; /&gt;&lt;br /&gt;
&lt;label for=&quot;como&quot;&gt;Como nos conheceu:&lt;/label&gt; 
&lt;select id=&quot;como&quot;&gt;
   &lt;option&gt;Google&lt;/option&gt;
   &lt;option&gt;Indicação de amigo&lt;/option&gt;
   &lt;option&gt;Outros&lt;/option&gt;
&lt;/select&gt;&lt;br /&gt;
&lt;label for=&quot;msg&quot;&gt;Mensagem:&lt;/label&gt; &lt;textarea cols=&quot;7&quot; rows=&quot;40&quot; id=&quot;msg&quot;&gt;&lt;/textarea&gt;
&lt;button type=&quot;submit&quot;&gt;Enviar&lt;/button&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<label for="nome">Nome:</label><br />
<input type="text" id="" />
<label for="email">Email:</label><br />
<input type="text" id="" />
<label for="masc">MASC:</label><br />
<input type="radio" name="masc" /> <label for="fem">FEM</label> </p>
<input type="radio" name="sexo" id="fem" />
<label for="news">Deseja receber nossa newsletter:</label><br />
<input type="checkbox" />
<label for="como">Como nos conheceu:</label> </p>
<select id="como">
   <option>Google</option><br />
   <option>Indicação de amigo</option><br />
   <option>Outros</option><br />
</select>
<p>
<label for="msg">Mensagem:</label> <textarea cols="7" rows="40" id="msg"></textarea><br />
<button type="submit">Enviar</button><br />
</form>
<p>Bom pessoal, por hoje é só! No próximo tutorial continuamos a falar sobre formulários web. Até lá.</p>
<p>Abraços,<br />
Diego.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-xii-%e2%80%93-formularios-web-elementos-de-um-formulario/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parte XI – Formulários Web: Introdução e primeiros elementos</title>
		<link>http://www.projetistadigital.com/2009/07/parte-xi-%e2%80%93-formularios-web-introducao-e-primeiros-elementos/</link>
		<comments>http://www.projetistadigital.com/2009/07/parte-xi-%e2%80%93-formularios-web-introducao-e-primeiros-elementos/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 08:00:08 +0000</pubDate>
		<dc:creator>Diego Marques</dc:creator>
				<category><![CDATA[WebStandards (Padrões Web)]]></category>
		<category><![CDATA[XHTML & HTML]]></category>
		<category><![CDATA[campo upload de arquivo]]></category>
		<category><![CDATA[campos de senha]]></category>
		<category><![CDATA[curso online de html]]></category>
		<category><![CDATA[form input]]></category>
		<category><![CDATA[formulário web]]></category>
		<category><![CDATA[formulários html]]></category>
		<category><![CDATA[HTML & XHTML]]></category>
		<category><![CDATA[html para iniciantes]]></category>
		<category><![CDATA[input checkbox]]></category>
		<category><![CDATA[input file]]></category>
		<category><![CDATA[input hidden]]></category>
		<category><![CDATA[input password]]></category>
		<category><![CDATA[input radio]]></category>
		<category><![CDATA[input reset]]></category>
		<category><![CDATA[input submit]]></category>
		<category><![CDATA[input text]]></category>
		<category><![CDATA[introdução ao html]]></category>
		<category><![CDATA[tag form]]></category>
		<category><![CDATA[tags html head body]]></category>
		<category><![CDATA[tutorial básico html]]></category>
		<category><![CDATA[tutorial iniciante html]]></category>

		<guid isPermaLink="false">http://www.projetistadigital.com/?p=165</guid>
		<description><![CDATA[Olá Pessoal,
Hoje invadimos o fantástico mundo dos formulários web. Com o uso de formulários podemos criar mecanismos de interação do usuário com o site, desde caixas de busca até complexas fichas de cadastro e compra de produtos. Usamos formulários o tempo inteiro: para fazer login, buscas, cadastros, compras e enviar mensagens via fale conosco. Quando [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Hoje invadimos o fantástico mundo dos formulários web. Com o uso de formulários podemos criar mecanismos de interação do usuário com o site, desde caixas de busca até complexas fichas de cadastro e compra de produtos. Usamos formulários o tempo inteiro: para fazer login, buscas, cadastros, compras e enviar mensagens via fale conosco. Quando enviamos emails ou scraps no Orkut, pesquisamos no Google, participamos de fóruns e chats, em todos esses momentos fazemos uso de formulários web. Portanto, fiquem de olhos abertos e estudem com atenção, porque o assunto é MUITO IMPORTANTE.</p>
<h3>Características Gerais</h3>
<p>Veja o formulário abaixo:</p>
<form action="" method="post">
<label for="busca">O que você procura?<br />
<input type="text" name="busca"  id="busca" /></label><br />
<button type="button">BUSCAR</button><br />
</form>
<p>Podemos perceber que esse formulário é composto de duas partes: uma caixa de texto e um botão. Todo formulário é composto por elementos ou controles, e o usuário interagirá com esses controles seja digitando dados, subindo arquivos, escolhendo opções etc. A primeira coisa que vocês precisam aprender: todo formulário é marcado pelas tags &lt;form&gt;&lt;/form&gt;, e dentro dessas tags são inseridos os controles do formulário. A tag &lt;form&gt; exige alguns atributos essenciais para o seu bom funcionamento:</p>
<ul>
<li><strong>ACTION:</strong> Declaramos a página de destino do formulário, ou seja o documento que receberá todos os dados inseridos pelo usuário. Essa página possuirá algum script, que verificará a consistência dos dados inseridos, e por fim enviará o formulário para seu destino (banco de dados, email etc.);</li>
<li><strong>METHOD:</strong> Define a forma como enviaremos o formulário, ou seja como os dados serão transmitidos. Admite dois valores GET e POST.</li>
</ul>
<h3>Qual é a diferença entre GET e POST?</h3>
<p>No método GET, enviamos os dados do formulário como parte da URL declarada no atributo ACTION. Imaginem um formulário com um campo apenas: <strong>texto_busca</strong>.  Declaramos o atributo ACTION com o valor “processa_form.php” (essa página receberá os dados do formulário, verificará se está tudo ok e executará uma ação). Quando o usuário clicar no botão de disparo do formulário, o mesmo será enviado para a página declarada na ACTION, e o valor digitado dentro da caixa de texto fará parte da URL. Ficará assim: processa_form.php?texto_busca=valor digitado pelo usuário.</p>
<p>Quando você acessa o site do Google, na verdade, está pedindo uma permissão ao servidor do site. Seu navegador faz uma requisição ao servidor, pedindo acesso, o servidor decide se você pode ou não ver o site. Em linhas gerais, a coisa funciona mais ou menos assim. No método POST, os dados do formulário são enviados em anexo à essa requisição ao servidor. Tais dados são enviados de forma oculta, podendo ser criptografados e tratados por outros mecanismos de segurança.</p>
<p>Ok, a diferença entre um e outro todos já sabem, mas qual deles devemos usar? Existem uma série de fatores relacionados ao trabalho do programador, o que não é do nosso escopo. Simplificando o problema: usamos GET para formulários que exijam rapidez e poucos requisitos de segurança, tais como formulários de busca; e para todo o resto (login, cadastro, fale conosco, compras online etc.), usamos POST.</p>
<h3>Elementos de um formulário: INPUT</h3>
<p>Vamos aprender a escrever nossos formulários web, e conhecer seus principais elementos.</p>
<h4>Caixa de texto simples – input text</h4>
<p>Quando fazemos uma busca no Google, digitamos algo naquela caixa de texto e clicamos no botão “buscar”, e aí acessamos a página de resultados. Simples assim, né? Pois então, aquela caixa de texto é obtida pela tag HTML &lt;input type=&#8221;text&#8221; /&gt;. A tag &lt;input /&gt; cria um campo de formulário para entrada de dados, com o atributo TYPE podemos criar diferentes tipos de campos, e a caixa de texto simples é um deles. Veja como ficaria o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;text&quot; /&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<input type="text" />
</form>
<p>Reparem que todos os elementos de um formulário ficam dentro das tags &lt;form&gt;&lt;/form&gt;. Não podemos usar nenhum controle, fora dessas tags.</p>
<h4>Checkbox – input checkbox</h4>
<p>Checkbox são aquelas caixas de seleção, onde marcamos ou desmarcamos uma opção. São campos de entrada de dados, onde o usuário assinala os campos que deseja responder com “SIM”, e deixa em branco aqueles que deseja marcar com “NÃO”. Veja o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;checkbox&quot; /&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<input type="checkbox" />
</form>
<h4>Radio buttons – input radio</h4>
<p>O controle input radio permite ao usuário escolher apenas uma, dentre uma lista de opções. Ao contrário do controle input checkbox, onde o usuário pode escolher vários itens dentro de uma lista. Veja o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;radio&quot; name=&quot;form&quot; /&gt;
&lt;input type=&quot;radio&quot; name=&quot;form&quot; /&gt;
&lt;input type=&quot;radio&quot; name=&quot;form&quot; /&gt;
&lt;input type=&quot;radio&quot; name=&quot;form&quot; /&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<input type="radio" name="form" /></p>
<input type="radio" name="form" /></p>
<input type="radio" name="form" /></p>
<input type="radio" name="form" />
</form>
<p>* Estudaremos mais adiante o atributo NAME.</p>
<h4>Campo oculto – input hidden</h4>
<p>Podemos armazenar informações sobre o usuário em campos ocultos de um formulário. Esses campos não serão renderizados pelo navegador, e são de grande importância para qualquer sistema dinâmico (que utiliza alguma linguagem de programação). Veja o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;hidden&quot; value=&quot;valor do campo oculto&quot; /&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p>* Estudaremos mais adiante o atributo VALUE.</p>
<h4>Caixa de texto para senhas – input password</h4>
<p>Já perceberam que quando vamos digitar uma senha em qualquer site, ao invés de aparecer o texto digitado, surgem pequenos marcadores (normalmente bolinhas escuras e preenchidas)? Pois é, não seria nada legal digitar nossas senhas, para que qualquer um possa ver na tela do nosso monitor. Podemos criar campos de formulários específicos para digitação de senhas. Veja o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;password&quot; /&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<input type="password" />
</form>
<h4>Campo para upload de arquivos – input file</h4>
<p>Em muitas situações precisamos anexar arquivos aos nossos formulários (uma foto, um arquivo de texto, uma planilha etc.). Nesses casos, sempre há um caixa de texto com um botão embutido, e ao clicar nele podemos escolher um arquivo qualquer em nosso computador, para fazer um upload. Para criar esse campo, basta seguir o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;file&quot; /&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<input type="file" />
</form>
<h4>Botões – input submit e reset</h4>
<p>Podemos também criar botões para enviar formulários, ou simplesmente apagar seus dados. Veja o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;submit&quot; value=&quot;ENVIAR&quot; /&gt; 
&lt;input type=&quot;reset&quot; value=&quot;LIMPAR&quot; /&gt;
&lt;/form&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<form action="" method="post">
<input type="submit" value="ENVIAR" />
<input type="reset" value="LIMPAR" />
</form>
<p>Bom pessoal, por hoje finalizamos! No próximo tutorial vamos terminar a lista de elementos de um formulário. Bom estudo e até lá!</p>
<p>Abraços,<br />
Diego.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projetistadigital.com/2009/07/parte-xi-%e2%80%93-formularios-web-introducao-e-primeiros-elementos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Minicurso de HTML: Parte X – Tabelas Complexas e Acessíveis</title>
		<link>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-x-%e2%80%93-tabelas-complexas-e-acessiveis/</link>
		<comments>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-x-%e2%80%93-tabelas-complexas-e-acessiveis/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 08:00:20 +0000</pubDate>
		<dc:creator>Diego Marques</dc:creator>
				<category><![CDATA[WebStandards (Padrões Web)]]></category>
		<category><![CDATA[XHTML & HTML]]></category>
		<category><![CDATA[acessibilidade em tabelas]]></category>
		<category><![CDATA[cabeçalhos tabela]]></category>
		<category><![CDATA[como fazer sites]]></category>
		<category><![CDATA[como usar tabelas w3c]]></category>
		<category><![CDATA[curso online de html]]></category>
		<category><![CDATA[header tabelas]]></category>
		<category><![CDATA[header table]]></category>
		<category><![CDATA[HTML & XHTML]]></category>
		<category><![CDATA[html para iniciantes]]></category>
		<category><![CDATA[id]]></category>
		<category><![CDATA[introdução ao html]]></category>
		<category><![CDATA[legenda em colunas]]></category>
		<category><![CDATA[legenda em tabelas]]></category>
		<category><![CDATA[quando usar tabelas]]></category>
		<category><![CDATA[tabelas acessíveis]]></category>
		<category><![CDATA[tabelas html]]></category>
		<category><![CDATA[tabelas webstandards]]></category>
		<category><![CDATA[tabelas x tableless]]></category>
		<category><![CDATA[th header]]></category>
		<category><![CDATA[tutorial básico html]]></category>
		<category><![CDATA[tutorial iniciante html]]></category>

		<guid isPermaLink="false">http://www.projetistadigital.com/?p=162</guid>
		<description><![CDATA[Olá Pessoal,
Para finalizar o assunto, vamos falar hoje sobre tabelas complexas. Até agora criamos tabelas simples, com apenas um cabeçalho, corpo e rodapé; porém, o XHTML nos fornece recursos para criar tabelas complexas, com várias cabeçalhos, rodapés e corpos. E nesse tipo de tabelas, temos mais uma série de tags e atributos para facilitar nosso [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Para finalizar o assunto, vamos falar hoje sobre tabelas complexas. Até agora criamos tabelas simples, com apenas um cabeçalho, corpo e rodapé; porém, o XHTML nos fornece recursos para criar tabelas complexas, com várias cabeçalhos, rodapés e corpos. E nesse tipo de tabelas, temos mais uma série de tags e atributos para facilitar nosso trabalho, e incrementar a acessibilidade das mesmas. Arregacem as mangas e mãos à obra!</p>
<p>Reparem na tabela abaixo:</p>
<table border="2" cellpadding="4" cellspacing="4" summary="Tabela de notas dos alunos do 3º ano">
<caption>Tabela de Alunos</caption>
<thead>
<tr>
<th colspan="5">Turma A</th>
<th colspan="5">Turma B</th>
</tr>
<tr>
<th>Aluno</th>
<th>1º Bimestre</th>
<th>2º Bimestre</th>
<th>3º Bimestre</th>
<th>4º Bimestre</th>
<th>Aluno</th>
<th>1º Bimestre</th>
<th>2º Bimestre</th>
<th>3º Bimestre</th>
<th>4º Bimestre</th>
</tr>
</thead>
<tbody>
<tr>
<th id="aprovados" colspan="10">Aprovados</th>
</tr>
<tr>
<td>João</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>Maria</td>
<td>6</td>
<td>6</td>
<td>8</td>
<td>7</td>
</tr>
<tr>
<td>José</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
<td>Joaquim</td>
<td>4</td>
<td>7</td>
<td>6</td>
<td>5</td>
</tr>
<tr>
<td>Maria</td>
<td>6</td>
<td>6</td>
<td>8</td>
<td>7</td>
<td>João</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
</tr>
<tr>
<td>Joaquim</td>
<td>4</td>
<td>7</td>
<td>6</td>
<td>5</td>
<td>José</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<th id="reprovados" colspan="10">Reprovados</th>
</tr>
<tr>
<td>Manoel</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>Joana</td>
<td>6</td>
<td>6</td>
<td>8</td>
<td>7</td>
</tr>
<tr>
<td>Maricota</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
<td>Juvenal</td>
<td>4</td>
<td>7</td>
<td>6</td>
<td>5</td>
</tr>
<tr>
<td>Joana</td>
<td>6</td>
<td>6</td>
<td>8</td>
<td>7</td>
<td>Manoel</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
</tr>
<tr>
<td>Juvenal</td>
<td>4</td>
<td>7</td>
<td>6</td>
<td>5</td>
<td>Maricota</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
</tbody>
</table>
<p>Parece complicado? Um pouquinho mas&#8230; todos vocês já viram o suficiente para criar uma tabela dessas. Para prosseguir com esse tutorial, vocês terão que montá-la em seus próprios computadores. Sem reclamações, podem começar! Só avancem para o próximo parágrafo depois de terminar essa tabela, simbora!</p>
<p>Quero que vocês olhem para o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table border=&quot;2&quot; cellpadding=&quot;4&quot; cellspacing=&quot;4&quot; summary=&quot;Tabela de notas dos alunos do 3º ano&quot;&gt;
&lt;caption&gt;Tabela de Alunos&lt;/caption&gt;
&nbsp;
&lt;thead&gt;
&lt;tr&gt;
&lt;th colspan=&quot;5&quot;&gt;Turma A&lt;/th&gt;
&lt;th colspan=&quot;5&quot;&gt;Turma B&lt;/th&gt;
&lt;/tr&gt;
&nbsp;
&lt;tr&gt;
&lt;th&gt;Aluno&lt;/th&gt;
&lt;th&gt;1º Bimestre&lt;/th&gt;
&lt;th&gt;2º Bimestre&lt;/th&gt;
&lt;th&gt;3º Bimestre&lt;/th&gt;
&lt;th&gt;4º Bimestre&lt;/th&gt;
&lt;th&gt;Aluno&lt;/th&gt;
&lt;th&gt;1º Bimestre&lt;/th&gt;
&lt;th&gt;2º Bimestre&lt;/th&gt;
&lt;th&gt;3º Bimestre&lt;/th&gt;
&lt;th&gt;4º Bimestre&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&nbsp;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th id=&quot;aprovados&quot; colspan=&quot;10&quot;&gt;Aprovados&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;João&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Maria&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;José&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Joaquim&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maria&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;João&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Joaquim&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;José&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;/tr&gt;
&nbsp;
&lt;tr&gt;
&lt;th id=&quot;reprovados&quot; colspan=&quot;10&quot;&gt;Reprovados&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manoel&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Joana&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maricota&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Juvenal&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Joana&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Manoel&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Juvenal&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Maricota&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p>Como já dito anteriormente, um leitor de tela irá apresentar os dados de uma tabela, de forma linear, ou seja, coluna por coluna, linha por linha. O uso de legendas e tags TH ajuda a contornar o problema em tabelas simples, com um único cabeçalho, o que não é o caso do exemplo acima. Para incrementar a acessibilidade em tabelas complexas, faremos uso dos atributos ID e HEADER. O atributo ID estabelece um identificador para um elemento HTML, distinguindo-o de qualquer outro elemento da página, ou seja, um ID aplicado em uma tag, não pode ser utilizado em nenhuma outra tag dentro da mesma página. Eu costumo brincar com meus alunos que o ID é o CPF de um elemento: podem ter vários com o mesmo nome, mas com aquele CPF só tem um!</p>
<p>Uma vez criado um ID para cada coluna cabeçalho da tabela, podemos referenciá-los nas demais células de conteúdo, estabelecendo uma conexão entre o cabeçalho e células de uma coluna. Para isso basta declarar o atributo HEADER em cada uma das células, referenciando os ID&#8217;s dos cabeçalhos aos quais essas células estejam relacionadas. Parece complicado, mas veja como fica a marcação do exemplo acima, com os atributos ID e HEADER:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table border=&quot;2&quot; cellpadding=&quot;4&quot; cellspacing=&quot;4&quot; summary=&quot;Tabela de notas dos alunos do 3º ano&quot;&gt;
&lt;caption&gt;Tabela de Alunos&lt;/caption&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th id=&quot;turma-A&quot; colspan=&quot;5&quot;&gt;Turma A&lt;/th&gt;
&lt;th id=&quot;turma-B&quot; colspan=&quot;5&quot;&gt;Turma B&lt;/th&gt;
&lt;/tr&gt;
&nbsp;
&lt;tr&gt;
&lt;th id=&quot;turma-A-nome&quot;&gt;Aluno&lt;/th&gt;
&lt;th id=&quot;turma-A-bim-1&quot;&gt;1º Bimestre&lt;/th&gt;
&lt;th id=&quot;turma-A-bim-2&quot;&gt;2º Bimestre&lt;/th&gt;
&lt;th id=&quot;turma-A-bim-3&quot;&gt;3º Bimestre&lt;/th&gt;
&lt;th id=&quot;turma-A-bim-4&quot;&gt;4º Bimestre&lt;/th&gt;
&lt;th id=&quot;turma-B-nome&quot;&gt;Aluno&lt;/th&gt;
&lt;th id=&quot;turma-B-bim-1&quot;&gt;1º Bimestre&lt;/th&gt;
&lt;th id=&quot;turma-B-bim-2&quot;&gt;2º Bimestre&lt;/th&gt;
&lt;th id=&quot;turma-B-bim-3&quot;&gt;3º Bimestre&lt;/th&gt;
&lt;th id=&quot;turma-B-bim-4&quot;&gt;4º Bimestre&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&nbsp;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th headers=&quot;&quot; id=&quot;aprovados&quot; colspan=&quot;10&quot;&gt;Aprovados&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td headers=&quot;turma-A turma-A-nome aprovados&quot;&gt;João&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-1 aprovados&quot;&gt;5&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-2 aprovados&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-3 aprovados&quot;&gt;7&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-4 aprovados&quot;&gt;8&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-nome&quot;&gt;Maria&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-1 aprovados&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-2 aprovados&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-3 aprovados&quot;&gt;8&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-4 aprovados&quot;&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td headers=&quot;turma-A turma-A-nome aprovados&quot;&gt;José&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-1&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-2&quot;&gt;7&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-3&quot;&gt;8&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-4&quot;&gt;9&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-nome&quot;&gt;Joaquim&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-1 aprovados&quot;&gt;4&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-2 aprovados&quot;&gt;7&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-3 aprovados&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-4 aprovados&quot;&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td headers=&quot;turma-A turma-A-nome aprovados&quot;&gt;Maria&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-1&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-2&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-3&quot;&gt;8&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-4&quot;&gt;7&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-nome&quot;&gt;João&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-1 aprovados&quot;&gt;5&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-2 aprovados&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-3 aprovados&quot;&gt;7&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-4 aprovados&quot;&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td headers=&quot;turma-A turma-A-nome aprovados&quot;&gt;Joaquim&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-1&quot;&gt;4&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-2&quot;&gt;7&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-3&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-4&quot;&gt;5&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-nome&quot;&gt;José&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-1 aprovados&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-2 aprovados&quot;&gt;7&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-3 aprovados&quot;&gt;8&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-4 aprovados&quot;&gt;9&lt;/td&gt;
&lt;/tr&gt;
&nbsp;
&lt;tr&gt;
&lt;th headers=&quot;&quot; id=&quot;reprovados&quot; colspan=&quot;10&quot;&gt;Reprovados&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td headers=&quot;turma-A turma-A-nome reprovados&quot;&gt;Manoel&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-1 reprovados&quot;&gt;4&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-2 reprovados&quot;&gt;3&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-3 reprovados&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-4 reprovados&quot;&gt;3&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-nome reprovados&quot;&gt;Joana&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-1 reprovados&quot;&gt;4&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-2 reprovados&quot;&gt;4&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-3 reprovados&quot;&gt;4&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-4 reprovados&quot;&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td headers=&quot;turma-A turma-A-nome reprovados&quot;&gt;Maricota&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-1 reprovados&quot;&gt;2&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-2 reprovados&quot;&gt;4&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-3 reprovados&quot;&gt;5&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-4 reprovados&quot;&gt;5&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-nome reprovados&quot;&gt;Juvenal&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-1 reprovados&quot;&gt;3&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-2 reprovados&quot;&gt;3&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-3 reprovados&quot;&gt;4&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-4 reprovados&quot;&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td headers=&quot;turma-A turma-A-nome reprovados&quot;&gt;Joana&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-1 reprovados&quot;&gt;6&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-2 reprovados&quot;&gt;3&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-3 reprovados&quot;&gt;3&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-4 reprovados&quot;&gt;2&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-nome reprovados&quot;&gt;Manoel&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-1 reprovados&quot;&gt;4&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-2 reprovados&quot;&gt;4&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-3 reprovados&quot;&gt;5&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-4 reprovados&quot;&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td headers=&quot;turma-A turma-A-nome reprovados&quot;&gt;Juvenal&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-1 reprovados&quot;&gt;3&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-2 reprovados&quot;&gt;3&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-3 reprovados&quot;&gt;5&lt;/td&gt;
&lt;td headers=&quot;turma-A turma-A-bim-4 reprovados&quot;&gt;5&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-nome reprovados&quot;&gt;Maricota&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-1 reprovados&quot;&gt;4&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-2 reprovados&quot;&gt;3&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-3 reprovados&quot;&gt;2&lt;/td&gt;
&lt;td headers=&quot;turma-B turma-B-bim-4 reprovados&quot;&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p>Ok! Escrevemos pra caramba, né? Vamos a algumas ponderações:</p>
<ol>
<li>É necessário levar em consideração se o uso dos HEADERS não deixará a página pesada, dificultando o carregamento da mesma;</li>
<li>Como podemos ver, os HEADERS são uma lista com todos os ID&#8217;s relacionados à célula;</li>
<li>Devemos usar nomes simples para os ID&#8217;s, evitando nomes compridos e de difícil indexação;</li>
<li>É preciso ter todo cuidado ao escrever os HEADERS, sob o risco de prejudicar a leitura correta dos dados da tabela;</li>
<li>É preciso levar a escrita dos HEADERS em consideração, em sistemas dinâmicos, onde as tabelas são alimentadas via banco de dados.</li>
</ol>
<p>Bem pessoal, por hoje é só. Falamos bastante sobre tabelas, e o assunto não acaba aqui. Continuem estudando e praticando. No próximo tutorial falaremos sobre FORMULÁRIOS, até lá!</p>
<p>Abraços,<br />
Diego.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-x-%e2%80%93-tabelas-complexas-e-acessiveis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minicurso de HTML: Parte IX – Tabelas Acessíveis</title>
		<link>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-ix-%e2%80%93-tabelas-acessiveis/</link>
		<comments>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-ix-%e2%80%93-tabelas-acessiveis/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 08:00:34 +0000</pubDate>
		<dc:creator>Diego Marques</dc:creator>
				<category><![CDATA[WebStandards (Padrões Web)]]></category>
		<category><![CDATA[XHTML & HTML]]></category>
		<category><![CDATA[abbr]]></category>
		<category><![CDATA[acessibilidade em tabelas]]></category>
		<category><![CDATA[cabeçalhos tabela]]></category>
		<category><![CDATA[caption]]></category>
		<category><![CDATA[como fazer sites]]></category>
		<category><![CDATA[como usar tabelas w3c]]></category>
		<category><![CDATA[corpo tabela]]></category>
		<category><![CDATA[curso online de html]]></category>
		<category><![CDATA[HTML & XHTML]]></category>
		<category><![CDATA[html para iniciantes]]></category>
		<category><![CDATA[introdução ao html]]></category>
		<category><![CDATA[legenda em colunas]]></category>
		<category><![CDATA[legenda em tabelas]]></category>
		<category><![CDATA[o que é tbody]]></category>
		<category><![CDATA[o que é tfoot]]></category>
		<category><![CDATA[o que é thead]]></category>
		<category><![CDATA[quando usar tabelas]]></category>
		<category><![CDATA[rodapé tabela]]></category>
		<category><![CDATA[summary table]]></category>
		<category><![CDATA[tabelas acessíveis]]></category>
		<category><![CDATA[tabelas html]]></category>
		<category><![CDATA[tabelas webstandards]]></category>
		<category><![CDATA[tabelas x tableless]]></category>
		<category><![CDATA[tbody]]></category>
		<category><![CDATA[tfoot]]></category>
		<category><![CDATA[th]]></category>
		<category><![CDATA[thead]]></category>
		<category><![CDATA[tutorial básico html]]></category>
		<category><![CDATA[tutorial iniciante html]]></category>

		<guid isPermaLink="false">http://www.projetistadigital.com/?p=159</guid>
		<description><![CDATA[Olá Pessoal,
Continuando com o último post, falaremos hoje sobre tabelas acessíveis. Já falei isso por aqui: quando construímos um site, visamos atingir todos os públicos e perfis de usuário: usuários sem e com necessidades especiais, acessando a partir de dispositivos móveis, computadores comuns, leitores de tela, robôs de busca e qualquer outro software; devemos oferecer [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Continuando com o último post, falaremos hoje sobre tabelas acessíveis. Já falei isso por aqui: quando construímos um site, visamos atingir todos os públicos e perfis de usuário: usuários sem e com necessidades especiais, acessando a partir de dispositivos móveis, computadores comuns, leitores de tela, robôs de busca e qualquer outro software; devemos oferecer condições para que todos eles possam acessar ao conteúdo da página, cada um ao seu jeito. Criar uma bela página, visualmente impecável, pode impedir o acesso de todos os demais usuários do seu site: portadores de deficiências, robôs de busca etc. Com certeza isso não é um bom negócio, e seu cliente vai ficar meio P&#8230; da vida, quando descobrir o quanto ele está perdendo&#8230;</p>
<table border="2" cellpadding="4" cellspacing="4">
<tr>
<td>Código</td>
<td>Produto</td>
<td>Preço</td>
</tr>
<tr>
<td>001</td>
<td>Notebook Acer</td>
<td>R$1.800,00</td>
</tr>
<tr>
<td>002</td>
<td>Notebook Dell</td>
<td>R$2.200,00</td>
</tr>
<tr>
<td>003</td>
<td>Notebook Sony Vaio</td>
<td>R$3.800,00</td>
</tr>
</table>
<p>Visualmente essa tabela é legível, mas qualquer outro usuário impossibilitado de enxergá-la, seria obrigado a ler seu código (softwares, por exemplo) de forma seqüencial. A leitura dessa tabela ficaria assim: Código, Produto, Preço, 001, Notebook Acer, R$1.800,00, 002&#8230; Em resumo, uma tortura! Com algumas poucas tags e atributos podemos criar tabelas acessíveis para qualquer usuário: desde um cego, até o robôzinho do Google&#8230; Parece um bom negócio? É um ótimo negócio.</p>
<h3>Criando tabelas com cabeçalhos</h3>
<p>O primeiro passo rumo ao incremento da acessibilidade em nossas tabelas, é a utilização de cabeçalhos, permitindo que um leitor de telas, por exemplo, associe um cabeçalho a uma célula, ou seja, indique a qual coluna aquele conteúdo pertence. A primeira medida é trocar as tags &lt;td&gt;&lt;/td&gt;, da primeira linha da tabela, onde colocaremos os nomes das colunas (os cabeçalhos), por tags próprias para formar cabeçalhos de colunas: &lt;th&gt;&lt;/th&gt;. Outra tag importante é a CAPTION, onde eu posso criar um título que descreva a minha tabela. O título aparecerá centralizado logo acima da tabela, o que pode ser modificado via CSS. A tag TABLE possui um atributo chamado SUMMARY, onde eu posso colocar um texto descrevendo a tabela. Esse texto não será renderizado no navegador do usuário, mas é de grande ajuda para outros softwares que leiam nossa página. Veja como ficará nossa tabela, com o incremento das novas tags e atributos:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table border=&quot;2&quot; cellpadding=&quot;4&quot; cellspacing=&quot;4&quot; summary=&quot;Tabela dos produtos de informática da loja X&quot;&gt;
&lt;caption&gt;Tabela de Produtos - Informática&lt;/caption&gt;
&lt;tr&gt;
&lt;th&gt;Código&lt;/th&gt;
&lt;th&gt;Produto&lt;/th&gt;
&lt;th&gt;Preço&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;001&lt;/td&gt;
&lt;td&gt;Notebook Acer&lt;/td&gt;
&lt;td&gt;R$1.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;002&lt;/td&gt;
&lt;td&gt;Notebook Dell&lt;/td&gt;
&lt;td&gt;R$2.200,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;003&lt;/td&gt;
&lt;td&gt;Notebook Sony Vaio&lt;/td&gt;
&lt;td&gt;R$3.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<table border="2" cellpadding="4" cellspacing="4" summary="Tabela dos produtos de informática da loja X">
<caption>Tabela de Produtos &#8211; Informática</caption>
<tr>
<th>Código</th>
<th>Produto</th>
<th>Preço</th>
</tr>
<tr>
<td>001</td>
<td>Notebook Acer</td>
<td>R$1.800,00</td>
</tr>
<tr>
<td>002</td>
<td>Notebook Dell</td>
<td>R$2.200,00</td>
</tr>
<tr>
<td>003</td>
<td>Notebook Sony Vaio</td>
<td>R$3.800,00</td>
</tr>
</table>
<p>Percebam que a primeira linha da tabela apresentou algumas modificações visuais: o texto está centralizado e em negrito. Em termos de marcação, qualquer dispositivo conseguirá associar o cabeçalho ao conteúdo das células da coluna correspondente. Isso é efeito das tags &lt;th&gt;&lt;/th&gt;. Já o título da tabela, centralizado acima da mesma, é por conta da tag &lt;caption&gt;&lt;/caption&gt;. E o atributo SUMMARY, conforme dito, não aparece na tela, mas tem grande valor para a acessibilidade de nossas tabelas. Acabou? Não&#8230; Podemos fazer bem mais! Veja a tabela abaixo:</p>
<table border="2" cellpadding="4" cellspacing="4" summary="Tabela dos produtos de informática da loja X">
<caption>Tabela de Produtos &#8211; Informática</caption>
<tr>
<th>Código do Produto</th>
<th>Nome do Produto (notebook)</th>
<th>Preço do produto (em R$)</th>
</tr>
<tr>
<td>001</td>
<td>Notebook Acer</td>
<td>R$1.800,00</td>
</tr>
<tr>
<td>002</td>
<td>Notebook Dell</td>
<td>R$2.200,00</td>
</tr>
<tr>
<td>003</td>
<td>Notebook Sony Vaio</td>
<td>R$3.800,00</td>
</tr>
</table>
<p>Ok! Apenas aumentamos os cabeçalhos&#8230; Porém, um leitor de tela irá associar o nome do cabeçalho ao conteúdo da célula. Ficaria assim: Nome do Produto (notebook) – Notebook Acer; Nome do Produto (notebook) – Notebook Dell&#8230; Não precisamos torturar o internauta, basta adicionar uma legenda ao cabeçalho, ou seja, um valor reduzido que não será renderizado no navegador, mas que substituirá o texto do cabeçalho em um leitor de tela. Para isso, basta adicionar o atributo ABBR nas tags &lt;th&gt;&lt;/th&gt;. Veja como fica a nossa tabela, agora:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table border=&quot;2&quot; cellpadding=&quot;4&quot; cellspacing=&quot;4&quot; summary=&quot;Tabela dos produtos de informática da loja X&quot;&gt;
&lt;caption&gt;Tabela de Produtos - Informática&lt;/caption&gt;
&lt;tr&gt;
&lt;th abbr=&quot;código&quot;&gt;Código do Produto&lt;/th&gt;
&lt;th abbr=&quot;nome&quot;&gt;Nome do Produto (notebook)&lt;/th&gt;
&lt;th abbr=&quot;preço&quot;&gt;Preço do produto (em R$)&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;001&lt;/td&gt;
&lt;td&gt;Notebook Acer&lt;/td&gt;
&lt;td&gt;R$1.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;002&lt;/td&gt;
&lt;td&gt;Notebook Dell&lt;/td&gt;
&lt;td&gt;R$2.200,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;003&lt;/td&gt;
&lt;td&gt;Notebook Sony Vaio&lt;/td&gt;
&lt;td&gt;R$3.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<h3>Acessibilidade em tabelas complexas</h3>
<p>Com o que vimos até aqui, podemos construir tabelas com um bom nível de acessibilidade. Porém, em certas ocasiões teremos tabelas com alguns níveis a mais de complexidades: mesclagem de linhas e colunas, divisão por áreas e grupos etc. Em casos assim, precisamos adicionar mais alguns recursos de marcação.</p>
<p>Nossas tabelas podem ser divididas em três áreas: cabeçalho, corpo e rodapé. O cabeçalho já sabemos do que se trata; o rodapé corresponde a última linha da tabela, onde iremos inserir alguma informação complementar; e o corpo corresponderia a todo o conteúdo, ou seja, a tabela propriamente dita. Essas áreas são marcadas pelas tags: &lt;thead&gt;&lt;/thead&gt;, &lt;tbody&gt;&lt;/tbody&gt; e &lt;tfoot&gt;&lt;/tfoot&gt;. A ordem de declaração dessas tags é a seguinte: cabeçalho, rodapé e corpo. Veja como ficaria a marcação de nossa tabela:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table border=&quot;2&quot; cellpadding=&quot;4&quot; cellspacing=&quot;4&quot; summary=&quot;Tabela dos produtos de informática da loja X&quot;&gt;
&lt;caption&gt;Tabela de Produtos - Informática&lt;/caption&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th abbr=&quot;código&quot;&gt;Código do Produto&lt;/th&gt;
&lt;th abbr=&quot;nome&quot;&gt;Nome do Produto (notebook)&lt;/th&gt;
&lt;th abbr=&quot;preço&quot;&gt;Preço do produto (em R$)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&nbsp;
&lt;tfoot&gt;
&lt;tr&gt;
&lt;td colspan=&quot;3&quot;&gt;Produtos com 10% de desconto&lt;/td&gt;
&lt;/tr&gt;
&lt;/tfoot&gt;
&nbsp;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;001&lt;/td&gt;
&lt;td&gt;Notebook Acer&lt;/td&gt;
&lt;td&gt;R$1.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;002&lt;/td&gt;
&lt;td&gt;Notebook Dell&lt;/td&gt;
&lt;td&gt;R$2.200,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;003&lt;/td&gt;
&lt;td&gt;Notebook Sony Vaio&lt;/td&gt;
&lt;td&gt;R$3.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p><strong>Resultado: </strong></p>
<table border="2" cellpadding="4" cellspacing="4" summary="Tabela dos produtos de informática da loja X">
<caption>Tabela de Produtos &#8211; Informática</caption>
<thead>
<tr>
<th abbr="código">Código do Produto</th>
<th abbr="nome">Nome do Produto (notebook)</th>
<th abbr="preço">Preço do produto (em R$)</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="3">Produtos com 10% de desconto</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>001</td>
<td>Notebook Acer</td>
<td>R$1.800,00</td>
</tr>
<tr>
<td>002</td>
<td>Notebook Dell</td>
<td>R$2.200,00</td>
</tr>
<tr>
<td>003</td>
<td>Notebook Sony Vaio</td>
<td>R$3.800,00</td>
</tr>
</tbody>
</table>
<p>O uso de TFOOT não é obrigatório, a menos que a tabela possua um rodapé. Além de produzir uma marcação melhor estruturada, e com isso organizar melhor as nossas tabelas, alguns browsers, quando as tabelas ocupam mais de uma página, manteriam o cabeçalho e rodapé fixo na tela, enquanto apenas o corpo se movimenta. Essas são implementações futuras, que irão melhorar a experiência do internauta, além de ser um grande facilitador para quem acessa nossos sites, a partir de dispositivos móveis (celulares, smartphones etc.). Outra vantagem: se imprimirmos uma tabela extensa, o cabeçalho e rodapé aparecerão no topo e fim, respectivamente, de cada página. Bem profissional, não acham?</p>
<p>Bom, encerramos o assunto tabelas acessíveis! Para fechar o tema, no próximo tutorial, falaremos sobre tabelas complexas. Assunto importante, então estudem com calma e atenção.</p>
<p>Abraços,<br />
Diego.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-ix-%e2%80%93-tabelas-acessiveis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Minicurso de HTML: Parte VIII – Tabelas HTML</title>
		<link>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-viii-%e2%80%93-tabelas-html/</link>
		<comments>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-viii-%e2%80%93-tabelas-html/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 08:00:29 +0000</pubDate>
		<dc:creator>Diego Marques</dc:creator>
				<category><![CDATA[WebStandards (Padrões Web)]]></category>
		<category><![CDATA[XHTML & HTML]]></category>
		<category><![CDATA[colspan]]></category>
		<category><![CDATA[como fazer sites]]></category>
		<category><![CDATA[como usar tabelas w3c]]></category>
		<category><![CDATA[curso online de html]]></category>
		<category><![CDATA[HTML & XHTML]]></category>
		<category><![CDATA[html para iniciantes]]></category>
		<category><![CDATA[introdução ao html]]></category>
		<category><![CDATA[quando usar tabelas]]></category>
		<category><![CDATA[rowspan]]></category>
		<category><![CDATA[tabelas html]]></category>
		<category><![CDATA[tabelas webstandards]]></category>
		<category><![CDATA[tabelas x tableless]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[td]]></category>
		<category><![CDATA[tr]]></category>
		<category><![CDATA[tutorial básico html]]></category>
		<category><![CDATA[tutorial iniciante html]]></category>

		<guid isPermaLink="false">http://www.projetistadigital.com/?p=156</guid>
		<description><![CDATA[Olá Pessoal,
Hoje vamos tratar de um tema importante e controverso. Importante, pois o uso de tabelas é comum em sites. Controverso por existir todo uma discussão histórica, envolvendo o uso indevido de tabelas, gerando certo preconceito em relação ao elemento HTML.
O uso indevido de tabelas na diagramação de sites
Nos tempos negros do desenvolvimento web, quando [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Hoje vamos tratar de um tema importante e controverso. Importante, pois o uso de tabelas é comum em sites. Controverso por existir todo uma discussão histórica, envolvendo o uso indevido de tabelas, gerando certo preconceito em relação ao elemento HTML.</p>
<h3>O uso indevido de tabelas na diagramação de sites</h3>
<p>Nos tempos negros do desenvolvimento web, quando as pessoas desconheciam o <a href="http://www.w3.org" alt="Ir para o site do W3C" target="_blank">W3C</a> e WebStandards, a diagramação de sites era feita com o uso de tabelas. Imaginem uma planilha do Excel (ou qualquer software de planilhas), onde você vá mesclando linhas e colunas, formando as áreas que componham o layout. Os sites de antigamente eram feitos assim&#8230;</p>
<p>Problemas: em HTML, uma tabela tem como finalidade apresentar dados de forma tabular, usar uma tabela para diagramação de páginas, é subverter o uso do elemento; HTML é uma linguagem de marcação, unicamente, e usá-la para diagramação é fazer um péssimo uso da linguagem, além de descumprir as orientações e diretrizes do W3C; o uso de tabelas faz com que toda a diagramação do site fique engessada dentro de cada página, sendo necessário alterar todas as páginas, para realizar uma simples alteração de layout (imagine isso em 10, 100, 1000 páginas&#8230; trabalhoso, não?).</p>
<h3>WebStandards, Tableless etc.</h3>
<p>Com o advento do W3C, a divulgação dos WebStandards (padrões, orientações e diretrizes para desenvolvimento web) e sua ampla aceitação pelos designers e desenvolvedores, fazer um site se tornou uma tarefa bem mais simples. Ao invés de utilizar HTML para marcar, formatar e diagramar conteúdo, dividimos isso em duas camadas: HTML para marcação, e CSS para estilização (formatação / diagramação). Agora, alterar um layout não requer modificar todas as páginas do site, e sim alterar um único arquivo CSS com todas as definições do visual do site. Bem mais fácil, né?</p>
<p>Porém, nesse mundo capitalista tudo é uma questão de marketing, e o nome WebStandards (Padrões Web, na tradução) não é muito chamativo. Para fazer frente ao uso de tabelas, criou-se o termo TABLELESS (do inglês, SEM TABELAS) e aí gerou-se a confusão&#8230; Um site tableless é um site que não tenha uma tabela sequer, mas isso não significa que o site seja standard ou acessível. Um site standard é aquele que atende às recomendações do W3C, e o uso de tabelas para apresentação de dados tabulares, é uma recomendação do W3C. Usar outros elementos HTML, ao invés de TABLE, para criar tabelas é conflitar com os webstandards só para fazer sites tableless&#8230; E convenhamos: o que tem de site sem tabelas, com uma marcação confusa, mais parecendo uma sopa de tags é impressionante&#8230;</p>
<p>Enfim: um site webstandard é aquele que possui uma marcação HTML correta, usa CSS para estilização e atende às demais diretrizes do W3C. Tableless é marketing, e não uma regra&#8230;</p>
<h3>Criando as primeiras tabelas</h3>
<p>Temos que criar uma listagem dos produtos de uma loja qualquer, especificando o código, nome e preço do produto. Isso é, claramente, uma tabela de produtos. Para criar tabelas, usamos a tag TABLE: &lt;table&gt;&lt;/table&gt;.</p>
<p>Uma tabela é constituída de linhas e colunas, a intersecção entre linhas e colunas formam as células. E dentro das células inserimos o conteúdo das tabelas. As linhas de uma tabela são dadas pelas tags &lt;tr&gt;&lt;/tr&gt;, colocadas entre &lt;table&gt;&lt;/table&gt;. O resultado seria: &lt;table&gt;&lt;tr&gt;&lt;/tr&gt;&lt;/table&gt;. Podemos criar quantas linhas forem necessárias em nossas tabelas, e dentro dessas linhas criamos colunas / células com as tags &lt;td&gt;&lt;/td&gt;. Veja como ficaria a nossa tabela:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;Código&lt;/td&gt;
&lt;td&gt;Produto&lt;/td&gt;
&lt;td&gt;Preço&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;001&lt;/td&gt;
&lt;td&gt;Notebook Acer&lt;/td&gt;
&lt;td&gt;R$1.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;002&lt;/td&gt;
&lt;td&gt;Notebook Dell&lt;/td&gt;
&lt;td&gt;R$2.200,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;003&lt;/td&gt;
&lt;td&gt;Notebook Sony Vaio&lt;/td&gt;
&lt;td&gt;R$3.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<table>
<tr>
<td>Código</td>
<td>Produto</td>
<td>Preço</td>
</tr>
<tr>
<td>001</td>
<td>Notebook Acer</td>
<td>R$1.800,00</td>
</tr>
<tr>
<td>002</td>
<td>Notebook Dell</td>
<td>R$2.200,00</td>
</tr>
<tr>
<td>003</td>
<td>Notebook Sony Vaio</td>
<td>R$3.800,00</td>
</tr>
</table>
<p>Podemos ainda especificar alguns atributos do elemento TABLE, para melhorar a visualização de nossas tabelas:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table border=&quot;2&quot; cellpadding=&quot;4&quot; cellspacing=&quot;4&quot;&gt;
&lt;tr&gt;
&lt;td&gt;Código&lt;/td&gt;
&lt;td&gt;Produto&lt;/td&gt;
&lt;td&gt;Preço&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;001&lt;/td&gt;
&lt;td&gt;Notebook Acer&lt;/td&gt;
&lt;td&gt;R$1.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;002&lt;/td&gt;
&lt;td&gt;Notebook Dell&lt;/td&gt;
&lt;td&gt;R$2.200,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;003&lt;/td&gt;
&lt;td&gt;Notebook Sony Vaio&lt;/td&gt;
&lt;td&gt;R$3.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<table border="2" cellpadding="4" cellspacing="4">
<tr>
<td>Código</td>
<td>Produto</td>
<td>Preço</td>
</tr>
<tr>
<td>001</td>
<td>Notebook Acer</td>
<td>R$1.800,00</td>
</tr>
<tr>
<td>002</td>
<td>Notebook Dell</td>
<td>R$2.200,00</td>
</tr>
<tr>
<td>003</td>
<td>Notebook Sony Vaio</td>
<td>R$3.800,00</td>
</tr>
</table>
<p>O atributo BORDER cria bordas em volta das células de uma tabela, permitindo uma melhor separação entre seus conteúdos. Podemos especificar uma medida numérica como valor de BORDER, referente a espessura da mesma. Quanto maior o valor, mais grossa será a borda. O atributo CELLPADDING fica responsável pelo espaçamento interno de cada célula, ou seja, o espaço entre a borda e o conteúdo. Quanto maior o valor de CELLPADDING, maior será o espaçamento do conteúdo. Já o atributo CELLSPACING fica responsável pelo espaçamento externo da célula, ou seja, o espaço entre as células de uma tabela. Quanto maior o valor, maior o seu espaçamento. Todos esses efeitos podem ser obtidos via CSS, dando maior liberdade para a nossa marcação HTML.</p>
<h3>Mesclando colunas e linhas: atributos colspan e rowspan</h3>
<p>Como eu disse anteriormente: é possível mesclar linhas e colunas. Esses recursos permitiram, por muito tempo, a criação de layouts baseados em tabelas. Apesar disso ser passado, esses recursos ainda são muito úteis. Veja a tabela abaixo:</p>
<table border="2" cellpadding="4" cellspacing="4">
<tr>
<td>Código</td>
<td>Produto</td>
<td>Preço</td>
</tr>
<tr>
<td>001</td>
<td>Notebook Acer</td>
<td>R$1.800,00</td>
</tr>
<tr>
<td colspan="3">Produtos com desconto de 10%</td>
</tr>
<tr>
<td>002</td>
<td>Notebook Dell</td>
<td>R$2.200,00</td>
</tr>
<tr>
<td>003</td>
<td>Notebook Sony Vaio</td>
<td>R$3.800,00</td>
</tr>
</table>
<p>Perceberam que em um dado momento, eu criei uma linha com uma única coluna? Tentem criar uma tabela igual a essa&#8230; Conseguiram? Não, né? Essa linha com uma coluna só, acabou não funcionando direito&#8230; Relaxem! Para mesclar colunas basta usar o atributo COLSPAN no elemento TD. Em COLSPAN iremos especificar quantas colunas devem ser mescladas. Veja o código da nossa tabela:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table border=&quot;2&quot; cellpadding=&quot;4&quot; cellspacing=&quot;4&quot;&gt;
&lt;tr&gt;
&lt;td&gt;Código&lt;/td&gt;
&lt;td&gt;Produto&lt;/td&gt;
&lt;td&gt;Preço&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;001&lt;/td&gt;
&lt;td&gt;Notebook Acer&lt;/td&gt;
&lt;td&gt;R$1.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;3&quot;&gt;Produtos com desconto de 10%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;002&lt;/td&gt;
&lt;td&gt;Notebook Dell&lt;/td&gt;
&lt;td&gt;R$2.200,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;003&lt;/td&gt;
&lt;td&gt;Notebook Sony Vaio&lt;/td&gt;
&lt;td&gt;R$3.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p>Podemos também mesclar linhas, ao invés de colunas. Veja a tabela abaixo:</p>
<table border="2" cellpadding="4" cellspacing="4">
<tr>
<td>Código</td>
<td>Produto</td>
<td>Preço</td>
</tr>
<tr>
<td>001</td>
<td>Notebook Acer</td>
<td>R$1.800,00</td>
</tr>
<tr>
<td colspan="3">Produtos com desconto de 10%</td>
</tr>
<tr>
<td>002</td>
<td>Notebook Dell &#8211; Modelo 01</td>
<td rowspan="2">R$2.200,00</td>
</tr>
<tr>
<td>003</td>
<td>Notebook Dell &#8211; Modelo 02</td>
</tr>
<tr>
<td>003</td>
<td>Notebook Sony Vaio</td>
<td>R$3.800,00</td>
</tr>
</table>
<p>Legal, né? Para conseguir esse feito, basta adicionar o atributo ROWSPAN na tag TD, indicando o número de linhas que serão mescladas em uma coluna. Veja o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table border=&quot;2&quot; cellpadding=&quot;4&quot; cellspacing=&quot;4&quot;&gt;
&lt;tr&gt;
&lt;td&gt;Código&lt;/td&gt;
&lt;td&gt;Produto&lt;/td&gt;
&lt;td&gt;Preço&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;001&lt;/td&gt;
&lt;td&gt;Notebook Acer&lt;/td&gt;
&lt;td&gt;R$1.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;3&quot;&gt;Produtos com desconto de 10%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;002&lt;/td&gt;
&lt;td&gt;Notebook Dell - Modelo 01&lt;/td&gt;
&lt;td rowspan=&quot;2&quot;&gt;R$2.200,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;003&lt;/td&gt;
&lt;td&gt;Notebook Dell - Modelo 02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;003&lt;/td&gt;
&lt;td&gt;Notebook Sony Vaio&lt;/td&gt;
&lt;td&gt;R$3.800,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p>Bom, por hoje é só! No próximo tutorial iremos nos aprofundar no tema, e estudar mais algumas tags e atributos, visando a acessibilidade em nossas tabelas. Tópico pra lá de importante, portanto muita atenção, ok?</p>
<p>Abraços,<br />
Diego.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projetistadigital.com/2009/07/minicurso-de-html-parte-viii-%e2%80%93-tabelas-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minicurso de HTML: Parte VII &#8211; Caminhos de arquivos: relativo e absoluto</title>
		<link>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-vii-caminhos-de-arquivos-relativo-e-absoluto/</link>
		<comments>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-vii-caminhos-de-arquivos-relativo-e-absoluto/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 08:00:08 +0000</pubDate>
		<dc:creator>Diego Marques</dc:creator>
				<category><![CDATA[WebStandards (Padrões Web)]]></category>
		<category><![CDATA[XHTML & HTML]]></category>
		<category><![CDATA[caminho absoluto]]></category>
		<category><![CDATA[caminho relativo]]></category>
		<category><![CDATA[caminhos de arquivos]]></category>
		<category><![CDATA[como fazer sites]]></category>
		<category><![CDATA[curso online de html]]></category>
		<category><![CDATA[HTML & XHTML]]></category>
		<category><![CDATA[html para iniciantes]]></category>
		<category><![CDATA[introdução ao html]]></category>
		<category><![CDATA[subir nível em diretórios e pastas]]></category>
		<category><![CDATA[tutorial básico html]]></category>
		<category><![CDATA[tutorial iniciante html]]></category>

		<guid isPermaLink="false">http://www.projetistadigital.com/?p=153</guid>
		<description><![CDATA[Olá Pessoal,
Para complementar o assunto LINKS e IMAGENS, vamos aprender a manipular o caminho dos arquivos a serem linkados ou inseridos em nossas páginas. É um assunto importante, e usuários iniciantes costumam ter alguma dificuldade. Por isso tenham atenção e pratiquem bastante.
Caminho relativo X Caminho absoluto
Podemos classificar os caminhos de arquivos em dois tipos: absoluto [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Para complementar o assunto LINKS e IMAGENS, vamos aprender a manipular o caminho dos arquivos a serem linkados ou inseridos em nossas páginas. É um assunto importante, e usuários iniciantes costumam ter alguma dificuldade. Por isso tenham atenção e pratiquem bastante.</p>
<h3>Caminho relativo X Caminho absoluto</h3>
<p>Podemos classificar os caminhos de arquivos em dois tipos: absoluto e relativo. O caminho absoluto utiliza toda a estrutura de pastas e diretórios, desde a raiz, para montar a URL do arquivo. Seria algo como:</p>
<p><strong>C:/Documents and Settings/All Users/Meus Documentos/sites/site/home.html</strong></p>
<p>Por questões de praticidade e flexibilidade, não usamos esse tipo de caminho para montar links internos, ou seja, aqueles que apontam para páginas e arquivos dentro do nosso próprio servidor. O caminho absoluto é usado em URL&#8217;s que apontem para arquivos dentro de outro servidor. Veja um exemplo:</p>
<p><strong>http://www.google.com.br</strong> ou <strong>http://www.google.com.br/intl/pt-BR_br/images/logo.gif</strong></p>
<p>Já os caminhos relativos são aqueles que tomam o próprio documento HTML como referência para encontrar outros artigos. Nos caminhos relativos, partimos do documento onde criamos o link, inserimos a imagem etc., e vamos navegando pela estrutura de pastas até achar o documento a ser linkado / inserido. Usamos caminhos relativos sempre que precisamos referenciar arquivos dentro do nosso próprio servidor: imagens, vídeos, links internos etc.</p>
<p>Vamos estudar no decorrer desse tutorial como trabalhar com caminhos relativos. Imaginemos que exista a seguinte de estrutura de pastas e arquivos: </p>
<ul>
<li>Site
<ul>
<li>IMAGENS
<ul>
<li>logo.jpg</li>
<li>foto.jpg</li>
</ul>
</li>
<li>CLIENTES</li>
<li>FLASH</li>
<li>home.html</li>
<li>perfil.html</li>
<li>servicos.html</li>
<li>contato.html</li>
</ul>
</li>
<li>Site2
<ul>
<li>IMAGENS2
<ul>
<li>logo2.jpg</li>
<li>foto2.jpg</li>
</ul>
</li>
<li>CLIENTES2</li>
<li>FLASH2</li>
<li>home2.html</li>
<li>perfil3.html</li>
<li>servicos4.html</li>
<li>contato5.html</li>
</ul>
</li>
</ul>
<h3>Linkando arquivos na mesma pasta</h3>
<p>Eu preciso criar um link para me levar da página HOME.HTML para CONTATO.HTML. Como eu faria isso?</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;contato.html&quot; title=&quot;Ir para a página de contato&quot;&gt;Contato&lt;/a&gt;</pre></td></tr></table></div>

<p>Como HOME e CONTATO são arquivos dentro da mesma pasta, para estabelecer um link entre eles basta especificar o nome do arquivo e sua extensão. </p>
<h3>Linkando arquivos em pastas diferentes</h3>
<p>Agora, como eu faria para inserir a imagem LOGO.JPG na página HOME? A primeira coisa que vocês devem perceber: o arquivo LOGO.JPG está na pasta IMAGENS, logo para acessá-la precisarei especificar a pasta IMAGENS no meu caminho de arquivo. Veja como ficará:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;img src=&quot;IMAGENS/logo.jpg&quot; alt=&quot;Logomarca do site X&quot; title=&quot;Logomarca do site X&quot; /&gt;</pre></td></tr></table></div>

<p>Para especificar uma ou mais pastas necessárias para se chegar a um arquivo, basta colocar o nome das pastas e subpastas (respeitando o uso de caixa alta e caixa baixa) separados por “/”. Ficaria algo assim: PASTA/SUBPASTA1/SUBPASTA2/arquivo.jpg.</p>
<p>Essa estrutura é usada tanto em links, quanto em imagens, ou qualquer outra situação onde seja necessário estabelecer um caminho para um arquivo qualquer (dentro de pastas e subpastas). </p>
<h3>Linkando arquivos em níveis diferentes</h3>
<p>No exemplo anterior, tanto a pasta IMAGENS, quanto o arquivo HOME.HTML estão no mesmo nível, por assim dizer. Percebam que ambos se encontram dentro da mesma pasta: SITE. Por esse motivo podemos acessar diretamente a pasta IMAGENS. Porém, como eu poderia linkar a página HOME2.HTML, dentro do arquivo HOME.HTML? Os dois arquivos estão em níveis diferentes: HOME está dentro da pasta SITE; HOME2 está na pasta SITE2. </p>
<p>Sempre que precisarmos subir um nível, ou seja sair da nossa pasta atual, e ir para uma pasta um nível acima (do mesmo modo que navegamos pelas pastas e diretórios do Windows), basta escrever “../” no caminho do arquivo. Veja como ficará o nosso link:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;../Site2/home2.html&quot; title=&quot;Link para o site2&quot;&gt;Ir para o site 2&lt;/a&gt;</pre></td></tr></table></div>

<p>Se for necessário subir três níveis de pastas, basta usar três “../”: ../../../PASTA/arquivo.html. Trabalhar com caminhos de arquivos não é difícil ou complicado, exige apenas um pouco de atenção para a hierarquia de arquivos e pastas no site. É normal se enrolar na contagem de pastas, quando precisamos subir vários níveis, e com a prática você irá se acostumar e errar cada vez menos. <strong>Uma dica importante: sempre que você errar um caminho com vários níveis, tente adicionar ou retirar “../”, para verificar se você não errou na contagem de pastas.</strong></p>
<p>Bem, por hoje é só pessoal! Próximo tutorial abordará o assunto TABELAS. Até lá.</p>
<p>Abraços,<br />
Diego.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-vii-caminhos-de-arquivos-relativo-e-absoluto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minicurso de HTML: Parte VI &#8211; Inserindo e trabalhando com imagens na web</title>
		<link>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-vi-inserindo-e-trabalhando-com-imagens-na-web/</link>
		<comments>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-vi-inserindo-e-trabalhando-com-imagens-na-web/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 23:44:12 +0000</pubDate>
		<dc:creator>Diego Marques</dc:creator>
				<category><![CDATA[WebStandards (Padrões Web)]]></category>
		<category><![CDATA[XHTML & HTML]]></category>
		<category><![CDATA[atributo alt]]></category>
		<category><![CDATA[atributo src]]></category>
		<category><![CDATA[atributo title]]></category>
		<category><![CDATA[como colocar legendas em imagens]]></category>
		<category><![CDATA[como fazer sites]]></category>
		<category><![CDATA[como inserir imagens html?]]></category>
		<category><![CDATA[curso online de html]]></category>
		<category><![CDATA[HTML & XHTML]]></category>
		<category><![CDATA[html para iniciantes]]></category>
		<category><![CDATA[inserindo imagens html]]></category>
		<category><![CDATA[introdução ao html]]></category>
		<category><![CDATA[o que é html]]></category>
		<category><![CDATA[tag img]]></category>
		<category><![CDATA[texto alternativo imagens]]></category>
		<category><![CDATA[tutorial básico html]]></category>
		<category><![CDATA[tutorial iniciante html]]></category>

		<guid isPermaLink="false">http://www.projetistadigital.com/?p=145</guid>
		<description><![CDATA[Olá Pessoal,
Antes de começar: o Projetista Digital está no Twitter! A partir de agora você pode me seguir e acessar diariamente os links de artigos, blogs, sites e tudo mais relacionado a nossa área, que eu leio e encontro na web. Achei um tutorial legal, um site maneiro, qualquer coisa interessante: vou postar o link [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Antes de começar: o <a href="http://twitter.com/projdigital" target="_blank" title="Twitter do Projetista Digital">Projetista Digital está no Twitter</a>! A partir de agora você pode <a href="http://twitter.com/projdigital" target="_blank" title="Twitter do Projetista Digital">me seguir</a> e acessar diariamente os links de artigos, blogs, sites e tudo mais relacionado a nossa área, que eu leio e encontro na web. Achei um tutorial legal, um site maneiro, qualquer coisa interessante: vou postar o link no <a href="http://twitter.com/projdigital" target="_blank" title="Twitter do Projetista Digital">Twitter</a>. Então <a href="http://twitter.com/projdigital" target="_blank" title="Twitter do Projetista Digital">me siga no Twitter</a>, e receba atualizações diárias sobre novidades de Design e Desenvolvimento Web. Agora voltamos com a programação normal:</p>
<p>O tutorial de hoje refere-se ao uso de imagens. Incluir imagens em sites é um processo simples, sem maiores complicações. A possibilidade de inserir imagens e gráficos, ajudou, e muito, a enriquecer a experiência dos internautas. Podemos criar layouts sofisticados, além de inserir fotos, gráficos e qualquer outro tipo de informação. O bom uso de imagens é uma ferramenta essencial para o sucesso de um site. As imagens influenciam na acessibilidade, usabilidade, peso e rankeamento de um site nos buscadores: em resumo, o mal uso de imagens pode comprometer seu site em várias áreas.</p>
<h3>Formatos de imagens</h3>
<p>Todos vocês estão acostumados com imagens: são as fotos de aniversário, natal, álbuns do Orkut, a logomarca do Google&#8230; O tempo todo usamos e vemos imagens, seja no nosso computador, seja na web. Todo arquivo possui uma extensão (arquivo HTML possuem extensão .html, Word é .doc, Excel é .xls, PowerPoint é .ppt etc.), e imagens possuem várias extensões, sendo que na web são usadas apenas três:</p>
<ul>
<li>GIF &#8211; Graphics Interchange Format</li>
<li>JPG / JPEG &#8211; Joint Photographic Experts Group</li>
<li>PNG &#8211; Portable Network Graphics</li>
</ul>
<p>Qual a diferença entre elas? GIF é um formato que admite apenas 256 cores, sendo usado em desenhos e gráficos; JPG / JPEG admite milhões de cores, é ideal para fotografias; GIF admite fundo transparente; JPG / JPEG <strong>NÃO</strong> admite fundo transparente; GIF possui melhor compressão para imagens simples; JPG / JPEG possui melhor compressão para imagens complexas; quanto maior a compressão da imagem, menor o tamanho do arquivo, e mais rápido é o carregamento da imagem na página. E como todos sabem: páginas que demoram a carregar são um pé no saco&#8230;</p>
<p>E o formato PNG? Esse é um formato relativamente novo, que reúne o melhor dos dois mundos: alta compressão, fundo transparente e milhões de cores para detalhamento.</p>
<h3>O que preciso para conseguir imagens?</h3>
<p>O XHTML apenas insere as imagens na página: criá-las, editá-las e tratá-las é por conta de ferramentas específicas (editores de imagens). As ferramentas mais usadas: Adobe Fireworks, Adobe Photoshop e Gimp. O Gimp é uma ferramenta gratuita, enquanto as outras duas são pagas. Se você precisar usar um editor de imagens, e não tem dinheiro para comprar um software pago, use o Gimp ou Infran View (uma ferramenta simples e gratuita).</p>
<p>Você pode também baixar imagens diretamente da internet (lembre-se que existem direitos autorais sobre imagens, apesar de não ser o escopo desse tutorial debater o tema), basta clicar com o botão direito do mouse sobre a imagem, e clicar em &#8220;Salvar Imagem Como&#8221; (o texto varia de navegador para navegador, mas você conseguirá identificar a opção).</p>
<h3>Inserindo imagens em uma página web</h3>
<p>Para inserir imagens em um documento XHTML você usará a tag &lt;img /&gt;. Essa tag possui um atributo chamado SRC, onde iremos declarar o caminho da imagem que desejamos inserir na página. Veja a tag &lt;img /&gt; em funcionamento:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;img src=&quot;imagem.jpg&quot; /&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<p><img src="http://www.google.com.br/intl/pt-BR_br/images/logo.gif" alt="Logo do Google" title="Logo do Google" /></p>
<p>Simples, né? Não tem segredo: basta colocar o caminho correto da imagem e pronto. Percebam que a tag &lt;img /&gt; é um elemento vazio, ou seja, não possui tag de fechamento &lt;/img &gt;; para fechar a tag de imagem usamos a barra (/) na própria tag de abertura: &lt;img /&gt;.</p>
<p>Podemos também usar imagens hospedadas em outros sites, como por exemplo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;img src=&quot;http://www.google.com.br/intl/pt-BR_br/images/logo.gif&quot; /&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<p><img src="http://www.google.com.br/intl/pt-BR_br/images/logo.gif" alt="Logo do Google" title="Logo do Google" /></p>
<p>Imagens também podem servir de links. Veja como:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=&quot;http://www.google.com.br&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://www.google.com.br/intl/pt-BR_br/images/logo.gif&quot; /&gt;&lt;/a&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<p><a href="http://www.google.com.br" target="_blank"><img src="http://www.google.com.br/intl/pt-BR_br/images/logo.gif" /></a></p>
<h3>Atributos alt e title</h3>
<p>Nosso site pode ser acessado por vários perfis de usuários: internautas com deficiência visual, sem deficiências, com dificuldades motoras, acessando a partir de celulares e dispositivos móveis, spiders, crawlers e outros robôs usados por buscadores para indexar sites etc. É importante desenvolver sites <strong>ACESSÍVEIS</strong>, ou seja, que permitam o acesso a qualquer perfil de usuário. Acessibilidade é um tópico à parte, e terá seu próprio minicurso. Mas desde agora podemos aprender a escrever um código XHTML visando a Acessibilidade. E em imagens temos dois atributos visando esse fim: alternativas para usuários que não podem visualizar imagens.</p>
<p>Se por algum motivo o usuário não visualizar imagem (caminho errado, dificuldade visual, configuração do navegador, ser um robô de busca etc.), podemos apresentar um texto alternativo. Esse texto alternativo é uma rápida descrição da imagem, inserida dentro da tag ALT. Veja o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;!-- Eu errei o nome da imagem propositalmente --&gt;
&lt;img src=&quot;http://www.google.com.br/intl/pt-BR_br/images/logoooooo.gif&quot; alt=&quot;logomarca do Google - texto alternativo&quot; /&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<p><img src="http://www.google.com.br/intl/pt-BR_br/images/logoooooo.gif" alt="logomarca do Google - texto alternativo" title="Logo do Google" /></p>
<p>Repararam que o texto do ALT apareceu no lugar da imagem? Legal, né? Além de inserir uma descrição alternativa, eu posso inserir uma rápida descrição da imagem, a ser renderizada pelos navegadores sob a forma de uma caixinha amarela, quando passamos o mouse por cima de uma imagem. Essa descrição também será usada em leitores de tela, usados por usuários com deficiência visual; e robôs de buscadores. Veja como funciona:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;img src=&quot;http://www.google.com.br/intl/pt-BR_br/images/logo.gif&quot; alt=&quot;Logo do Google&quot; title=&quot;Logo do Google&quot; /&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<p><img src="http://www.google.com.br/intl/pt-BR_br/images/logo.gif" alt="Logo do Google" title="Logo do Google" /></p>
<p>Pessoal, por hoje é só! No próximo tutorial falaremos sobre &#8220;caminhos de arquivos&#8221;, um assunto importante para complementar o uso de links e imagens (atributos HREF e SRC). Não percam!</p>
<p>Abraços,<br />
Diego.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-vi-inserindo-e-trabalhando-com-imagens-na-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minicurso de HTML: Parte V – Links e Atributos XHTML</title>
		<link>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-v-%e2%80%93-links-e-atributos-xhtml/</link>
		<comments>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-v-%e2%80%93-links-e-atributos-xhtml/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 11:48:12 +0000</pubDate>
		<dc:creator>Diego Marques</dc:creator>
				<category><![CDATA[WebStandards (Padrões Web)]]></category>
		<category><![CDATA[XHTML & HTML]]></category>
		<category><![CDATA[atributo href links]]></category>
		<category><![CDATA[atributo target links]]></category>
		<category><![CDATA[atributo title links]]></category>
		<category><![CDATA[como fazer sites]]></category>
		<category><![CDATA[curso online de html]]></category>
		<category><![CDATA[HTML & XHTML]]></category>
		<category><![CDATA[html para iniciantes]]></category>
		<category><![CDATA[introdução ao html]]></category>
		<category><![CDATA[links abrindo nova janela]]></category>
		<category><![CDATA[links âncoras html]]></category>
		<category><![CDATA[links html]]></category>
		<category><![CDATA[o que é html]]></category>
		<category><![CDATA[tutorial básico html]]></category>
		<category><![CDATA[tutorial iniciante html]]></category>

		<guid isPermaLink="false">http://www.projetistadigital.com/?p=136</guid>
		<description><![CDATA[Olá Pessoal,
Conforme adiantado no último post, hoje falaremos sobre links e atributos XHTML. Até agora criamos documentos XHTML com títulos, parágrafos, estilos em textos, listas etc. Contudo, esses documentos não estão ligados entre si e por esse motivo não podemos navegar entre eles. Não é exagero dizer que os links foram a base de toda [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Conforme adiantado no último post, hoje falaremos sobre links e atributos XHTML. Até agora criamos documentos XHTML com títulos, parágrafos, estilos em textos, listas etc. Contudo, esses documentos não estão ligados entre si e por esse motivo não podemos navegar entre eles. Não é exagero dizer que os links foram a base de toda a web. Com eles podemos interconectar todas as nossas páginas, criando sites tais como conhecemos. E mais do que interligar documentos, os links hoje possuem valor semântico, são critérios extremamente relevantes para posicionamento de sites em buscadores etc. Aprender a explorar ao máximo possível o uso de links é indispensável para essa nossa área, portanto estudem com atenção e afinco.</p>
<h3>Criando Links</h3>
<p>Podemos converter vários elementos HTML em links: textos, imagens, áreas etc. Esses links podem apontar para dentro da própria página (são os links âncoras) ou para documentos externos. Links para páginas externas ao próprio documento podem apontar para páginas fora do servidor, onde o site está hospedado, ou dentro do próprio servidor. Podemos também linkar outros arquivos de outros formatos, tais como: DOC, PDF, MP3, imagens em geral, XLS etc.</p>
<p>Para criar um link usaremos a tag &lt;a&gt;&lt;/a&gt;. Veja como fica o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;h4&gt;Criando um link&lt;/h4&gt;
&nbsp;
&lt;a&gt;Link&lt;/a&gt;</pre></td></tr></table></div>

<p>Ok, acabamos de marcar um link, porém como definir a página de destino, ou seja, a página para onde o link me levará, assim que eu clicar nele? Para adicionar essa funcionalidade à tag &lt;a&gt;, será necessário utilizar&#8230;</p>
<h3>Atributos HTML, Atributos HREF e TARGET</h3>
<p>Os atributos HTML são características de uma tag que adicionam funcionalidades a ela. Por exemplo: não basta criar um link, é preciso definir uma página destino. Como já vimos, a tag usada para linkar é &lt;a&gt;&lt;/a&gt;, para adicionar à essa tag a página de destino do link, usaremos um atributo dessa tag, chamado HREF. Todo atributo XHTML segue as seguintes regras:</p>
<ol>
<li>É escrito em letras minúsculas;</li>
<li>É escrito dentro da tag de abertura;</li>
<li>Respeita a seguinte sintaxe: nome_do_atributo=”valor_do_atributo”.</li>
</ol>
<p>Vejamos como ficaria nosso link, usando o atributo HREF:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;h4&gt;Link para uma página externa&lt;/h4&gt;
&lt;a href=”http://www.google.com.br”&gt;Link&lt;/a&gt;
&nbsp;
&lt;h4&gt;Link para uma página dentro do próprio servidor&lt;/h4&gt;
&lt;a href=”pagina.html”&gt;Link Interno&lt;/a&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<h4>Link para uma página externa</h4>
<p><a href=”http://www.google.com.br” target=”_blank”>Link</a></p>
<h4>Link para uma página dentro do próprio servidor</a><br />
<a href=”pagina.html” target=”_blank”>Link Interno</a></p>
<p>Perceberam que páginas dentro do nosso próprio servidor não precisam do caminho completo (http://www.dominio.com.br/etc&#8230;)? Basta apenas declarar o nome do arquivo, e sua hierarquia de pastas (quando necessário). O tema caminho de arquivos será tratado mais a frente.</p>
<p>Outra funcionalidade importante sobre links: escolher em qual janela o link será aberto. Temos duas opções: abrir links na mesma janela, obrigando o usuário a utilizar o botão VOLTAR, do navegador, para retornar a nossa página; abrir links em uma nova janela. Por padrão os links abrem na mesma janela, para forçar a abertura de links em uma nova janela precisaremos do atributo TARGET. Veja como funciona:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;h4&gt;Link abrindo na mesma janela&lt;/h4&gt;
&lt;a href=”pagina.html”&gt;Link&lt;/a&gt;
&nbsp;
&lt;h4&gt;Link abrindo em uma nova janela&lt;/h4&gt;
&lt;a href=”pagina.html” target=”_blank”&gt;Link&lt;/a&gt;</pre></td></tr></table></div>

<p>Basta adicionar o atributo TARGET com o valor “_blank” e o link abrirá em uma nova janela. Outra coisa importante a ser observado: se preciso utilizar mais de um atributo por tag, basta separá-los por um espaço em branco e escrevê-los normalmente, seguindo as regras expostas acima. Nesse exemplo utilizamos os atributo HREF e TARGET simultaneamente, mas da mesma forma podemos ter dez atributos (exagero meu <img src='http://www.projetistadigital.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  em uma mesma tag, a lógica da sintaxe é a mesma.</p>
<h3>Links âncoras</h3>
<p>Vimos como criar links para documentos externos (dentro e fora do nosso servidor), agora iremos criar links para dentro do próprio documento. Imagine uma página enorme, cheia de conteúdo dividido em seções e subseções: não seria útil criar um índice para o usuário avançar pela página sem precisar acionar a barra de rolagem indefinidamente? Facilitaria, e muito, a vida do internauta. Para isso criaremos links âncoras, ou seja, links que apontem para o próprio documento.</p>
<p>Para criar uma âncora precisamos de dois fatores:</p>
<ol>
<li>Definir um pedaço da página para ser o destino do link;</li>
<li>Criar um link apontando para o pedaço da página selecionado como destino.</li>
</ol>
<p>Para definir um trecho da página como destino do link âncora, será preciso envolvê-lo com as tags &lt;a&gt;&lt;/a&gt; acrescentando o atributo NAME. Veja como funciona:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;h4&gt;&lt;a name=”ancora1”&gt;Título 1&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Parágrafo 1...&lt;/p&gt;</pre></td></tr></table></div>

<p>Bem, definimos um parágrafo de nossa página como uma âncora, agora é preciso criar um link apontando para essa âncora. Para isso basta criar um link normalmente, e no caminho da página de destino colocar o seguinte valor: #nome_da_ancora. Veja como ficará o nosso exemplo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;h4&gt;&lt;a name=”topo”&gt;Topo&lt;/a&gt;&lt;/h4&gt;
&lt;a href=”#ancora1”&gt;Parágrafo 1&lt;/&gt;
&nbsp;
&lt;h4&gt;&lt;a name=”ancora1”&gt;Título 1&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Parágrafo 1...&lt;/p&gt;
&lt;a href=”#topo”&gt;Voltar para o topo&lt;/a&gt;</pre></td></tr></table></div>

<h3>E se eu quiser criar um link para uma âncora que se encontra em outra página?</h3>
<p>Simples! Basta criar um link como o especificado abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;a href=”pagina.html#nome_ancora”&gt;Link para âncora em outra página&lt;/a&gt;</pre></td></tr></table></div>

<p>Viram só, como é fácil trabalhar com links e âncoras? Agora é só praticar e criar suas primeiras páginas web linkadas entre si. Aproveitem e estudem bastante. No próximo tutorial falaremos sobre como inserir imagens em nossas páginas.</p>
<p>Forte abraço,<br />
Diego.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-v-%e2%80%93-links-e-atributos-xhtml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minicurso de HTML: Parte IV – Listas Mistas ou Aninhadas</title>
		<link>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-iv-%e2%80%93-listas-mistas-ou-aninhadas/</link>
		<comments>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-iv-%e2%80%93-listas-mistas-ou-aninhadas/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 11:47:48 +0000</pubDate>
		<dc:creator>Diego Marques</dc:creator>
				<category><![CDATA[WebStandards (Padrões Web)]]></category>
		<category><![CDATA[XHTML & HTML]]></category>
		<category><![CDATA[aninhamento de listas HTML]]></category>
		<category><![CDATA[aninhando listas html]]></category>
		<category><![CDATA[como fazer sites]]></category>
		<category><![CDATA[curso online de html]]></category>
		<category><![CDATA[erros em listas html]]></category>
		<category><![CDATA[HTML & XHTML]]></category>
		<category><![CDATA[html para iniciantes]]></category>
		<category><![CDATA[introdução ao html]]></category>
		<category><![CDATA[li]]></category>
		<category><![CDATA[listas aninhadas]]></category>
		<category><![CDATA[listas html]]></category>
		<category><![CDATA[listas mistas]]></category>
		<category><![CDATA[listas não-ordenadas]]></category>
		<category><![CDATA[listas ordenadas]]></category>
		<category><![CDATA[mesclagem de listas]]></category>
		<category><![CDATA[misturando  com]]></category>
		<category><![CDATA[misturando listas ordenadas com não-ordenadas]]></category>
		<category><![CDATA[obrigatoriedade de fechamento da tag li]]></category>
		<category><![CDATA[ol]]></category>
		<category><![CDATA[tutorial básico html]]></category>
		<category><![CDATA[tutorial iniciante html]]></category>
		<category><![CDATA[ul]]></category>

		<guid isPermaLink="false">http://www.projetistadigital.com/?p=133</guid>
		<description><![CDATA[Olá Pessoal,
Continuando com o tema listas em XHTML, vamos tratar hoje de listas mistas (lista com subníveis). Até agora vimos como criar listas de um único nível, porém podemos explorar ainda mais o recurso de listas seja criando subníveis, ou mesclando listas ordenadas com não-ordenadas.
Listas mistas não-ordenadas
Quando criamos subníveis em listas ordenadas, os itens de [...]]]></description>
			<content:encoded><![CDATA[<p>Olá Pessoal,</p>
<p>Continuando com o tema listas em XHTML, vamos tratar hoje de listas mistas (lista com subníveis). Até agora vimos como criar listas de um único nível, porém podemos explorar ainda mais o recurso de listas seja criando subníveis, ou mesclando listas ordenadas com não-ordenadas.</p>
<h3>Listas mistas não-ordenadas</li>
<p>Quando criamos subníveis em listas ordenadas, os itens de níveis inferiores são apresentados com um marcador diferenciado e um certo recuo em relação aos itens de nível superior. Veja o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;h4&gt;Lista não-ordenada simples&lt;/h4&gt;
&nbsp;
&lt;ul&gt;
&lt;li&gt;Item 1&lt;/li&gt;
&lt;li&gt;Item 2&lt;/li&gt;
&lt;li&gt;Item 3&lt;/li&gt;
&lt;/ul&gt;
&nbsp;
&lt;h4&gt;Lista mista não-ordenada&lt;/h4&gt;
&nbsp;
&lt;ul&gt;
&lt;li&gt;Item 1&lt;/li&gt;
&lt;li&gt;Item 2
&lt;ul&gt;
&lt;li&gt;Item 2.1&lt;/li&gt;
&lt;li&gt;Item 2.2&lt;/li&gt;
&lt;li&gt;Item 2.3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Item 3&lt;/li&gt;
&lt;/ul&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<h4>Lista não-ordenada simples</h4>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<h4>Lista mista não-ordenada</h4>
<ul>
<li>Item 1</li>
<li>Item 2
<ul>
<li>Item 2.1</li>
<li>Item 2.2</li>
<li>Item 2.3
<ul>
<li>Item 2.3.1</li>
<li>Item 2.3.2</li>
</ul>
</li>
</ul>
</li>
<li>Item 3</li>
</ul>
<p>Para criar listas mistas ou aninhadas basta adicionar uma nova lista dentro de um elemento &lt;li&gt;. A cada nível adicionado percebemos um recuo em relação ao nível anterior; percebe-se também que os marcadores mudam: no primeiro nível temos um bolinha preenchida; no segundo nível temos uma bolinha vazia; no terceiro nível em diante temos um quadrado. Podemos criar listas com N níveis, dependendo apenas da nossa necessidade. Com essa marcação podemos criar menus dropdown (aqueles onde passamos o mouse por cima de um item para abrir um submenu). Aprenderemos, inclusive, a construir esse tipo de menu com CSS. É só seguir o blog! <img src='http://www.projetistadigital.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>Listas mistas ordenadas</h3>
<p>Podemos também criar listas aninhadas usando ordenação. Veja o caso de uma lista mista ordenada:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;h4&gt;Lista ordenada simples&lt;/h4&gt;
&nbsp;
&lt;ol&gt;
&lt;li&gt;Alunos&lt;/li&gt;
&lt;li&gt;Professores&lt;/li&gt;
&lt;li&gt;Carros&lt;/li&gt;
&lt;/ol&gt;
&nbsp;
&lt;h4&gt;Lista mista não-ordenada&lt;/h4&gt;
&nbsp;
&lt;ol&gt;
&lt;li&gt;Alunos
&lt;ol&gt;
&lt;li&gt;José&lt;/li&gt;
&lt;li&gt;João&lt;/li&gt;
&lt;li&gt;Maria&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Professores
&lt;ol&gt;
&lt;li&gt;Diego&lt;/li&gt;
&lt;li&gt;Marcelo&lt;/li&gt;
&lt;li&gt;Mike&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Carros
&lt;ol&gt;
&lt;li&gt;Palio&lt;/li&gt;
&lt;li&gt;Gol&lt;/li&gt;
&lt;li&gt;Uno&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<h4>Lista ordenada simples</h4>
<ol>
<li>Alunos</li>
<li>Professores</li>
<li>Carros</li>
</ol>
<h4>Lista mista não-ordenada</h4>
<ol>
<li>Alunos
<ol>
<li>José</li>
<li>João</li>
<li>Maria</li>
</ol>
</li>
<li>Professores
<ol>
<li>Diego</li>
<li>Marcelo</li>
<li>Mike</li>
</ol>
</li>
<li>Carros
<ol>
<li>Palio</li>
<li>Gol</li>
<li>Uno</li>
</ol>
</li>
</ol>
<p>Como vocês podem perceber a numeração reinicia quando criamos subníveis, ou seja, nada de 2.1, 2.2, 2.3 etc. Não há como fazer esse tipo de alteração.</p>
<h3>Listas mistas ordenadas e não-ordenadas</h3>
<p>Para finalizar o post veremos como misturar listas ordenadas e não-ordenadas. Observe o código abaixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;h4&gt;Lista ordenada seguida de uma não-ordenada&lt;/h4&gt;
&nbsp;
&lt;ol&gt;
&lt;li&gt;Alunos
&lt;ul&gt;
&lt;li&gt;José&lt;/li&gt;
&lt;li&gt;João&lt;/li&gt;
&lt;li&gt;Maria&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Professores
&lt;ul&gt;
&lt;li&gt;Diego&lt;/li&gt;
&lt;li&gt;Marcelo&lt;/li&gt;
&lt;li&gt;Mike&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Carros
&lt;ul&gt;
&lt;li&gt;Palio&lt;/li&gt;
&lt;li&gt;Gol&lt;/li&gt;
&lt;li&gt;Uno&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&nbsp;
&lt;h4&gt;Lista não-ordenada seguida de uma ordenada&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Alunos
&lt;ol&gt;
&lt;li&gt;José&lt;/li&gt;
&lt;li&gt;João&lt;/li&gt;
&lt;li&gt;Maria&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Professores
&lt;ol&gt;
&lt;li&gt;Diego&lt;/li&gt;
&lt;li&gt;Marcelo&lt;/li&gt;
&lt;li&gt;Mike&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Carros
&lt;ol&gt;
&lt;li&gt;Palio&lt;/li&gt;
&lt;li&gt;Gol&lt;/li&gt;
&lt;li&gt;Uno&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;</pre></td></tr></table></div>

<p><strong>Resultado:</strong></p>
<h4>Lista ordenada seguida de uma não-ordenada</h4>
<ol>
<li>Alunos
<ul>
<li>José</li>
<li>João</li>
<li>Maria</li>
</ul>
</li>
<li>Professores
<ul>
<li>Diego</li>
<li>Marcelo</li>
<li>Mike</li>
</ul>
</li>
<li>Carros
<ul>
<li>Palio</li>
<li>Gol</li>
<li>Uno</li>
</ul>
</li>
</ul>
<h4>Lista não-ordenada seguida de uma ordenada</h4>
<ul>
<li>Alunos
<ol>
<li>José</li>
<li>João</li>
<li>Maria</li>
</ol>
</li>
<li>Professores
<ol>
<li>Diego</li>
<li>Marcelo</li>
<li>Mike</li>
</ol>
</li>
<li>Carros
<ol>
<li>Palio</li>
<li>Gol</li>
<li>Uno</li>
</ol>
</li>
</ul>
<p>Bem pessoal, com isso finalizamos o assunto LISTAS XHTML. No próximo tutorial falaremos sobre links e atributos. Bom estudo e até lá.</p>
<p>Forte abraço,<br />
Diego.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.projetistadigital.com/2009/06/minicurso-de-html-parte-iv-%e2%80%93-listas-mistas-ou-aninhadas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
