<?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>Como Criar Sites &#124; Aprenda grátis como fazer seu site &#187; html</title>
	<atom:link href="http://www.comocriarsites.com/category/html/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.comocriarsites.com</link>
	<description>Aprenda a criar sites, html e manhas para fazer seu site.</description>
	<lastBuildDate>Wed, 06 Jan 2010 12:51:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fazendo Formulário HTML (Como Fazer Fomulário HTML) &#8211; Form</title>
		<link>http://www.comocriarsites.com/html/fazendo-formulario-html-como-fazer-fomulario-html-form/</link>
		<comments>http://www.comocriarsites.com/html/fazendo-formulario-html-como-fazer-fomulario-html-form/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 15:41:12 +0000</pubDate>
		<dc:creator>Raoni Novellino</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[charset]]></category>
		<category><![CDATA[criar site]]></category>
		<category><![CDATA[enctype]]></category>
		<category><![CDATA[fazer site]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[formulario]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[post]]></category>
		<category><![CDATA[target]]></category>

		<guid isPermaLink="false">http://www.comocriarsites.com/?p=150</guid>
		<description><![CDATA[Para que serve um formulário? Um formulário serve para o usuário interagir de alguma forma com o site, enviando informações, escolhendo ou selecionando certas funções do site ou entrar em contato com o criador ou dono do site.
Como posso fazer um fomulário HTML? O HTML tem alguns elemento que ajudam na criação de formulários e [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: xx-large;">P</span>ara que serve um formulário? Um formulário serve para o usuário interagir de alguma forma com o site, enviando informações, escolhendo ou selecionando certas funções do site ou entrar em contato com o criador ou dono do site.</p>
<p>Como posso fazer um fomulário <em>HTML</em>? O <em>HTML</em> tem alguns elemento que ajudam na criação de formulários e na interação usuário-website. Esses elemento apresentam diversas formas de apresentar ao usuário informações que o site quer que o usuário preencha, selecione ou marque. Para quem programa em outras linguagens, os elementos <em>HTML</em> para fazer formulário são os padrões, de caixa de texto, seleção de um ou vários em uma lista, marcar opções e também escrever textos em várias linhas.</p>
<p>Vamos ver como fazer o elemento Form (tag <strong><em>&lt;form&gt;</em></strong>) do <em>HTML</em>, que é o elemento pai de todos os outros elementos de formulário <em>HTML </em>e no fim desse post teremos links para outros posts descrevendo os outros elementos <em>HTML</em> de formulário.</p>
<h2>A Tag <em><strong>&lt;form&gt;</strong></em> &#8211; Elemento Form</h2>
<p>A tag <em><strong>&lt;form&gt;</strong></em> é utilizada para fazer um formulário, nela define-se vários aspectos do formulário como para onde ele é enviado e que forma de envio é utilizado. Sempre que for fazer um formulário, todos os componentes do formulário devem ficar entre as tags <em><strong>&lt;form&gt;</strong></em> e <em><strong>&lt;/form&gt;</strong></em>.</p>
<p>Vamos ver alguns atributos da tag de fomulário <em><strong>&lt;form&gt;</strong></em>.</p>
<h4><em>Action</em></h4>
<p>- O atributo <em>action</em> da tag <em><strong>&lt;form&gt;</strong></em> diz para onde o formulário deve ser enviado. O valor desse atributo é o endereço, estático ou relativo, de onde está a página que vai tratar esse formulário.</p>
<h4><em>Method</em></h4>
<p>- O <em>method</em> diz como enviar os dados do formulário, pode ser pelo método <em>GET</em> ou <em>POST</em>. Se você não especificar o método (atributo <em>method</em>), o padrão é o <em>GET</em>.</p>
<p>Para saber mais sobre os métodos <em>GET</em> e <em>POST</em> acesse <a title="Como Funciona os Métodos GET e POST - Diferenças" href="http://www.comocriarsites.com/html/como-funciona-os-metodos-get-e-post-diferencas/">Como Funciona os Métodos GET e POST &#8211; Diferenças</a>.</p>
<h4><em>Name</em></h4>
<p>- Esse atributo nomeia o fomulário <strong><em>&lt;form&gt;</em></strong>, fazendo ele poder ser identificado por folhas de estilo e scripts (como Javascript). Esse atributo está em desuso, é utilizado somente para compatibilidade com códigos HTML antigos e os códigos HTML novos devem utilizar o atributo <em>id</em>.</p>
<h4><em>Id</em></h4>
<p>- Esse atributo pode ser utilizado em qualquer elemento HTML, ele define uma identificação única para o elemento HTML e deve ser único em um documento.</p>
<h4><em>Target</em></h4>
<p>- Indica onde o resultado da submissão do formulário HTML será exibida. Pode ser o nome de um frame (ou iframe, tag &lt;iframe&gt;), ou uma janela, ou uma dessas seguintes constantes:</p>
<p><strong><em> &#8211; _blank</em></strong> &#8211; O resultado do formulário HTML é exibido em uma janela nova e sem nome. alguns navegadores deixam a opção para o usuário, de exibir esse resultado em uma nova aba.</p>
<p><em><strong> &#8211; _self</strong></em> &#8211; Exibe a página referenciada na mesma página ou no mesmo frame que o link ou formulário está. Essa é a opção padrão.</p>
<p><em><strong>- _parent</strong></em> &#8211; Exibe a página referenciada no frame pai do frame que o link ou formulário está. Se o frame não tiver frame pai, essa opção fica igual a opção &#8220;<em><strong>_self</strong></em>&#8220;.</p>
<p><em><strong>- _top</strong></em> &#8211; Exibe a página referenciada na tela inteira do navegador, cancelando qualquer frame que a página anterior continha.</p>
<h4><em>Enctype</em></h4>
<p>- Esse atributo diz como o formulário HTML vai codificar os dados enviados. Se você não quiser enviar nenhum arquivo (upload) para o servidor, você pode não colocar esse atributo no seu formulário HTML (form), que ele vai ficar com o valor padrão, que vai funcionar normal.</p>
<p>Os valores para esse atributo podem ser:</p>
<p><strong><em>- application/x-www-form-urlencoded</em></strong> &#8211; Esse é o valor padrão, se você quiser saber como os dados são codificados, entre em <a href="http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1">http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1</a>.</p>
<p><em><strong>- multipart/form-data</strong></em> &#8211; Se você quer fazer envio de arquivos (upload), via formulário HTML, você deve utilizar esse valor para o atributo <em><strong>Enctype</strong></em>. O valor padrão não é suficiente para enviar grandes quantidades de dados binários. Esse valor deve ser utilizado quando desejas enviar arquivos, dados binários ou caracteres não ASCII.</p>
<p>Para outros valores desse atributo, consulte: <a href="http://www.w3.org/TR/html401/types.html#type-content-type">http://www.w3.org/TR/html401/types.html#type-content-type</a>.</p>
<h4><a><em>Accept</em></a></h4>
<p>- Esse atributo define quais tipos de conteúdo (content types), que o servidor vai processar corretamente. Colocam-se os tipos separados por vírgula.</p>
<p>O atributo <em><strong>accept</strong></em> especifica que tipos de arquivos (<em><strong>&lt;input type=&#8221;file&#8221;&gt;</strong></em>), o navegador deve filtrar, para não enviar arquivos para o servidor que não seja correspondente a um dos tipos especificados nesse atributo.</p>
<p>Se você quiser uma lista dos tipos (MIME types) de conteúdo, entre em: <a href="http://www.w3.org/TR/html401/references.html#ref-MIMETYPES">http://www.w3.org/TR/html401/references.html#ref-MIMETYPES</a> e em: <a href="http://www.iana.org/assignments/media-types/">http://www.iana.org/assignments/media-types/</a></p>
<h4><a><em>Accept-charset</em></a></h4>
<p>- Esse atributo define qual tipo de codificação de caracteres (<em>charset</em>) o servidor vai identificar os dados enviados pelo formulário HTML.</p>
<p>Para ver uma lista de codificação de caracteres (<em>charset</em>), acesse: <a href="http://www.w3.org/TR/html401/references.html#ref-CHARSETS">http://www.w3.org/TR/html401/references.html#ref-CHARSETS</a>.</p>
<p>Até a data de escrita desse post, e mesmo sem testar, o Internet Explorer não aceita esse atributo.</p>
<h2>Exemplo de Formulário HTML (<em>&lt;form&gt;</em>)</h2>
<p>Vamos ver um exemplo simples do uso de formulário HTML. O exemplo irá mostrar alguns campos, onde todos devem ser preenchidos para o envio do formulário. Se algum campo não for preenchido, aparece uma mensagem de erro no campo que não foi preenchido.</p>
<p>O nosso arquivo para executar esse código é o <em><strong>contato.php</strong></em>.</p>
<h3>O Arquivo <em>contato.php</em>.</h3>
<p>Nesse arquivo temos o nosso código PHP que processa o fomulário HTML quando ele é enviado.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;?php

$Enviar = $_POST["Enviar"];

if(strlen($Enviar) &gt; 0) { // o formulário foi enviado
	$nome = $_POST["nome"];
	$email = $_POST["email"];
	$telefone = $_POST["telefone"];
	$departamento = $_POST["departamento"];
	$mensagem = $_POST["mensagem"];

	if((strlen($nome) &gt; 0) &amp;&amp; (strlen($email) &gt; 0) &amp;&amp; (strlen($telefone) &gt; 0) &amp;&amp;
		(strlen($departamento) &gt; 0) &amp;&amp; (strlen($mensagem) &gt; 0)) { // todos os dados preenchidos
		print("&lt;strong&gt;Dados do Formulário:&lt;strong&gt;&lt;BR&gt;");
		print("&lt;strong&gt;Nome:&lt;/strong&gt;".$nome."&lt;BR&gt;");
		print("&lt;strong&gt;Email:&lt;/strong&gt;".$email."&lt;BR&gt;");
		print("&lt;strong&gt;Telefone:&lt;/strong&gt;".$telefone."&lt;BR&gt;");
		print("&lt;strong&gt;Departamento:&lt;/strong&gt;".$departamento."&lt;BR&gt;");
		print("&lt;strong&gt;Mensagem:&lt;/strong&gt;".$mensagem."&lt;BR&gt;");
	}
	else { // nem todos os dados preenchidos, voltar para o formulário
		// dizer em msg de erro o que falta no formulário
		if(strlen($nome) == 0)
			$erro_nome = "&lt;span class=\"msg_erro\"&gt;O campo Nome deve ser preenchido&lt;/span&gt;";
		if(strlen($email) == 0)
			$erro_email = "&lt;span class=\"msg_erro\"&gt;O campo Email deve ser preenchido&lt;/span&gt;";
		if(strlen($telefone) == 0)
			$erro_telefone = "&lt;span class=\"msg_erro\"&gt;O campo Telefone deve ser preenchido&lt;/span&gt;";
		if(strlen($departamento) == 0)
			$erro_departamento = "&lt;span class=\"msg_erro\"&gt;O campo Departamento deve ser preenchido&lt;/span&gt;";
		if(strlen($mensagem) == 0)
			$erro_mensagem = "&lt;span class=\"msg_erro\"&gt;O campo Mensagem deve ser preenchido&lt;/span&gt;";

		// colocando o departamento selecionado como selecionado
		$$departamento = "selected=\"true\"";

		require("contatoform.php");
	}
}
else { // o formulário não foi enviado
	require("contatoform.php");
}

?&gt;</pre>
</div>
<p>Onde tem a chamada do array <em><strong>$_POST</strong></em>, pegamos os dados enviados do formulário, pelo método <em>POST</em>. Para pegar os dados enviados pelo método <em>GET</em>, utilizamos o array <strong><em>$_GET</em></strong>. No nosso exemplo, somente enviamos dados pelo método <em>POST</em>, então somente utilizaremos o array <em><strong>$_POST</strong></em>.</p>
<p>No array <em><strong>$_POST</strong></em>, temos todos os nomes  das variáveis que enviamos do formulário, como chaves do array (array associativo), e seus valores como os valores do formulário. Se temos um campo tipo <em>text</em>, com nome <em>&#8220;email&#8221;</em> (<em>name=&#8221;email&#8221;</em>), e enviamos esse formulário pelo método <em>POST</em>, teremos no <em>PHP</em>, o array <strong><em>$_POST["email"]</em></strong> com o valor do que foi escrito no campo email.</p>
<p>No nosso exemplo, se o formulário foi enviado, ele pega todos os valores que foram enviados e testa, para ver se algum está em branco (com número de caracteres igual a zero). Se todos estiverem preenchidos, o programa mostra eles na tela. Se algum não tiver sido preenchido, o programa testa para ver quais não foram preenchidos e seta uma mensagem de erro personalizada para cada campo não preenchido, e volta a mostrar o fomulário.</p>
<p>A linha que faz o campo selecionável (<strong><em>selecbox</em></strong>) ficar como estava quando foi enviado, merece um pouco mais de explicação. A linha é a seguinte: <strong>$$departamento = &#8220;selected=\&#8221;true\&#8221;";</strong>. Ela está simplesmente, colocando na variável com o nome do valor da variável <strong>$departamento</strong>, o valor<strong> &#8220;selected=\&#8221;true\&#8221;"</strong>. Por exemplo, se a minha variável <strong>$departamento</strong> for igual a <strong>&#8220;comercial&#8221;</strong>, depois de executar essa linha, eu terei uma variável <strong>$comercial</strong> com o valor igual a <strong>&#8220;selected=\&#8221;true\&#8221;"</strong>. Isso tudo para, no arquivo <em>HTML</em>, eu poder selecionar automaticamente o que foi estava selecionado no fomulário, no campo de seleção (<strong>selectbox</strong>). Vamos entender isso mais a frente.</p>
<h3>O Arquivo contatoform.php.</h3>
<p>Nesse arquivo tem o nosso formulário em <em>HTML</em> e um pouco de <em>PHP</em> para deixar o formulário mais dinâmico.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /&gt;
	&lt;title&gt;Exemplo de Formulário HTML/PHP&lt;/title&gt;

	&lt;link rel="stylesheet" type="text/css" href="estilo.css" /&gt;

&lt;/head&gt;
&lt;body&gt;

&lt;form name="form_contato" action="contato.php" method="post"&gt;
	&lt;div&gt;Nome: &lt;?php echo($erro_nome); ?&gt;&lt;/div&gt;
	&lt;div&gt;&lt;input name="nome" id="nome" type="text" value="&lt;?php echo($nome); ?&gt;" /&gt;&lt;/div&gt;

	&lt;div&gt;Email: &lt;?php echo($erro_email); ?&gt;&lt;/div&gt;
	&lt;div&gt;&lt;input name="email" id="email" type="text" value="&lt;?php echo($email); ?&gt;" /&gt;&lt;/div&gt;

	&lt;div&gt;Telefone: &lt;?php echo($erro_telefone); ?&gt;&lt;/div&gt;
	&lt;div&gt;&lt;input name="telefone" id="telefone" type="text" value="&lt;?php echo($telefone); ?&gt;" /&gt;&lt;/div&gt;

	&lt;div&gt;Departamento: &lt;?php echo($erro_departamento); ?&gt;&lt;/div&gt;
	&lt;div&gt;
		&lt;select name="departamento" id="departamento"&gt;
			&lt;option value=""&gt;...&lt;/option&gt;
			&lt;option value="comercial" &lt;?php echo($comercial); ?&gt;&gt;comercial&lt;/option&gt;
			&lt;option value="financeiro" &lt;?php echo($financeiro); ?&gt;&gt;financeiro&lt;/option&gt;
			&lt;option value="juridico" &lt;?php echo($juridico); ?&gt;&gt;jurídico&lt;/option&gt;
			&lt;option value="suporte" &lt;?php echo($suporte); ?&gt;&gt;suporte&lt;/option&gt;
		&lt;/select&gt;
	&lt;/div&gt;

	&lt;div&gt;Mensagem: &lt;?php echo($erro_mensagem); ?&gt;&lt;/div&gt;
	&lt;div&gt;&lt;textarea name="mensagem" id="mensagem" rows="5" cols="25"&gt;&lt;?php echo($mensagem); ?&gt;&lt;/textarea&gt;&lt;/div&gt;

	&lt;div&gt;&lt;input name="Enviar" value="Enviar" type="submit" /&gt;&lt;/div&gt;
&lt;/form&gt;

&lt;/body&gt;
&lt;/html&gt;/</pre>
</div>
<p>Esse arquivo simplesmente define 5 campos e um botão de submeter o formulário, sendo que um desses campos é um campo selecionável (<strong>selectbox</strong>).</p>
<p>Todos eles tem no atributo <em>value</em>, um trecho de código em <em>PHP</em>, por isso precisamos que a extensão desse arquivo seja reconhecida como extensão para processamento do <em>PHP</em>. Esse trecho serve para definir no formulário <em>HTML</em>, caso de erro, o que o usuário já tinha escrito antes, porque sem isso o fomulário viria todo em branco novamente, e isso é ruim, pois se eu errei somente uma coisinha no fomulário, e ele voltar em branco, terei que preenche-lo todo novamente.</p>
<p>No caso do <em><strong>selecbox</strong></em>, eu tenho que fazer com que a seleção do usuário volte a aparecer se o formulário der erro, então coloco um trecho <em>PHP</em> exibindo uma variável com o nome do <em>value</em> da opção (<strong>option</strong>) em questão, para no script de processamento, ele tratar isso, como foi explicado no arquivo <strong><em>contato.php</em></strong>.</p>
<p>Podes perceber que tenho várias classes de folha de estilo no documento, e o documento também chama um arquivo de folha de estilo, que eu colocarei somente para mostrar a mensagem de erro em destaque.</p>
<h3>O Arquivo estilo.css</h3>
<p>Esse arquivo é bem simples, abaixo o código:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>.msg_erro {
	color: red;
	font-weight: bold;
}</pre>
</div>
<p>Com essa classe eu destaco as minhas mensagens de erro.</p>
<h2>O Exemplo Pronto</h2>
<p>Você pode ver esse exemplo pronto em <a href="http://www.comocriarsites.com/exemplos/formulariohtmlsimples/">http://www.comocriarsites.com/exemplos/formulariohtmlsimples/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.comocriarsites.com/html/fazendo-formulario-html-como-fazer-fomulario-html-form/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como Funciona os Métodos GET e POST &#8211; Diferenças</title>
		<link>http://www.comocriarsites.com/html/como-funciona-os-metodos-get-e-post-diferencas/</link>
		<comments>http://www.comocriarsites.com/html/como-funciona-os-metodos-get-e-post-diferencas/#comments</comments>
		<pubDate>Tue, 05 May 2009 03:00:06 +0000</pubDate>
		<dc:creator>Raoni Novellino</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[formulario]]></category>
		<category><![CDATA[get]]></category>
		<category><![CDATA[post]]></category>

		<guid isPermaLink="false">http://www.comocriarsites.com/?p=152</guid>
		<description><![CDATA[Quando falamos em como enviar um formulário, vem em mente os métodos GET e POST, esses são os métodos utilizados para enviar um formulário. Mas quando fazemos uma requisição HTTP, nós sempre utilizamos um desses métodos, normalmente o GET.
Se você digita um endereço na barra de endereço seu navegador e aperta a tecla enter (ou [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: xx-large;">Q</span>uando falamos em como enviar um formulário, vem em mente os métodos <em>GET</em> e <em>POST</em>, esses são os métodos utilizados para enviar um formulário. Mas quando fazemos uma requisição <em>HTTP</em>, nós sempre utilizamos um desses métodos, normalmente o <em>GET</em>.</p>
<p>Se você digita um endereço na barra de endereço seu navegador e aperta a tecla <em>enter</em> (ou clica no botão <em>ir</em>), o navegador faz uma requisição <em>HTTP</em> para o servidor do endereço digitado e o método dessa requisição é o <em>GET</em>. Se você clica em um <em>link</em> em um site, o navegador também se encarrega de fazer um requisição <em>HTTP</em> com o método <em>GET</em>, para buscar o conteúdo da página que você clicou.</p>
<h3>Como Funciona o Método <em>GET</em></h3>
<p>O método <em>GET</em> utiliza a própria <em>URI</em> (normalmente chamada de <em>URL</em>) para enviar dados ao servidor, quando enviamos um formulário pelo método <em>GET</em>, o navegador pega as informações do formulário e coloca junto com a <em>URI</em> de onde o formulário vai ser enviado e envia, separando o endereço da <em>URI</em> dos dados do formulário por um &#8220;?&#8221; (ponto de interrogação).</p>
<p>Quando você busca algo no Google, ele faz uma requisição utilizando o método <em>GET</em>, você pode ver na barra de endereço do seu navegador que o endereço ficou com um ponto de interrogação no meio, e depois do ponto de interrogação você pode ler, dentre outros caracteres, o que você pesquisou no Google.</p>
<h3>Quando Utilizar o Método <em>GET</em></h3>
<p>Você deve utilizar o método <em>GET</em> sempre que a requisição que você faz não altere o estado do servidor, tipo uma consulta, uma busca ou qualquer outra coisa que, além de não alterar o estado do servidor, também possa sempre reproduzir os mesmos resultados quando fizer a mesma requisição e for passado os mesmos parâmetros para esta requisição.</p>
<p>Voltando ao exemplo do Google, na ferramenta de busca dele, quando a busca é feita, ele deixa a <em>URI</em> toda na barra de endereço do navegador, você pode, por exemplo, copiar essa <em>URI</em> e mandar para alguém, dizendo para ele acessar o terceiro item da busca, e se esse alguém acessar essa mesma <em>URI</em>, vai achar o mesmo terceiro item que você indicou, quantas vezes for necessário (lógico que de tempos em tempos, o Google atualiza as posições das páginas).</p>
<p>O nome dado ao comportamento de quando você deve utilizar o <em>GET</em> é <em>idempotente</em>, que nada mas é do que já o explicado acima: uma requisição <em>idempotente</em> deve retornar a mesma coisa não importa quantas vezes ela é feita, ou seja, deve ter sempre os mesmos efeitos colaterais, não importando quantas requisições <em>idempotentes</em> são feitas.</p>
<p>Requisição com o método <em>GET</em> pode ter seu retorno <em>cacheados</em> (armazenados em <em>cache</em>), pois não se alteraria o retorno se fizéssemos uma mesma requisição <em>GET</em>. Isso pode causar um erro comum, que se você precisar sempre que as requisições <em>GET</em> cheguem ao servidor, elas podem não chegar sempre que uma requisição é feita, pois se estiver no <em>cache</em> de algum <em>proxy</em> ou do seu navegador, o retorno pode vir antes de chegar no servidor. Se você precisa que uma requisição chegue sempre no servidor, não utilize <em>GET</em>.</p>
<p>O método <em>GET</em> ainda pode ter limitações quanto ao tamanho dos dados a serem enviados e também ao que pode ser enviado. Quanto ao tamanho, pode-se ter uma restrição ao tamanho da <em>URI</em> que pode ser enviada em um requisição, e se seus dados ultrapassarem esse tamanho, provavelmente ocorrerá um erro, ou seus dados vão ser passados incompletos.</p>
<p>Quanto ao que pode ser enviado, como os dados vão ser enviados pela URI, só poderão ser enviados caracteres aceitos na <em>URI</em>, se você quer enviar dados binários (como arquivo, imagens e outros), não poderá usar <em>GET</em>.</p>
<h3>Como Funciona o Método <em>POST</em></h3>
<p>O método <em>POST</em> envia os dados colocando-os no corpo da mensagem. Ele deixa a <em>URI</em> separada dos dados que serão enviados e com isso podemos enviar qualquer tipo de dados por esse método. Quando você faz um registro em um formulário e depois de enviar a <em>URI</em> não tem o ponto de interrogação separando os dados que você digitou, provavelmente o formulário foi enviado pelo método <em>POST</em>.</p>
<h3>Quando Utilizar o Método <em>POST</em></h3>
<p>Utilizamos o método <em>POST</em> sempre que vamos alterar alguma coisa no servidor, ou sempre que queremos enviar dados que não podem ser enviados pelo método <em>GET</em>, como arquivos. Esse método é utilizado em formulário de cadastro e registro de usuários, envio de dados para alteração do sistema, cadastro de dados em sistemas de sites e outros.</p>
<p>O retorno de uma requisição com método <em>POST</em> normalmente não deve ser <em>cacheada</em> (armazenada em <em>cache</em>) então se você quiser que uma requisição sempre chegue ao servidor quando ela for feita, utilize <em>POST</em>.</p>
<p>A diferença é simples, sempre que for buscar ou apenas consultar alguma coisa, utilize <em>GET</em> e se for fazer alguma alteração com a requisição, envio de arquivo ou os dados forem muitos, utilize <em>POST</em>.</p>
<h3>Diferenças no Lado do Servidor entre <em>GET</em> e <em>POST</em> (<em>PHP</em>, <em>CGI</em>)</h3>
<p>Enviar dados pelo método <em>GET</em> e <em>POST</em> é diferente, então, o servidor pega esses dados de diferentes maneiras.</p>
<p>No <em>PHP</em>, quando enviamos dados pelo método <em>GET</em>, ele cria um array identificado por <em>$_GET</em>, que contém todos os dados enviados por esse método. Quando enviamos os dados pelo método <em>POST</em>, o <em>PHP</em> cria um array identificado por <em>$_POST</em>, também com todos os dados enviados por esse método.</p>
<p>Já em um script <em>CGI</em>, quando utilizamos o método <em>GET</em>, os dados são recebido em uma variável de ambiente, e com o método <em>POST</em>, os dados são recebidos pela entrada padrão (<em>stdin</em>).</p>
<p>Links interessantes sobre <em>GET</em> e <em>POST</em>:</p>
<p>- <a title="Methods GET and POST in HTML forms - what's the difference?" href="http://www.cs.tut.fi/~jkorpela/forms/methods.html">Methods GET and POST in HTML forms &#8211; what&#8217;s the difference?</a><br />
- <a title="Hypertext Transfer Protocol -- HTTP/1.1 - 9 Method Definitions" href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html">Hypertext Transfer Protocol &#8212; HTTP/1.1 &#8211; 9 Method Definitions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.comocriarsites.com/html/como-funciona-os-metodos-get-e-post-diferencas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Definindo um Layout de Website sem Tabelas (Tableless)</title>
		<link>http://www.comocriarsites.com/html/definindo-um-layout-de-website-sem-tabelas-tableless/</link>
		<comments>http://www.comocriarsites.com/html/definindo-um-layout-de-website-sem-tabelas-tableless/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 01:30:39 +0000</pubDate>
		<dc:creator>Raoni Novellino</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[como criar site]]></category>
		<category><![CDATA[como fazer site]]></category>
		<category><![CDATA[criar site de graça]]></category>
		<category><![CDATA[criar site div]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[fazer site de graça]]></category>
		<category><![CDATA[gratis]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.comocriarsites.com/?p=137</guid>
		<description><![CDATA[Vou apresentar nesse post como fazer o código do layout de um website sem utilizar tabelas (tableless), e utilizando muito &#60;div&#62;. Para continuar lendo esse post, você deve estar familiarizado com CSS (folha de estilos ou cascading style sheets) e com alguns estilos, principalmente com o estilo float.
Para um bom entendimento de como utilizar CSS, [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: xx-large;">V</span>ou apresentar nesse post como fazer o código do <em>layout</em> de um website sem utilizar tabelas (<em>tableless</em>), e utilizando muito <strong><em>&lt;div&gt;</em></strong>. Para continuar lendo esse post, você deve estar familiarizado com CSS (folha de estilos ou <em>cascading style sheets</em>) e com alguns estilos, principalmente com o estilo <em>float</em>.</p>
<p>Para um bom entendimento de como utilizar CSS, acesse <a title="Entendendo CSS (folhas de estilo): Cascading Style Sheet - Parte 1" href="http://www.comocriarsites.com/html-css/entendendo-css-folhas-de-estilo-cascading-style-sheet-parte-1/">Entendendo CSS (folhas de estilo): Cascading Style Sheet &#8211; Parte 1</a> e <a title="Entendendo CSS (folhas de estilo): Cascading Style Sheet - Parte 2" href="http://www.comocriarsites.com/html-css/entendendo-css-folhas-de-estilo-cascading-style-sheet-parte-2/">Entendendo CSS (folhas de estilo): Cascading Style Sheet &#8211; Parte 2</a>.</p>
<p>Para saber utilizar o estilo <em>float</em>, acesse <a title="Estilo Float (CSS Style Float)" href="http://www.comocriarsites.com/html-css/estilo-float-css-style-float/">Estilo Float (CSS Style Float)</a>.</p>
<p>Sabendo um pouco de CSS, vamos focalizar agora no que vai fazer o nosso <em>layout</em>, o <em><strong>&lt;div&gt;</strong></em>. Eu posso encaixar vários <em><strong>divs</strong></em> em um documento, dando estilos diferentes a eles, formando um <em>layout</em> agradável. Aqui vou abordar um <em>layout</em> normalmente utilizado, que é com um topo, um corpo e um rodapé, sendo o corpo dividido em 3 partes, uma barra de menu a esquerda, um espaço para conteúdo e uma barra lateral a direita.</p>
<p>Vamos ao código de exemplo, e se você quer vê-lo funcionando, acesse <a title="Exemplo Estrutura de Site Tableless" href="http://www.comocriarsites.com/exemplos/site_tableless/estrutura_site_tableless.html">Exemplo Estrutura de Site Tableless</a>.</p>
<p>Vou colocar o código por partes para melhor explica-lo, e no final do post está o código completo de como fazer o site com <em><strong>div</strong></em> e sem tabela (tableless).</p>
<h3>O Cabeçalho (<strong><em>&lt;head&gt;</em></strong>)</h3>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-type" content="text/html;charset=ISO-8859-1" /&gt;
&lt;title&gt;Exemplo Estrutura de Site Tableless&lt;/title&gt;

&lt;link rel="stylesheet" type="text/css" href="estilo.css" /&gt;

&lt;/head&gt;</pre>
</div>
<p>A primeira linha do seu código sempre que for fazer um site, tem que ser a definição do <em><strong>DOCTYPE</strong></em>, que diz aos navegadores como deve ser tratado o seu código, e para saber mais sobre o <em><strong>DOCTYPE</strong></em> (DTD &#8211; Document Type Definition), acesse <a title="O que é e para que serve o DOCTYPE ou DTD (Document Type Definition)" href="http://www.comocriarsites.com/html/o-que-e-e-para-que-serve-o-doctype-ou-dtd-document-type-definition/">O que é e para que serve o DOCTYPE ou DTD (Document Type Definition)</a>.</p>
<p>O atributo <em>xmlns</em> da tag <strong><em>&lt;html&gt;</em></strong> serve para ficar nos padrões de um documento XHTML, esse atributo serve para definir o <em>namespace</em> que o documento utilizará. Esse valor que está no exemplo é o valor padrão.</p>
<p>Já dentro do cabeçalho do site (<em><strong>&lt;head&gt;</strong></em>), devemos dizer aos navegadores que tipo de codificação de texto estamos utilizando, isso se faz com a tag <strong><em>&lt;meta&gt;</em></strong>, como definido do exemplo, diz que o texto do documento está com a codificação <em>ISO-8859-1</em>, que é o padrão para nossa língua portuguesa, mas existe uma codificação padrão mundial que é o famoso <em>UNICODE</em> (<em>UTF-8</em>). Se seu documento estiver escrito em um tipo de código e sua tag <em><strong>&lt;meta&gt;</strong></em> de definição de conteúdo estiver dizendo que está em outro, o navegador poderá exibir caracteres estranhos.</p>
<p>A próxima tag interessante é a <em><strong>&lt;link&gt;</strong></em>, que serve para adicionar algum conteúdo externo ao documento, comumente utilizada para adicionar um arquivo de folha de estilos (CSS &#8211; Cascading Style Sheet) a um documento, como feito no exemplo. A tag <em><strong>&lt;link&gt;</strong></em> adiciona no documento a folha de estilos do arquivo <em><strong>estilo.css</strong></em>.</p>
<p>Para fazer um site, você deve ter em mente sempre como o navegador vai vizualizar o site, então quando for criar o site, defina seu <em>DTD &#8211; Document Type Definition</em> sempre e também defina sempre na criação do seu site, o código de caracteres a ser utilizado (como<em> UTF-8</em> e <em>ISO-8859-1</em>).</p>
<h3>A Folha de Estilos do Site (<em>CSS &#8211; Cascading Style Sheet</em>)</h3>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>body {
	margin:0px;
	background-color: #cccccc;
	font-family:"Trebuchet MS", Tahoma, Arial, Verdana;
	font-size:12px;
	color:#000;
}

#todo {
	position: relative;
	width: 750px;
	border: 1px solid black;
	margin:0px auto;
	background-color: white;
}

#topo {
	position: relative;
	width: 746px;
	height: 100px;
	border: 2px solid red;
}

#meio {
	position: relative;
	width: 750px;
	min-height: 400px;
	background-color: #eeeeee;
}

#rodape {
	width: 746px;
	height: 75px;
	border: 2px solid brown;
}

#esquerda {
	float: left;
	width: 150px;
	min-height: 400px;
	border: 2px solid green;
}

#miolo {
	float: left;
	width: 438px;
	min-height: 400px;
	border: 2px solid blue;
}

#direita {
	float: right;
	width: 150px;
	min-height: 400px;
	border: 2px solid yellow;
}

#menu {
	width: 150px;
	height: 400px;
}

.itemMenu {
	width: 140px;
	height: 21px;
	background-color: lightyellow;
	padding: 3px 0px 0px 10px;
	border-bottom: 1px solid black;
}

#logo {
	float: left;
	width: 200px;
	height: 100px;
	text-align: center;
	background-color: #cccccc;
	margin-right: 20px;
}

.secao_miolo {
	width: 428px;
	height: 150px;
	text-align: center;
	background-color: #cccccc;
	margin: 2px 5px 4px 5px;
}

.secao_direita {
	width: 140px;
	height: 100px;
	text-align: center;
	background-color: #cccccc;
	margin: 4px 5px 4px 5px;
}

#rodape_direita {
	float: right;
	width: 200px;
	text-align: right;
	margin: 5px 10px 0px 0px
}

#rodape_direita a{color: #cc6600; text-decoration: none;}
#rodape_direita a:hover{color: #cc6600; text-decoration: underline;}</pre>
</div>
<p>Os estilos do seu site devem ser todos definidos nesse arquivo, ou você pode separar os arquivos por parte do site, por exemplo, eu tenho um arquivo para o estilo do site todo, mas do banner e do menu (<em><a title="Fazendo um Menu com MouseOver e MouseOut (Menu RollOver)" href="http://www.comocriarsites.com/html/fazendo-um-menu-com-mouseover-e-mouseout-menu-rollover/">rollover</a></em> ou popup), que já tenho prontos e bem definidos, eu coloco em outro arquivo, como se fosse modularizar o código, se não quero o banner, só retiro os arquivos do banner, se não quero o menu, só retiro os arquivos do menu, e assim podemos fazer com outras partes do site.</p>
<p>Explicando rapidamente, o elemento com o identificador <em>todo</em>, vai ser o elemento pai de todos os outros elementos do conteúdo do site, ele vai definir o tamanho do site e alguns estilos do site, como no exemplo, a cor de fundo do site (<em>background</em>). O elemento com o identificador <em>todo</em>, vai ser dividido verticalmente em 3 partes, o <em>topo</em>, o <em>meio</em> e o <em>rodape</em>.</p>
<p>Nesse exemplo eu coloco bordas e cor de fundo nos elementos para demonstrar onde eles estão e o tamanho deles. As partes verticais do site, tem a mesma largura, que é a largura total do site. O elemento com identificador <em>meio</em> vai ser dividido em 3 partes horizontais: <em>esquerda</em>, <em>miolo</em> e <em>direita</em>.</p>
<p>Normalmente na esquerda fica o menu do site (se o site tiver menu), se você quiser um menu horizontal, normalmente ficaria na parte de baixo do <em>topo</em>, ou logo abaixo do <em>topo</em>, em um outro <strong><em>&lt;div&gt;</em></strong>. Fazer os ajustes para o seu site ficar com um menu diferente é fácil, coloque outro <em><strong>&lt;div&gt;</strong></em>, coloque alguns estilos nele e pronto. Ainda na parte esquerda, colocamos o estilo <em>float: left</em>, pois queremos que essa parte fique na esquerda, e a próxima parte fique a direita dela.</p>
<p>O <em>miolo</em> do site também fica com o estilo <em>float: left</em>, pois queremos que ele fique a esquerda da próxima parte que iremos colocar. Como ele vem depois do <strong><em>&lt;div&gt;</em></strong> da esquerda, o <em>miolo</em> ficará colado a direita deste.</p>
<p>A parte da direita do site fica com o estilo <em>float: right</em>, para ficar a direita e os outros elemento a esquerda dele.</p>
<p>Uma parte da nossa folha de estilos que é bem interessante são as últimas duas linhas, elas dizem que qualquer tag <em><strong>&lt;a&gt;</strong></em>, dentro do elemento com o identificador <em>rodape_direita</em>, deve ter esses estilos atribuídos a elas. Isso é bem útil quando tenho em diferentes partes do meu site, diferentes estilos da mesma tag.</p>
<p>Para saber mais sobre a tag <em><strong>&lt;a&gt;</strong></em>, acesse <a title="A Tag &lt;a&gt; - Fazendo Link (Hyperlink)" href="http://www.comocriarsites.com/html/a-tag-a-fazendo-link-hyperlink/">A Tag &lt;a&gt; &#8211; Fazendo Link (Hyperlink)</a>.</p>
<h3>O Código HTML do Site sem Tabelas (com <em><strong>&lt;div&gt;</strong></em> &#8211; Tableless)</h3>
<p>Vamos colocar o site por partes, primeiro o topo, depois o meio e por fim o rodapé. Abaixo o código do topo.</p>
<h4>O Topo</h4>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;body&gt;

&lt;div id="todo"&gt;
	&lt;div id="topo"&gt;
		&lt;div id="logo"&gt;Logo&lt;/div&gt;
		Aqui pode ser uma imagem de background e um texto.
	&lt;/div&gt;</pre>
</div>
<p>No corpo do documento temos um elemento <em><strong>&lt;div&gt;</strong></em> que vai englobar todo o nosso site. Esse elemento <em><strong>&lt;div&gt;</strong></em> está ai para definir a largura e altura do site, qualquer tipo de fundo (cores e imagens) e o alinhamento do site no navegador. Colocamos o identificador <em>todo</em> nesse <em><strong>&lt;div&gt;</strong></em>. Sempre que for fazer um site, defina bem a largura do site, pois se a largura for variável, o conteúdo do site pode &#8220;quebrar&#8221; o layout, fazendo o site ficar diferente do planejado.</p>
<p>O primeiro elemento dentro do nosso <em><strong>&lt;div&gt;</strong></em> <em>todo</em>, é um <em><strong>&lt;div&gt;</strong></em> que ficará responsável pela parte de cima do site, onde podemos colocar o nome do site, um logo do site e mais coisas como propagandas e até mesmo o menu do site (se o menu for horizontal). Esse <em><strong>&lt;div&gt;</strong></em> identificamos por <em>topo</em>. Normalmente ele ocupa a parte de cima inteira do site, com a mesma largura do <em><strong>&lt;div&gt;</strong></em> <em>todo</em>. A altura é variável, depende muito do que queremos colocar no topo. Uma dica é, não colocar a altura do <em>topo</em> muita, pois poderá esconder muitas partes do conteúdo do site, que ficará logo abaixo, mas também não colocar a altura pouca, pois se for um site de empresa, a logo, o título ou o nome do site tem que serbem visualizado.</p>
<h4>O Meio</h4>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>	&lt;div id="meio"&gt;
		&lt;div id="esquerda"&gt;
			&lt;div id="menu"&gt;
				&lt;div class="itemMenu"&gt;Principal&lt;/div&gt;
				&lt;div class="itemMenu"&gt;Empresa&lt;/div&gt;
				&lt;div class="itemMenu"&gt;Produtos&lt;/div&gt;
				&lt;div class="itemMenu"&gt;Serviços&lt;/div&gt;
				&lt;div class="itemMenu"&gt;Contato&lt;/div&gt;
			&lt;/div&gt;
		&lt;/div&gt;

		&lt;div id="miolo"&gt;
			&lt;div class="secao_miolo"&gt;Seção 1&lt;/div&gt;
			&lt;div class="secao_miolo"&gt;Seção 2&lt;/div&gt;
			&lt;div class="secao_miolo"&gt;Seção 3&lt;/div&gt;
		&lt;/div&gt;

		&lt;div id="direita"&gt;
			&lt;div class="secao_direita"&gt;Seção 1&lt;/div&gt;
			&lt;div class="secao_direita"&gt;Seção 2&lt;/div&gt;
			&lt;div class="secao_direita"&gt;Seção 3&lt;/div&gt;
		&lt;/div&gt;
		&lt;div style="clear: both;"&gt;&lt;/div&gt;
	&lt;/div&gt;</pre>
</div>
<p>Logo após o <em>topo</em>, colocamos um <strong><em>&lt;div&gt;</em></strong> identificado por <em>meio</em>. Nesse meio teremos o conteúdo do nosso site. No exemplo, dividimos o meio em três partes, horizontalmente. A primeira parte, mais a esquerda, colocamos um menu.</p>
<p>Na parte do meio colocamos algumas seções que o site pode ter, tipo algumas notícias na página principal, ou chamadas para artigos e outros. Nessa parte fica o conteúdo do nosso site, quando clicar em um item do menu, só é necessário mudar essa parte do site, e se necessário ou quiser, mudar também a terceira parte do <em>meio</em>, a parte da direita.</p>
<p>Na parte da direita podemos colocar algumas seções do site mais importantes, para dar melhor destque a elas, ou podemos colocar propagandas de todos os tipos, ou informações fixas que se quer ter em todas as seções do site.</p>
<p>Como essas partes do site requerem o estilo <em>float</em>, colocamos um <em><strong>&lt;div&gt;</strong></em> na penúltima linha com o estilo <em>clear</em>, para corrigir o problema de ajuste de altura. Esse jeito de corrigir pode não ser o mais elegante, mas foi o que eu achei mais fácil de fazer e sem problemas de fazer.</p>
<h4>O Rodapé</h4>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>	&lt;div id="rodape"&gt;
		&lt;div id="rodape_direita"&gt;
			Av. xxx yyy zzz, No 765&lt;br/&gt;
			Manaus - AM - CEP: 89000-000&lt;br/&gt;
			Email: &lt;a href="mailto:seuemail@seudominio.com.br"&gt;seuemail@seudominio.com.br&lt;/a&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>Na parte de baixo do site, temos normalmente um rodapé, que diz quem fez o site, algumas informações sobre contatos da empresa do site, tipo endereço, email, telefones e outros. Nós colocamos um <em><strong>&lt;div&gt; </strong></em>com o identificador <em>rodape</em> para fazer o rodapé do site. No exemplo coloquei um outro <em><strong>&lt;div&gt;</strong></em> dentro do <em>rodape</em>, para fazer ele ficar a direita com alguns dados de contato do site.</p>
<h3>O Código Inteiro do Site em <em><strong>&lt;div&gt;</strong></em> &#8211; Tableless</h3>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-type" content="text/html;charset=ISO-8859-1" /&gt;
&lt;title&gt;Exemplo Estrutura de Site Tableless&lt;/title&gt;

&lt;link rel="stylesheet" type="text/css" href="estilo.css" /&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;div id="todo"&gt;
	&lt;div id="topo"&gt;
		&lt;div id="logo"&gt;Logo&lt;/div&gt;
		Aqui pode ser uma imagem de background e um texto.
	&lt;/div&gt;

	&lt;div id="meio"&gt;
		&lt;div id="esquerda"&gt;
			&lt;div id="menu"&gt;
				&lt;div class="itemMenu"&gt;Principal&lt;/div&gt;
				&lt;div class="itemMenu"&gt;Empresa&lt;/div&gt;
				&lt;div class="itemMenu"&gt;Produtos&lt;/div&gt;
				&lt;div class="itemMenu"&gt;Serviços&lt;/div&gt;
				&lt;div class="itemMenu"&gt;Contato&lt;/div&gt;
			&lt;/div&gt;
		&lt;/div&gt;

		&lt;div id="miolo"&gt;
			&lt;div class="secao_miolo"&gt;Seção 1&lt;/div&gt;
			&lt;div class="secao_miolo"&gt;Seção 2&lt;/div&gt;
			&lt;div class="secao_miolo"&gt;Seção 3&lt;/div&gt;
		&lt;/div&gt;

		&lt;div id="direita"&gt;
			&lt;div class="secao_direita"&gt;Seção 1&lt;/div&gt;
			&lt;div class="secao_direita"&gt;Seção 2&lt;/div&gt;
			&lt;div class="secao_direita"&gt;Seção 3&lt;/div&gt;
		&lt;/div&gt;
		&lt;div style="clear: both;"&gt;&lt;/div&gt;
	&lt;/div&gt;

	&lt;div id="rodape"&gt;
		&lt;div id="rodape_direita"&gt;
			Av. xxx yyy zzz, No 765&lt;br/&gt;
			Manaus - AM - CEP: 89000-000&lt;br/&gt;
			Email: &lt;a href="mailto:seuemail@seudominio.com.br"&gt;seuemail@seudominio.com.br&lt;/a&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>Não esqueca do arquivo de folha de estilo (CSS), e ajustar o nome dele ao nome colocado na tag <em><strong>&lt;link&gt;</strong></em> do cabeçalho do site.</p>
<p>Agora já podemos fazer várias modificações para o site ficar visualmente atrativo e também já sabemos como fazer um site em <em><strong>&lt;div&gt;</strong></em> de graça (grátis).</p>
<p>Se você quiser um site ou hospedagem profissional, acesse <a title="site hospedagem profissional" href="http://www.panasoft.com.br">Panasoft</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.comocriarsites.com/html/definindo-um-layout-de-website-sem-tabelas-tableless/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A Tag &lt;a&gt; &#8211; Fazendo Link (Hyperlink)</title>
		<link>http://www.comocriarsites.com/html/a-tag-a-fazendo-link-hyperlink/</link>
		<comments>http://www.comocriarsites.com/html/a-tag-a-fazendo-link-hyperlink/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 23:03:45 +0000</pubDate>
		<dc:creator>Raoni Novellino</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[href]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[target]]></category>

		<guid isPermaLink="false">http://www.comocriarsites.com/?p=143</guid>
		<description><![CDATA[O link (ligação) é uma parte vital para o funcionamento da internet, ele conecta uma página a outra, e podemos acessar uma página com apenas um clique. Nesse post vou explicar como fazer um link de uma página a outra, de uma página para ela mesma e explicar alguns atributos da tag &#60;a&#62;.
A tag &#60;a&#62; [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: xx-large;">O</span> link (ligação) é uma parte vital para o funcionamento da internet, ele conecta uma página a outra, e podemos acessar uma página com apenas um clique. Nesse post vou explicar como fazer um link de uma página a outra, de uma página para ela mesma e explicar alguns atributos da tag <em><strong>&lt;a&gt;</strong></em>.</p>
<p>A tag <em><strong>&lt;a&gt;</strong></em> é a tag utilizada para criar um link em uma página, o nome da tag é a inicial de <em>anchor</em> (âncora), que é o termo utilizado na maioria da literatura. Para criar um link para esse site, utilizamos a tag <em><strong>&lt;a&gt;</strong></em> como a seguir:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;a href="http://www.comocriarsites.com" title="o melhor blog de como criar sites"&gt;Como Criar Sites&lt;/a&gt;</pre>
</div>
<p>E o resultado dessa linha é:</p>
<p><a title="o melhor blog de como criar sites" href="http://www.comocriarsites.com">Como Criar Sites</a></p>
<h3>Atributos de Link &#8211; Tag <em><strong>&lt;a&gt;</strong></em> (<em>href</em> &#8211; Hypertext Reference, <em>title</em> e <em>target</em>)</h3>
<p>O atributo que diz para onde o link aponta (para onde o usuário vai quando o link é clicado), é o <em>href</em>. O valor do atributo <em>href</em> é o endereço do site ao qual o link aponta.Você pode ver isso no exemplo acima, onde esse blog é para onde o link aponta, logo o endereço dele é o valor do atributo <em>href</em> do link. Mais abaixo veremos que podemos ter outros valores no atributo <em>href</em>.</p>
<p>Você pode colocar o atributo <em>title</em> da tag <em><strong>&lt;a&gt;</strong></em> para fazer o efeito de aparecer o valor desse atributo quando o mouse ficar em cima do link, dando uma descrição do destino do link para o usuário. No exemplo acima também colocamos o atributo <em>title</em>, e o valor dele é a descrição do site. Se você parar o mouse em cima do link de exemplo acima, ele mostrará o valor do atributo <em>title</em>. O atributo <em>title</em> também serve para outro propósito, que é para as máquinas de buscas saberem do que se trata o destino do link, podendo dar algum tipo de tratamento para essa descrição, como palavras chaves para a máquina de busca indexar melhor o site destino do link.</p>
<p>O atributo <em>target</em> define um alvo para o link ser aberto. Um alvo pode ser uma janela (nova ou já aberta) ou um frame (nas versões mais recentes de sites, frames não são mais utilizados). Para abrir o link em uma nova janela, utilize como valor do atributo <em>target</em>, o <em>_blank</em>.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;a href="http://www.comocriarsites.com" target="_blank"&gt;Como Criar Sites&lt;/a&gt;</pre>
</div>
<p>O atributo <em>target</em> não é mais padrão, segundo as normal da <a title="World Wide Web Consortium - Web Standards" href="http://www.w3.org/">W3C</a> no padrão <em>strict</em>. No padrão <em>transitional</em> ainda é permitido o seu uso. Para saber um pouco mais sobre os padrões e como coloca-los no seu site, acesse <a title="O que é e para que serve o DOCTYPE ou DTD (Document Type Definition)" href="http://www.comocriarsites.com/html/o-que-e-e-para-que-serve-o-doctype-ou-dtd-document-type-definition/">O que é e para que serve o DOCTYPE ou DTD (Document Type Definition)</a>.</p>
<h3>Link Estático e Dinâmico</h3>
<p>O que chamamos de link estático é o link que tem no seu atributo <em>href</em> o endereço completo do site destino. Os exemplos acima tem essa característica, o endereço completo. Para ligar (linkar) páginas que estejam no mesmo domínio, podemos fazer referência dinâmica, e chamamos de link dinâmico. O link dinâmico conta como início o diretório que a página que possui o link está, e para referenciar outra página no mesmo diretório, podemos colocar somente o nome da outra página no atributo <em>href</em>.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;a href="pagina2.html"&gt;página no mesmo diretório&lt;/a&gt;</pre>
</div>
<p>No exemplo acima, estamos <em>linkando</em> (ligando) a <em>página2.html</em> da nossa página, que tem que estar no mesmo diretório.</p>
<p>Nós podemos chamar páginas que estão em diretórios distintos, acima ou abaixo. Para fazer um link dinâmico de uma página que está no diretório <em>exemplo</em>, a uma página que está no diretório <em>exemplo/teste</em>, fazemos:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;a href="teste/pagina2.html"&gt;página em um diretório abaixo&lt;/a&gt;</pre>
</div>
<p>Para fazer um link dinâmico de uma página que está no diretório <em>exemplo/teste</em>, a uma página que está no diretório <em>exemplo</em>, fazemos:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;a href="../pagina2.html"&gt;página em um diretório acima&lt;/a&gt;</pre>
</div>
<p>Nós podemos também fazer combinações de páginas acima e abaixo, como acessar uma página que está em um outro diretório no mesmo nível que o diretório atual:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;a href="../teste2/pagina2.html"&gt;página em outro diretório do mesmo nível&lt;/a&gt;</pre>
</div>
<h3>Link com Texto e com Imagens</h3>
<p>Nos exemplos acima nós vimos vários links, mas todos eles sempre estão com um texto para ser clicado, mas um link pode ser uma imagem também. Para um link ser imagem, nós temos que simplesmente colocar uma imagem dentro da tag <em><strong>&lt;a&gt;</strong></em>.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;a href="http://www.comocriarsites.com"&gt;&lt;img src="img/imagem_teste.png" border="0"&gt;&lt;/a&gt;</pre>
</div>
<p>O exemplo acima mostra como colocar um link com imagem. Podemos notar que dentro da tag <em><strong>&lt;img&gt;</strong></em> colocamos o atributo <em>border=&#8221;0&#8243;</em>, isso é porque por padrão, quando uma imagem é colocada como link, ela exibe uma borda, e com esse atributo fica somente a imagem normal.</p>
<h3>Link para a mesma Página</h3>
<p>Um link pode ter o seu destino na mesma página que está sendo exibida no navegador, ou indicar um certo ponto em uma outra página. Para fazer isso temos que identificar o ponto ao qual queremos que o link aponte e coloque o identificador desse ponto no atributo <em>href</em> do nosso link. Vamos ao exemplo:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;h2 id="indice"&gt;Índice&lt;/h2&gt;

&lt;a href="#topico1"&gt;Tópico 1&lt;/a&gt;&lt;br&gt;
&lt;a href="#topico2"&gt;Tópico 2&lt;/a&gt;&lt;br&gt;
&lt;a href="#topico3"&gt;Tópico 3&lt;/a&gt;&lt;br&gt;
&lt;a href="#topico4"&gt;Tópico 4&lt;/a&gt;&lt;br&gt;
&lt;a href="#topico5"&gt;Tópico 5&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;h2 id="topico1"&gt;Tópico 1&lt;/h2&gt;
...
&lt;a href="#indice"&gt;Voltar ao Índice&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
&lt;h2 id="topico2"&gt;Tópico 2&lt;/h2&gt;
...
&lt;a href="#indice"&gt;Voltar ao Índice&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
&lt;h2 id="topico3"&gt;Tópico 3&lt;/h2&gt;
...
&lt;a href="#indice"&gt;Voltar ao Índice&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
&lt;h2 id="topico4"&gt;Tópico 4&lt;/h2&gt;
...
&lt;a href="#indice"&gt;Voltar ao Índice&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
&lt;h2 id="topico5"&gt;Tópico 5&lt;/h2&gt;
...
&lt;a href="#indice"&gt;Voltar ao Índice&lt;/a&gt;</pre>
</div>
<p>Para ver esse exemplo funcionando acesse <a title="Exemplo de Links Internos como Índice" href="http://www.comocriarsites.com/exemplos/link/link_indice.html">Exemplo de Links Internos como Índice</a>.</p>
<p>Nesse exemplo criamos um índice para a nossa página, e quando o usuário clicar nos itens do índice, ele vai ser levado direto para os tópicos correspondentes. Não tem muitos segredos aqui, somente que cada tópico vai ter um identificador único, que pode ser qualquer nome, ou o nome do tópico para melhor representar, e o atributo<em> href</em> dos links tem os identificadores com um jogo da velha na frente, como valor.</p>
<p>Pode notar no exemplo também que após cada tópico tem outro link para retornar ao índice, para melhorar a navegação do usuário.</p>
<p>No nosso exemplo funcionando, também há links para outra página, com identificador de onde quer que seja mostrado essa outra página. Isso também é simples, basta colocar no atributo <em>href</em> o endereço da página a ser acessada, seguido de jogo da velha e o identificador da parte onde se quer mostrar.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;a href="outra_pagina.html#topico1"&gt;Tópico 1 na outra página&lt;/a&gt;</pre>
</div>
<h3>Link para Arquivo</h3>
<p>Um link também pode ser apontado para um arquivo, na verdade ele é sempre apontado para um arquivo, só que quando esse arquivo é uma página da web, nós dizemos que o link aponta para um página, mas podemos facilmente fazer um link para um arquivo, só precisamos colocar no atributo <em>href</em> da tag <em><strong>&lt;a&gt;</strong></em> o endereço do arquivo.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;a href="http://www.comocriarsites.com/arquivos/backup.zip"&gt;Download Arquivo&lt;/a&gt;</pre>
</div>
<p>No exemplo acima estamos fazendo um link para um arquivo .zip (zipado). Ao clicar no link o usuário vai ter a opção de abrir o arquivo ou salvar o arquivo.</p>
<h3>Link para Email</h3>
<p>Um outro tipo de link é o link para email, esse não é um modo elegante de fazer o usuário enviar email para o dono do site ou o administrador, mas na falta de algum script para envio de email por formulário esse resolve.</p>
<p>Para fazer um link para email, nós colocamos a palavra <em>mailto</em>, seguido de dois pontos (:), seguido do email ao qual vai ser enviado a mensagem, caso o usuário clique.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;a href="mailto:gerente@comocriarsites.com"&gt;Envie um email para mim&lt;/a&gt;</pre>
</div>
<p>No exemplo acima, ao clicar no link, vai abrir o gerenciador de email padrão do usuário (Thunder Bird, Outlook, &#8230;) já com o email para ser enviado, só precisando o usuário digitar a mensagem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.comocriarsites.com/html/a-tag-a-fazendo-link-hyperlink/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O que é e para que serve o DOCTYPE ou DTD (Document Type Definition)</title>
		<link>http://www.comocriarsites.com/html/o-que-e-e-para-que-serve-o-doctype-ou-dtd-document-type-definition/</link>
		<comments>http://www.comocriarsites.com/html/o-que-e-e-para-que-serve-o-doctype-ou-dtd-document-type-definition/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 23:24:22 +0000</pubDate>
		<dc:creator>Raoni Novellino</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[doctype]]></category>
		<category><![CDATA[document type]]></category>
		<category><![CDATA[dtd]]></category>
		<category><![CDATA[frameset]]></category>
		<category><![CDATA[strict]]></category>
		<category><![CDATA[transitional]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.comocriarsites.com/?p=135</guid>
		<description><![CDATA[Com o passar do tempo os padrões da web foram mudando, e sem enrolar muito no assunto, foi preciso criar padrões compatíveis com os diversos dispositivos que hoje acessam a web ao mesmo tempo que precisava ter uma linguagem de marcação (como o HTML), que poderia ser bem poderosa no sentido de ter flexibilidade par [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: xx-large;">C</span>om o passar do tempo os padrões da web foram mudando, e sem enrolar muito no assunto, foi preciso criar padrões compatíveis com os diversos dispositivos que hoje acessam a web ao mesmo tempo que precisava ter uma linguagem de marcação (como o HTML), que poderia ser bem poderosa no sentido de ter flexibilidade par fazer várias coisas (ser bem ampla). Desse processo todo surgiu o XHTML, que é uma junção do HTML e o XML (eXtensible Markup Language).</p>
<p>Ainda utilizamos muito o HTML, muitas páginas o tem como linguagem, mas a web está sendo construida hoje com o XHTML. Ai surge a pergunta: Mas como o meu navegador vai saber com qual linguagem a página que ele está acessando foi construída? E nesse ponto entra o <em>DOCTYPE</em>.</p>
<p>O <em>DOCTYPE</em> serve para dizer aos visitantes da página com qual tipo de linguagem padrão a página foi construída. Hoje temos básicamente 6 tipos que são considerados os principais:</p>
<h4><em>DOCTYPE HTML 4.01 Strict</em></h4>
<p>Esse padrão se refere a paginas feita em HTML no modo <em>strict</em>. Esse seria o modo correto de fazer as páginas utilizando o HTML, ele não possui elementos de apresentação (<em><strong>&lt;b&gt;</strong></em>, <em><strong>&lt;center&gt;</strong></em>, <strong><em>&lt;i&gt;</em></strong>) e elementos muito antigos (fora de uso) e <em>frames</em> não são permitidos.</p>
<p>Para você dizer aos visitantes que sua página foi feita com esse padrão, você deve adicionar no início do código da sua página o seguinte trecho:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;</pre>
</div>
<h4><em>DOCTYPE HTML 4.01 Transitional</em></h4>
<p>Nesse padrão as páginas também são feitas somente com HTML, mas esse modo é mais flexível para conter códigos mais antigos, então ele permite elementos de apresentação e os elementos muito antigos. Ele continua não permitindo <em>frames</em>. Esse é o padrão para transição dos documentos antigos para o novo padrão.</p>
<p>Para dizer aos visitantes que seu código é desse padrão, coloque no começo do seu código a linha abaixo:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;</pre>
</div>
<h4><em>DOCTYPE HTML 4.01 Frameset</em></h4>
<p>Com esse padrão de página, você pode colocar tanto elementos de apresentação e antigos, como <em>frames</em>. Ele seria o padrão para quem não quer ter o mínimo de trabalho para atualizar sua página.</p>
<p>O código para ele é:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"&gt;</pre>
</div>
<h4><em>DOCTYPE XHTML 1.0 Strict</em></h4>
<p>Esse padrão seria o modo correto de fazer uma página nos dias atuais. Ele utiliza o XHTML e não contém elementos de apresentação e os muito antigos, assim como não permite <em>frames</em>.</p>
<p>O código para ser colocado no início do seu documento é:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;</pre>
</div>
<h4><em>DOCTYPE XHTML 1.0 Transitional</em></h4>
<p>O padrão <em>transitional</em> para XHTML funciona no mesmo esquema do <em>transitional</em> para HTML, ele permite elementos de apresentação e elementos muito antigos, mas continua não permitindo <em>frames</em>. Esse deve ser o padrão mais utilizado atualmente.</p>
<p>Para dizer aos visitantes tratarem seu código com esse padrão, coloque o linha abaixo no início do seu documento:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</pre>
</div>
<h4><em>DOCTYPE XHTML 1.0 Frameset</em></h4>
<p>Esse padrão é igual ao padrão <em>XHTML 1.0 transitional</em>, mas esse permite <em>frames</em>. Para utilizar esse padrão coloque, no início do seu documento, o código abaixo:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"&gt;</pre>
</div>
<p>Fora os padrões listados acima, temos um que provavelmente será o futuro das páginas, que é o <em><strong>XHTML 1.1</strong></em>, esse padrão é similar ao <em>XHTML 1.0 strict</em>, com o adicional de permitir módulos do XHTML.</p>
<p>Para você saber um pouco das diferenças entre os padrões HTML e XHTML, leia <a title="XHTML vs HTML Tutorial" href="http://htmlfixit.com/tutes/tutorial_XHTML_and_HTML_-_The_differences.shtml">XHTML vs HTML Tutorial</a> e nunca se esqueça de procurar nas máquinas de busca (Google, Yahoo!, etc).</p>
<p>Se você quiser verificar se seus códigos estão de acordo com as regras definidas, acesse <a title="Markup Validation Service" href="http://validator.w3.org/">Markup Validation Service</a>. E não se esqueça que é a <a title="W3C" href="http://www.w3.org/">W3C</a> que definiu esses padrões e outros vários padrões relacionados a web, então qualquer dúvida, pode fuçar no site deles.</p>
<p>Para uma lista mais completa, da própria W3C, dos padrões de documentos da web (<em>DTD &#8211; Document Type Definition</em>) e como coloca-los nos seus documentos (<em><strong>DOCTYPE</strong></em>), acesse <a title="Recommended list of DTDs" href="http://www.w3.org/QA/2002/04/valid-dtd-list.html">Recommended list of DTDs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.comocriarsites.com/html/o-que-e-e-para-que-serve-o-doctype-ou-dtd-document-type-definition/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como Funciona a Tabela (tag &lt;table&gt;) HTML</title>
		<link>http://www.comocriarsites.com/html/como-funciona-a-tabela-tag-table-html/</link>
		<comments>http://www.comocriarsites.com/html/como-funciona-a-tabela-tag-table-html/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 08:22:22 +0000</pubDate>
		<dc:creator>Raoni Novellino</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[border]]></category>
		<category><![CDATA[colspan]]></category>
		<category><![CDATA[coluna]]></category>
		<category><![CDATA[linha]]></category>
		<category><![CDATA[rowspan]]></category>
		<category><![CDATA[tabela]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[td]]></category>
		<category><![CDATA[th]]></category>
		<category><![CDATA[tr]]></category>

		<guid isPermaLink="false">http://www.comocriarsites.com/?p=104</guid>
		<description><![CDATA[A tabela HTML serve para exibir elementos tabelados, mas ela pode servir para fazer todas as partes do site, todo o formato do site. Atualmente o formato do site pode e deve ser feita sem tabelas, que é o que chamamos de tableless (sem tabela, mas isso é assunto para um post futuro).
Vamos colocar um [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: xx-large;">A</span> tabela HTML serve para exibir elementos tabelados, mas ela pode servir para fazer todas as partes do site, todo o formato do site. Atualmente o formato do site pode e deve ser feita sem tabelas, que é o que chamamos de <em>tableless</em> (sem tabela, mas isso é assunto para um post futuro).</p>
<p>Vamos colocar um exemplo de tabela e depois explicamos o seu funcionamento.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;table style="width: 100%; border: 1px solid black;"&gt;
	&lt;tr&gt;
		&lt;th&gt;Título 1&lt;/th&gt;
		&lt;th style="border: 2px solid red;"&gt;Título 2&lt;/th&gt;
		&lt;th&gt;Título 3&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style="border: 2px solid green;"&gt;Campo 11&lt;/td&gt;
		&lt;td&gt;Campo 12&lt;/td&gt;
		&lt;td style="border: 2px solid blue;"&gt;Campo 13&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Campo 21&lt;/td&gt;
		&lt;td style="border: 2px solid yellow;"&gt;Campo 22&lt;/td&gt;
		&lt;td&gt;Campo 23&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;</pre>
</div>
<p>Nesse exemplo mostro como fazer uma tabela com a primeira linha de título (<em><strong>&lt;th&gt;</strong></em>) e com duas linhas normais (<em><strong>&lt;td&gt;</strong></em>), tendo cada linha três colunas. Para fazer uma linha de uma tabela você deve iniciar com a tag <em><strong>&lt;tr&gt;</strong></em> e finalizar com o fechamento dessa tag <em><strong>&lt;/tr&gt;</strong></em>. Dentro dessa tag vão as tags de colunas, <em><strong>&lt;th&gt;</strong></em> e <em><strong>&lt;td&gt;</strong></em>. Vamos a algumas definições.</p>
<h4>&lt;table&gt;</h4>
<p>- Cria uma tabela. Essa tag pode ter atributos que podem ser substituidos por estilos (CSS). Alguns atributos da tag <em><strong>&lt;table&gt;</strong></em> são: <em>border</em>, <em>width</em>, <em>height</em>, <em>cellspacing</em>, <em>cellpadding</em> e outros.</p>
<h4>&lt;tr&gt;</h4>
<p>- Cria uma linha na tabela. A tag <em><strong>&lt;tr&gt;</strong></em> sempre cria uma nova linha na tabela e seus atributos são parecidos com os da tag <em><strong>&lt;table&gt;</strong></em>, sendo que seus efeitos só são vistos dentro da linha ao qual a <em><strong>&lt;tr&gt;</strong></em> define.</p>
<h4>&lt;th&gt;</h4>
<p>- Cria uma coluna de título dentro de uma linha da tabela. Essa coluna deixa o seus conteúdo em negrito e centralizado. Essa tag também pode usar qualquer atributo, mas seus efeitos só valerão para a coluna que ela define e na linha que ela está contida.</p>
<h4>&lt;td&gt;</h4>
<p>- Cria uma coluna dentro de uma linha da tabela. Essa coluna dentro da linha pode ser definida como um campo da tabela. Essa tag pode definir qualquer atributo, mas seus efeitos só valerão para a coluna que ela define e na linha que ela está contida.</p>
<p>No nosso exemplo, está definido alguns estilos na tag <em><strong>&lt;table&gt;</strong></em>, como a largura dela (<em>width: 100%</em>) e a como vai ser a borda (<em>border: 1px solid black</em>). Essa borda está definida que vai ter largura de 1 pixels, vai ter o tipo <em>solid</em> (linha continua) e vai ter a cor preta. Em algumas colunas tem o estilo bem parecido com o da tabela, mas está para 2 pixels de largura da borda e de cores variadas. O funcionamento desse exemplo pode ser visto em <a title="Exemplo Tabela 1" href="http://www.comocriarsites.com/exemplos/exemplo_tabela1.html">Exemplo Tabela 1</a>.</p>
<h2>Colspan e Rowspan</h2>
<p>Os atributos colspan e rowspan servem para dizer para um campo quantas colunas e quantas linhas ele deve ocupar, respectivamente. O padrão desses atributos é 1 (um), que normalmente um campo ocupa somente uma coluna e uma linha.</p>
<h3>Exemplo de Colspan:</h3>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;table style="border: 1px solid black;"&gt;
	&lt;tr&gt;
		&lt;td colspan="2" style="border: 1px solid black;"&gt;Campo 11 e Campo 12&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 13&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 21&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 22&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 23&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 31&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 32&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 33&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;</pre>
</div>
<p>Nesse exemplo, o primeiro campo vai ocupar duas colunas (<em>colspan = &#8220;2&#8243;</em>), por isso, para manter a primeira linha com três colunas devemos colocar apenas mais uma coluna (<em><strong>&lt;td&gt;</strong></em>).</p>
<h3>Exemplo de Rowspan</h3>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;table style="border: 1px solid black;"&gt;
	&lt;tr&gt;
		&lt;td rowspan="2" style="border: 1px solid black;"&gt;Campo 11 e Campo 21&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 12&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 13&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 22&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 23&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 31&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 32&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 33&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;</pre>
</div>
<p>Nesse exemplo o primeiro campo vai ocupar duas linhas (<em>rowspan=&#8221;2&#8243;</em>), por isso, para manter a segunda linha com três colunas devemos colocar apenas duas colunas (<em><strong>&lt;td&gt;</strong></em>) na segunda linha.</p>
<h3>Exemplo de Colspan e Rowspan Juntos</h3>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;table style="border: 1px solid black;"&gt;
	&lt;tr&gt;
		&lt;td colspan="2" rowspan="2" style="border: 1px solid black;"&gt;Campo 11, Campo 12, Campo 21 e Campo 22&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 13&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 23&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 31&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 32&lt;/td&gt;
		&lt;td style="border: 1px solid black;"&gt;Campo 33&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;</pre>
</div>
<p>Nesse exemplo temos o primeiro campo ocupando duas colunas e também ocupando duas linhas, por isso temos que colocar somente mais uma coluna (<em><strong>&lt;td&gt;</strong></em>) na primeira e na segunda linha.</p>
<p>Para ver esse exemplos funcionando entre em <a title="Exemplos de Colspan e Rowspan" href="http://www.comocriarsites.com/exemplos/exemplo_tabela2.html">Exemplos de Colspan e Rowspan</a>.</p>
<p>Para mais informações sobre tabelas HTML acesse <a title="Tables in HTML documents" href="http://www.w3.org/TR/html4/struct/tables.html#h-11.2.4.4">http://www.w3.org/TR/html4/struct/tables.html#h-11.2.4.4</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.comocriarsites.com/html/como-funciona-a-tabela-tag-table-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fazendo um Menu com MouseOver e MouseOut (Menu RollOver)</title>
		<link>http://www.comocriarsites.com/html/fazendo-um-menu-com-mouseover-e-mouseout-menu-rollover/</link>
		<comments>http://www.comocriarsites.com/html/fazendo-um-menu-com-mouseover-e-mouseout-menu-rollover/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 18:37:05 +0000</pubDate>
		<dc:creator>Raoni Novellino</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[mouseout]]></category>
		<category><![CDATA[mouseover]]></category>
		<category><![CDATA[rollover]]></category>
		<category><![CDATA[style]]></category>
		<category><![CDATA[tableless]]></category>

		<guid isPermaLink="false">http://www.comocriarsites.com/?p=63</guid>
		<description><![CDATA[Um menu RollOver é aquele menu que muda alguma coisa quando o mouse passa sobre um item do menu, normalmente muda as cores de fundo, mas pode mudar imagens também. Nesse post vou mostrar o código HTML para gerar o menu e também um pouco de Javascript que precisaremos para fazer a mudança.
Primeiro mostrarei o [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: xx-large;">U</span>m menu RollOver é aquele menu que muda alguma coisa quando o mouse passa sobre um item do menu, normalmente muda as cores de fundo, mas pode mudar imagens também. Nesse post vou mostrar o código HTML para gerar o menu e também um pouco de Javascript que precisaremos para fazer a mudança.</p>
<p>Primeiro mostrarei o código, HTML, Javascript e um pouco de CSS. Depois vai as explicações e um exemplo de funcionamento.</p>
<h2>Código HTML do Menu</h2>
<p>Primeiro o código HTML do menu:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>	&lt;div id="menu"&gt;
		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/index.html"&gt;PRINCIPAL&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/empresa.html"&gt;A EMPRESA&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/noticia.html"&gt;NOTÍCIAS&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/boletim.html"&gt;BOLETINS&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/artigo.html"&gt;ARTIGOS&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/bancoimagem.html"&gt;GALERIAS&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/link.html"&gt;LINKS ÚTEIS&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/faleconosco.html"&gt;FALE CONOSCO&lt;/a&gt;&lt;/div&gt;
	&lt;/div&gt;</pre>
</div>
<p>Esse menu é feito sem tabela (tableless), que é um &#8220;novo&#8221; conceito de desenvolvimento de páginas. Para ser feito assim, normalmente usa-se muito a tag <strong><em>&lt;div&gt;</em></strong>. No código acima temos um <strong><em>&lt;div&gt;</em></strong> externo, que tem uma classe associada a ele, essa classe veremos na segunda parte do código. Dentro desse <strong><em>&lt;div&gt;</em></strong> externo, temos um <strong><em>&lt;div&gt;</em></strong> interno para cada item do menu. Cada <strong><em>&lt;div&gt;</em></strong> interno tem os atributos <em>class</em>, <em>onmouseover</em> e <em>onmouseout</em>, explicados abaixo:</p>
<h4>class</h4>
<p>- esse atributo é usado para definir uma classe de estilo (CSS) para uma tag, e todas as tags dentro dessa tag herdam parte desse estilo.</p>
<h4>onmouseover</h4>
<p>- esse atributo especifica uma ação a fazer quando o mouse passar por cima do que essa tag exibe, no nosso caso um item do menu. E esse atributo executa um script em <em>Javascript</em>, logo a função que está lá dentro (<em>mouse_over_menu(this);</em>) é uma função <em>Javascript</em>.</p>
<h4>onmouseout</h4>
<p>- esse atributo especifica uma ação a fazer quando o mouse sai de cima do que essa tag exibe, no nosso caso, quando o mouse sair de cima de um item do menu, esse atributo diz que é para executar a função &#8220;<em>mouse_out_menu(this);</em>&#8220;, essa é uma função <em>Javascript</em>.</p>
<h2>Código CSS (estilos).</h2>
<p>A seguir vem o código da classe de estilos (CSS):</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;style type="text/css"&gt;

#menu{
	width:160px;
	height:263px;
	background-color:#fff;
}

.itemOn{
	width:150px;
	height:23px;
	padding-left:10px;
	padding-top:2px;
	background-color:#fff;
}
.itemOn a{color:#336600; text-decoration:none; font-size:16px; font-weight:bold;}
.itemOn a:hover{text-decoration:none; font-size:16px; font-weight:bold;}

.itemOver{
	width:150px;
	height:23px;
	padding-left:10px;
	padding-top:2px;
	background-image: url(bg-menu.gif);
}
.itemOver a{color:#fff; text-decoration:none; font-size:16px; font-weight:bold;}
.itemOver a:hover{text-decoration:none; font-size:16px; font-weight:bold;}

&lt;/style&gt;</pre>
</div>
<p>O estilo para o identificador <em>menu</em> (#menu), define a largura (width), altura (height) e cor de fundo (background-color) do menu. Podemos ver que o <em><strong>&lt;div&gt;</strong></em> externo do nosso menu está com esse identificador (id=&#8221;menu&#8217;), Ele irá receber esses estilos para começar a construção do nosso menu rollover.</p>
<p>Para saber um pouco mais sobre folha de estilos (CSS) acesse: <a title="Entendendo CSS (folhas de estilo): Cascading Style Sheet - Parte 1" href="http://www.comocriarsites.com/html-css/entendendo-css-folhas-de-estilo-cascading-style-sheet-parte-1/">Entendendo CSS (folhas de estilo): Cascading Style Sheet &#8211; Parte 1</a> e <a title="Entendendo CSS (folhas de estilo): Cascading Style Sheet - Parte 2" href="http://www.comocriarsites.com/html-css/entendendo-css-folhas-de-estilo-cascading-style-sheet-parte-2/">Entendendo CSS (folhas de estilo): Cascading Style Sheet &#8211; Parte 2</a>.</p>
<p>Como vemos nos estilos acima, a única diferença entre as classe de estilo <em>ItemOn</em> e<em> ItemOver</em> é que o último tem uma imagem de fundo (<em>background-image</em>).</p>
<p>Agora a única coisa que falta fazer é o nosso código em <em>Javascript</em> para fazer a troca das classes de estilo dos itens do menu quando o mouse passar por cima ou sair de cime do item.</p>
<h2>O Javascript do Menu</h2>
<p>Como sempre, o código depois as explicações:</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>function mouse_over_menu(objDiv)
{
	objDiv.className = 'itemOver';
}

function mouse_out_menu(objDiv)
{
	objDiv.className = 'itemOn';
}</pre>
</div>
<p>Vou explicar o básico sobre funções em <em>Javascript</em>. Para definir uma função em <em>Javascript</em> você deve escrever o cabeçalho da função seguido do corpo da função. No cabeçalho da função você deve colocar a palavra<strong><em> function</em></strong> seguida do nome da sua função (no caso das funções acima, <strong><em>mouse_over_menu</em></strong> e <strong><em>mouse_out_menu</em></strong>, respectivamente), seguido dos parametros passados para a função, entre parenteses.</p>
<p>O corpo da função deve estar todo entre chaves, e nele você coloca códigos <em>Javascript</em> para fazerem o que você quiser. No nosso menu, esse código vai apenas mudar a classe de estilo do objeto do elemento passado pelos parametros da função. Lá no nosso código HTML, podemos ver que foi passado um <strong><em>this</em></strong> como parametro da função, esse <em><strong>this</strong></em> indica que é para passar o objeto do elemento de onde a função está sendo chamada. No nosso caso, cada item do menu vai ser passado como um objeto <em>Javascript</em> para podermos modificar a sua classe.</p>
<h2>O Código inteiro &#8211; Menu RollOver</h2>
<p>Abaixo vai como ficaria o código inteiro do nosso menu rollover.</p>
<div style="background-color: #FFFFFF; overflow-x: auto;">
<pre>&lt;html&gt;
&lt;head&gt;

&lt;style type="text/css"&gt;

#menu{
	width:160px;
	height:263px;
	background-color:#fff;
}

.itemOn{
	width:150px;
	height:23px;
	padding-left:10px;
	padding-top:2px;
	background-color:#fff;
}
.itemOn a{color:#336600; text-decoration:none; font-size:16px; font-weight:bold;}
.itemOn a:hover{text-decoration:none; font-size:16px; font-weight:bold;}

.itemOver{
	width:150px;
	height:23px;
	padding-left:10px;
	padding-top:2px;
	background-image: url(bg-menu.gif);
}
.itemOver a{color:#fff; text-decoration:none; font-size:16px; font-weight:bold;}
.itemOver a:hover{text-decoration:none; font-size:16px; font-weight:bold;}

&lt;/style&gt;

&lt;script language="JavaScript"&gt;

function mouse_over_menu(objDiv)
{
	objDiv.className = 'itemOver';
}

function mouse_out_menu(objDiv)
{
	objDiv.className = 'itemOn';
}

&lt;/script&gt;

&lt;/head&gt;
&lt;body&gt;
	&lt;div id="menu"&gt;
		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/index.html"&gt;PRINCIPAL&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/empresa.html"&gt;A EMPRESA&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/noticia.html"&gt;NOTÍCIAS&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/boletim.html"&gt;BOLETINS&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/artigo.html"&gt;ARTIGOS&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/bancoimagem.html"&gt;GALERIAS&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/link.html"&gt;LINKS ÚTEIS&lt;/a&gt;&lt;/div&gt;

		&lt;div class="itemOn" onmouseover="mouse_over_menu(this);" onmouseout="mouse_out_menu(this);"&gt;
		&lt;a href="http://www.seudominio.com/faleconosco.html"&gt;FALE CONOSCO&lt;/a&gt;&lt;/div&gt;
	&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>Nesse link você pode ver esse código funcionando: <a title="exemplo de menu rollover html javascript" href="http://www.comocriarsites.com/exemplos/menu_rollover.html">Menu RollOver</a></p>
<p>Se gostou comente. <img src='http://www.comocriarsites.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.comocriarsites.com/html/fazendo-um-menu-com-mouseover-e-mouseout-menu-rollover/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
