diff options
Diffstat (limited to 'files/pt-br/learn/html/introduction_to_html')
9 files changed, 3414 insertions, 0 deletions
diff --git a/files/pt-br/learn/html/introduction_to_html/advanced_text_formatting/index.html b/files/pt-br/learn/html/introduction_to_html/advanced_text_formatting/index.html new file mode 100644 index 0000000000..3b5365b074 --- /dev/null +++ b/files/pt-br/learn/html/introduction_to_html/advanced_text_formatting/index.html @@ -0,0 +1,481 @@ +--- +title: Formatação avançada de texto +slug: Aprender/HTML/Introducao_ao_HTML/Formatacao_avancada_texto +tags: + - Aprender + - Guía + - HTML + - Texto + - abreviação + - citar + - lista de descrição + - semântico +translation_of: Learn/HTML/Introduction_to_HTML/Advanced_text_formatting +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Creating_hyperlinks", "Learn/HTML/Introduction_to_HTML/Document_and_website_structure", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p> +Existem muitos outros elementos em HTML para formatação de texto, que não tratamos no artigo de <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">Fundamentos do texto em HTML</a>. Os elementos descritos neste artigo são menos conhecidos, mas ainda são úteis para conhecer (e isso ainda não é uma lista completa de todos os elementos). Aqui, você aprenderá a marcar citações, listas de descrição, código de computador e outros textos relacionados, subscrito e sobrescrito, informações de contato e muito mais. +</p> + +<p class="summary"></p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Pré-requisitos:</th> + <td>Familiaridade básica em HTML, conforme abordado em <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started">Introdução ao HTML</a>. Formatação de texto em HTML, conforme abordado em <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">Fundamentais de texto em HTML</a>.</td> + </tr> + <tr> + <th scope="row">Objetivo:</th> + <td>Aprender a usar elementos HTML menos conhecidos para marcar recursos semânticos avançados.</td> + </tr> + </tbody> +</table> + +<h2 id="Listas_de_descrição">Listas de descrição</h2> + +<p>Nos Fundamentos do texto em HTML, falamos sobre como <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML/#Listas">marcar as listas básicas</a> em HTML, mas não mencionamos o terceiro tipo de lista que ocasionalmente irá encontrar - listas de descrição. O objetivo dessas listas é marcar um conjunto de itens e suas descrições associadas, como termos e definições, ou perguntas e respostas. Vejamos um exemplo de um conjunto de termos e definições:</p> + +<pre class="notranslate">solilóquio +No drama, onde um personagem fala a si mesmo, representando seus pensamentos ou sentimentos internos e no processo, transmitindo-os ao público (mas não a outros personagens). +monólogo +No drama, onde um personagem fala seus pensamentos em voz alta para compartilhá-los com o público e com outros personagens presentes. +aparte +No drama, onde um personagem compartilha um comentário apenas com o público para efeito humorístico ou dramático. Isso geralmente é um sentimento, pensamento ou parte de informação de fundo adicional.</pre> + +<p>As listas de descrição usam um invólucro diferente dos outros tipos de lista — {{htmlelement("dl")}}; além disso, cada termo está envolvido em um {{htmlelement("dt")}} (termo de descrição) elemento, e cada descrição está envolvida em um {{htmlelement("dd")}} (definição de descrição) elemento. Vamos terminar marcando nosso exemplo:</p> + +<pre class="brush: html notranslate"><dl> + <dt>solilóquio</dt> + <dd>No drama, onde um personagem fala a si mesmo, representando seus pensamentos ou sentimentos internos e no processo, transmitindo-os ao público (mas não a outros personagens).</dd> + <dt>monólogo</dt> + <dd>No drama, onde um personagem fala seus pensamentos em voz alta para compartilhá-los com o público e com outros personagens presentes.</dd> + <dt>aparte</dt> + <dd>No drama, onde um personagem compartilha um comentário apenas com o público para efeito humorístico ou dramático. Isso geralmente é um sentimento, pensamento ou parte de informação de fundo adicional.</dd> +</dl></pre> + +<p>Os estilos padrões do navegador exibirão as listas com as descrições indentadas um pouco dos termos. Os estilos da MDN seguem esta convenção de forma bastante parecida, mas também enfatizam os termos, para uma definição extra.</p> + +<dl> + <dt>solilóquio</dt> + <dd>No drama, onde um personagem fala a si mesmo, representando seus pensamentos ou sentimentos internos e no processo, transmitindo-os ao público (mas não a outros personagens).</dd> + <dt>monólogo</dt> + <dd>No drama, onde um personagem fala seus pensamentos em voz alta para compartilhá-los com o público e com outros personagens presentes.</dd> + <dt>aparte</dt> + <dd>No drama, onde um personagem compartilha um comentário apenas com o público para efeito humorístico ou dramático. Isso geralmente é um sentimento, pensamento ou parte de informação de fundo adicional.</dd> +</dl> + +<p>Observe que é permitido ter um único termo com múltiplas descrições, por exemplo:</p> + +<dl> + <dt>aparte</dt> + <dd>No drama, onde um personagem compartilha um comentário apenas com o público para efeito humorístico ou dramático. Isso geralmente é um sentimento, pensamento ou parte de informação de fundo adicional.</dd> + <dd>Por escrito, uma seção de conteúdo que está relacionada ao tópico atual, mas não se encaixa diretamente no fluxo principal de conteúdo, então é apresentado próximo (muitas vezes em uma caixa ao lado).</dd> +</dl> + +<h3 id="Aprendizagem_ativa_marcando_um_conjunto_de_definições">Aprendizagem ativa: marcando um conjunto de definições</h3> + +<p>É hora de pôr as mãos nas listas de descrição. Adicione elementos ao texto bruto no campo de <em>Entrada</em> para que ele se pareça como uma lista de descrição no campo <em>Saída</em>. Você pode tentar usar seus próprios termos e descrições, se quiser.</p> + +<p>Se você cometer um erro, sempre pode reiniciá-lo usando o botão 'Limpar'. Se ficar realmente preso, pressione o botão <em>'Mostrar solução</em>' para ver a resposta.</p> + +<div class="hidden"> +<h6 id="Código_reproduzível">Código reproduzível</h6> + +<pre class="brush: html notranslate"><h2>Entrada</h2> +<textarea id="code" class="input">Bacon +A cola que liga o mundo em conjunto. +Ovos +A cola que une o bolo juntos. +Café +A bebida que faz correr o mundo pela manhã. +Uma cor castanho claro.</textarea> +<h2>Saída</h2> +<div class="output"></div> +<div class="controls"> + <input id="reset" type="button" value="Limpar" /> + <input id="solution" type="button" value="Mostrar solução" /> +</div> +</pre> + +<pre class="brush: css notranslate">body { + font-family: 'Open Sans Light',Helvetica,Arial,sans-serif; +} + +.input, .output { + width: 90%; + height: 10em; + padding: 10px; + border: 1px solid #0095dd; + overflow: auto; +} + +button { + padding: 10px 10px 10px 0; +} +</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById("code"); +var reset = document.getElementById("reset"); +var code = textarea.value; +var output = document.querySelector(".output"); +var solution = document.getElementById("solution"); + +function drawOutput() { + output.innerHTML = textarea.value; +} + +reset.addEventListener("click", function() { + textarea.value = code; + drawOutput(); +}); + +solution.addEventListener("click", function() { +textarea.value = '<dl>\n <dt>Bacon</dt>\n <dd>The glue that binds the world together.</dd>\n <dt>Eggs</dt>\n <dd>The glue that binds the cake together.</dd>\n <dt>Coffee</dt>\n <dd>The drink that gets the world running in the morning.</dd>\n <dd>A light brown color.</dd>\n</dl>'; + drawOutput(); +}); + +textarea.addEventListener("input", drawOutput); +window.addEventListener("load", drawOutput); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 500) }}</p> + +<h2 id="Cotações">Cotações</h2> + +<p>HTML também possui recursos disponíveis para marcação de cotações. Qual elemento você pode usar? Depende se está marcando um bloco ou uma cotação em linha.</p> + +<h3 id="Blockquotes">Blockquotes</h3> + +<p>Se uma seção de conteúdo em nível de bloco (seja um parágrafo, vários parágrafos, uma lista, etc.) for citada em algum outro lugar, você deverá envolvê-la em um elemento <blockquote> para indicar isso e incluir um URL apontando para a fonte da citação dentro de um atributo cite. Por exemplo, a marcação a seguir é obtida da página do elemento <code><blockquote></code> do MDN:</p> + +<pre class="brush: html notranslate"><p>The <strong>HTML <code>&lt;blockquote&gt;</code> Element</strong> (or <em>HTML Block +Quotation Element</em>) indicates that the enclosed text is an extended quotation.</p></pre> + +<p>Para transformar isso em uma cotação em bloco, faríamos assim:</p> + +<pre class="brush: html notranslate"><blockquote cite="/en-US/docs/Web/HTML/Element/blockquote"> + <p>The <strong>HTML <code>&lt;blockquote&gt;</code> Element</strong> (or <em>HTML Block + Quotation Element</em>) indicates that the enclosed text is an extended quotation.</p> +</blockquote></pre> + +<p>O estilo padrão do navegador renderiza isso como um parágrafo recuado, como um indicador de que é uma citação. O MDN faz isso, mas também, adiciona um estilo extra:</p> + +<blockquote cite="/en-US/docs/Web/HTML/Element/blockquote"> +<p>O <strong>Elemento HTML <code><blockquote></code> </strong>(or <em>HTML Block Quotation Element</em>) indica que o texto em anexo é uma cotação estendida.</p> +</blockquote> + +<h3 id="Cotações_em_linha">Cotações em linha</h3> + +<p>As cotações embutidas funcionam exatamente da mesma maneira, exceto pelo uso do elemento {{htmlelement("q")}}. Por exemplo, o bit de marcação abaixo contém uma cotação da página MDN <q>:</p> + +<pre class="brush: html notranslate"><p>The quote element — <code>&lt;q&gt;</code> — is <q cite="/en-US/docs/Web/HTML/Element/q">intended +for short quotations that don't require paragraph breaks.</q></p></pre> + +<p>O estilo padrão do navegador renderiza isso como texto normal entre aspas para indicar uma cotação, assim:</p> + +<p>O elemento de cotação — <code><q></code> — é "destinado a citações curtas que não exigem quebras de parágrafo".</p> + +<h3 id="Citações">Citações</h3> + +<p>O conteúdo do atributo {{htmlattrxref("cite","blockquote")}} parece útil, mas, infelizmente, navegadores, leitores de tela etc. não fazem muito uso dele. Não há como fazer com que o navegador exiba o conteúdo de <code>cite</code>, sem escrever sua própria solução usando JavaScript ou CSS. Se você deseja disponibilizar a fonte da cotação na página, uma maneira melhor de marcá-la é colocar o elemento {{htmlelement("cite")}} próximo ao elemento quote. Isso realmente tem o objetivo de conter o nome da fonte da citação — ou seja, o nome do livro ou o nome da pessoa que disse a citação — mas não há razão para que você não possa vincular o texto dentro de <code><cite></code> à citação fonte de alguma forma:</p> + +<pre class="brush: html notranslate"><p>According to the <a href="/en-US/docs/Web/HTML/Element/blockquote"> +<cite>MDN blockquote page</cite></a>: +</p> + +<blockquote cite="/en-US/docs/Web/HTML/Element/blockquote"> + <p>The <strong>HTML <code>&lt;blockquote&gt;</code> Element</strong> (or <em>HTML Block + Quotation Element</em>) indicates that the enclosed text is an extended quotation.</p> +</blockquote> + +<p>The quote element — <code>&lt;q&gt;</code> — is <q cite="/en-US/docs/Web/HTML/Element/q">intended +for short quotations that don't require paragraph breaks.</q> -- <a href="/en-US/docs/Web/HTML/Element/q"> +<cite>MDN q page</cite></a>.</p></pre> + +<p>As citações são estilizadas em fonte itálica por padrão. Você pode ver esse código funcionando em nosso exemplo <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/advanced-text-formatting/quotations.html">quotations.html</a>.</p> + +<h3 id="Aprendizado_ativo_quem_disse_isso">Aprendizado ativo: quem disse isso?</h3> + +<p>Hora de outro exemplo de aprendizado ativo! Neste exemplo, gostaríamos que você:</p> + +<ol> + <li>Transforme o parágrafo do meio em uma citação em bloco, que inclui um atributo <code>cite</code>.</li> + <li>Transforme parte do terceiro parágrafo em uma cotação embutida, que inclui um atributo de <code>cite</code>.</li> + <li>Inclua um elemento <code><cite></code> para cada link.</li> +</ol> + +<p>Pesquise on-line para encontrar fontes de cotação apropriadas.</p> + +<p>Se você cometer um erro, sempre poderá redefini-lo usando o botão 'Limpar'. Se você realmente ficar atolado, pressione o botão 'Mostrar solução' para ver a resposta.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Entrada</h2> +<textarea id="code" class="input"><p>Hello and welcome to my motivation page. As Confucius once said:</p> + +<p>It does not matter how slowly you go as long as you do not stop.</p> + +<p>I also love the concept of positive thinking, and The Need To Eliminate Negative Self Talk +(as mentioned in Affirmations for Positive Thinking.)</p></textarea> +<h2>Saída</h2> +<div class="output"></div> +<div class="controls"> + <input id="reset" type="button" value="Limpar" /> + <input id="solution" type="button" value="Mostrar solução" /> +</div> +</pre> + +<pre class="brush: css notranslate">body { + font-family: 'Open Sans Light',Helvetica,Arial,sans-serif; +} + +.input, .output { + width: 90%; + height: 10em; + padding: 10px; + border: 1px solid #0095dd; + overflow: auto; +} + +button { + padding: 10px 10px 10px 0; +} +</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById("code"); +var reset = document.getElementById("reset"); +var code = textarea.value; +var output = document.querySelector(".output"); +var solution = document.getElementById("solution"); + +function drawOutput() { + output.innerHTML = textarea.value; +} + +reset.addEventListener("click", function() { + textarea.value = code; + drawOutput(); +}); + +solution.addEventListener("click", function() { +textarea.value = '<p>Hello and welcome to my motivation page. As <a href="http://www.brainyquote.com/quotes/authors/c/confucius.html"><cite>Confucius</cite></a> once said:</p>\n\n<blockquote cite="http://www.brainyquote.com/quotes/authors/c/confucius.html">\n <p>It does not matter how slowly you go as long as you do not stop.</p>\n</blockquote>\n\n<p>I also love the concept of positive thinking, and <q cite="http://www.affirmationsforpositivethinking.com/index.htm">The Need To Eliminate Negative Self Talk</q> (as mentioned in <a href="http://www.affirmationsforpositivethinking.com/index.htm"><cite>Affirmations for Positive Thinking</cite></a>.)</p>'; + drawOutput(); +}); + +textarea.addEventListener("input", drawOutput); +window.addEventListener("load", drawOutput); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_2', 700, 500) }}</p> + +<h2 id="Abreviações">Abreviações</h2> + +<p>Outro elemento bastante comum que você encontrará ao olhar na Web é o {{htmlelement("abbr")}} — usado para contornar uma abreviação ou sigla e fornecer uma expansão completa do termo (incluído em um atributo {{htmlattrxref("title")}}.) Vejamos alguns exemplos</p> + +<pre class="notranslate"><p>Usamos <abbr title="Hypertext Markup Language">HTML</abbr> para estruturar nossos documentos da web.</p> + +<p>Acho que o <abbr title="Reverendo">Rev.</abbr> Green fez isso na cozinha com a motosserra.</p></pre> + +<p>Elas aparecerão da seguinte forma (a expansão aparecerá em uma dica de ferramenta quando o termo passar o mouse):</p> + +<p>Usamos <abbr title="Hypertext Markup Language">HTML</abbr> para estruturar nossos documentos da web.</p> + +<p>Acho que o <abbr title="Reverend">Rev.</abbr> Green fez isso na cozinha com a motosserra.</p> + +<div class="note"> +<p><strong>Note</strong>: Há outro elemento, {{htmlelement("acronym")}}, que basicamente faz a mesma coisa que <code><abbr></code>, e foi projetado especificamente para acrônimos, em vez de abreviações. Isso, no entanto, caiu em desuso — não era suportado em navegadores nem o <code><abbr></code>, e tem uma função semelhante que foi considerado inútil ter os dois. Apenas use <code><abbr></code>.</p> +</div> + +<h3 id="Aprendizado_ativo_marcando_uma_abreviação">Aprendizado ativo: marcando uma abreviação</h3> + +<p>Para esta tarefa simples de aprendizado ativo, gostaríamos que você simplesmente marque uma abreviação. Você pode usar nossa amostra abaixo ou substituí-la por uma de sua preferência.</p> + +<div class="hidden"> +<h6 id="Playable_code_2">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Entrada</h2> +<textarea id="code" class="input"><p>NASA sure does some exciting work.</p></textarea> +<h2>Saída</h2> +<div class="output"></div> +<div class="controls"> + <input id="reset" type="button" value="Reset" /> + <input id="solution" type="button" value="Show solution" /> +</div> +</pre> + +<pre class="brush: css notranslate">body { + font-family: 'Open Sans Light',Helvetica,Arial,sans-serif; +} + +.input, .output { + width: 90%; + height: 5em; + padding: 10px; + border: 1px solid #0095dd; + overflow: auto; +} + +button { + padding: 10px 10px 10px 0; +} +</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById("code"); +var reset = document.getElementById("reset"); +var code = textarea.value; +var output = document.querySelector(".output"); +var solution = document.getElementById("solution"); + +function drawOutput() { + output.innerHTML = textarea.value; +} + +reset.addEventListener("click", function() { + textarea.value = code; + drawOutput(); +}); + +solution.addEventListener("click", function() { +textarea.value = '<p><abbr title="National Aeronautics and Space Administration">NASA</abbr> sure does some exciting work.</p>'; + drawOutput(); +}); + +textarea.addEventListener("input", drawOutput); +window.addEventListener("load", drawOutput); +</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_3', 700, 350) }}</p> + +<h2 id="Marcando_detalhes_de_contato">Marcando detalhes de contato</h2> + +<p>O HTML possui um elemento para marcar os detalhes do contato — {{htmlelement("address")}}. Isso simplesmente envolve seus detalhes de contato, por exemplo:</p> + +<pre class="brush: html notranslate"><address> + <p>Chris Mills, Manchester, The Grim North, UK</p> +</address></pre> + +<p>Porém, uma coisa a se lembrar é que o elemento <address> destina-se a marcar os detalhes de contato da pessoa que escreveu o documento HTML e não qualquer endereço. Portanto, o exposto acima só seria bom se Chris tivesse escrito o documento em que a marcação aparece. Observe, que, algo assim também seria bom:</p> + +<pre class="brush: html notranslate"><address> + <p>Page written by <a href="../authors/chris-mills/">Chris Mills</a>.</p> +</address></pre> + +<h2 id="Sobrescrito_e_subscrito">Sobrescrito e subscrito</h2> + +<p>Ocasionalmente, você precisará usar sobrescrito e subscrito ao marcar itens como datas, fórmulas químicas e equações matemáticas para que eles tenham o significado correto. Os elementos {{htmlelement("sup")}} e {{htmlelement("sub")}} manipulam esse trabalho. Por exemplo:</p> + +<pre class="brush: html notranslate"><p>My birthday is on the 25<sup>th</sup> of May 2001.</p> +<p>Caffeine's chemical formula is C<sub>8</sub>H<sub>10</sub>N<sub>4</sub>O<sub>2</sub>.</p> +<p>If x<sup>2</sup> is 9, x must equal 3 or -3.</p></pre> + +<p>A saída desse código é assim:</p> + +<p>Meu aniversário é no dia 25 de maio de 2001.</p> + +<p>A fórmula química da cafeína é C<sub>8</sub>H<sub>10</sub>N<sub>4</sub>O<sub>2</sub>.</p> + +<p>Se x<sup>2</sup> é 9, x deve ser igual a 3 ou -3.</p> + +<h2 id="Representando_código_de_computador">Representando código de computador</h2> + +<p>Existem vários elementos disponíveis para marcar código de computador usando HTML:</p> + +<ul> + <li>{{htmlelement("code")}}: Para marcar partes genéricas de código de computador.</li> + <li>{{htmlelement("pre")}}: Para reter espaço em branco (geralmente blocos de código) — se você usar recuo ou espaço em branco em excesso no seu texto, os navegadores o ignorarão e você não o verá na sua página renderizada. Se você envolver o texto nas tags <code><pre></pre></code> seu espaço em branco será renderizado de forma idêntica à maneira como você o vê no seu editor de texto.</li> + <li>{{htmlelement("var")}}: Para marcar especificamente nomes de variáveis.</li> + <li>{{htmlelement("kbd")}}: Para marcar a entrada do teclado (e outros tipos) inserida no computador.</li> + <li>{{htmlelement("samp")}}: Para marcar a saída de um programa de computador.</li> +</ul> + +<p>Vejamos alguns exemplos. Você deve tentar brincar com eles (tente pegar uma cópia do nosso arquivo de exemplo <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/advanced-text-formatting/other-semantics.html">other-semantics.html</a>):</p> + +<pre class="brush: html notranslate"><pre><code>var para = document.querySelector('p'); + +para.onclick = function() { + alert('Owww, stop poking me!'); +}</code></pre> + +<p>You shouldn't use presentational elements like <code>&lt;font&gt;</code> and <code>&lt;center&gt;</code>.</p> + +<p>In the above JavaScript example, <var>para</var> represents a paragraph element.</p> + + +<p>Select all the text with <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>A</kbd>.</p> + +<pre>$ <kbd>ping mozilla.org</kbd> +<samp>PING mozilla.org (63.245.215.20): 56 data bytes +64 bytes from 63.245.215.20: icmp_seq=0 ttl=40 time=158.233 ms</samp></pre></pre> + +<p>O código acima terá a seguinte aparência:</p> + +<p>{{ EmbedLiveSample('Representing_computer_code','100%',300) }}</p> + +<h2 id="Marcando_horários_e_datas">Marcando horários e datas</h2> + +<p>O HTML também fornece o elemento {{htmlelement("time")}} para marcar horários e datas em um formato legível por máquina. Por exemplo:</p> + +<pre class="brush: html notranslate"><time datetime="2016-01-20">20 January 2016</time></pre> + +<p>Por que isso é útil? Bem, existem muitas maneiras diferentes pelas quais os humanos escrevem datas. A data acima pode ser escrita como:</p> + +<ul> + <li>20 January 2016</li> + <li>20th January 2016</li> + <li>Jan 20 2016</li> + <li>20/01/16</li> + <li>01/20/16</li> + <li>The 20th of next month</li> + <li>20e Janvier 2016</li> + <li>2016年1月20日</li> + <li>And so on</li> +</ul> + +<p>Mas essas formas diferentes não podem ser facilmente reconhecidas pelos computadores — e se você quiser pegar automaticamente as datas de todos os eventos em uma página e inseri-las em um calendário? O elemento {{htmlelement("time")}} permite anexar uma data/hora inequívoca e legível por máquina para esse fim.</p> + +<p>O exemplo básico acima fornece apenas uma data legível por máquina simples, mas existem muitas outras opções possíveis, por exemplo:</p> + +<pre class="brush: html notranslate"><!-- Data simples padrão --> +<time datetime="2016-01-20">20 January 2016</time> +<!-- Apenas ano e mês --> +<time datetime="2016-01">January 2016</time> +<!-- Just month and day --> +<time datetime="01-20">20 January</time> +<!-- Apenas tempo, horas e minutos --> +<time datetime="19:30">19:30</time> +<!-- Você pode fazer segundos e milissegundos também! --> +<time datetime="19:30:01.856">19:30:01.856</time> +<!-- Data e hora --> +<time datetime="2016-01-20T19:30">7.30pm, 20 January 2016</time> +<!-- Data e hora com compensação de fuso horário --> +<time datetime="2016-01-20T19:30+01:00">7.30pm, 20 January 2016 is 8.30pm in France</time> +<!-- Chamando um número de semana específico --> +<time datetime="2016-W04">The fourth week of 2016</time></pre> + +<h2 id="Resumo">Resumo</h2> + +<p>Isso marca o fim de nosso estudo da semântica de texto HTML. Lembre-se de que o que você viu durante este curso não é uma lista exaustiva de elementos de texto HTML — queríamos tentar cobrir o essencial, e alguns dos mais comuns que você verá na natureza, ou pelo menos podem achar interessantes. Para encontrar muito mais elementos HTML, você pode dar uma olhada no nosso <a href="/pt-BR/docs/Web/HTML/Element">HTML element reference</a> (a seção <a href="/pt-BR/docs/Web/HTML/Element#Semânticas_textuais_inline">Inline text semantics</a> seria um ótimo ponto de partida.) No próximo artigo, examinaremos os elementos HTML que você usaria para estruturar as diferentes partes de um documento HTML.</p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Creating_hyperlinks", "Learn/HTML/Introduction_to_HTML/Document_and_website_structure", "Learn/HTML/Introduction_to_HTML")}}</p> + +<h2 id="Neste_módulo">Neste módulo</h2> + +<ul> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Getting_started">Introdução ao HTML</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML">O que tem na cabeça? Metadados em HTML</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals">Fundamentos de texto HTML</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks">Criando hiperlinks</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting">Formatação avançada de texto</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure">Estrutura de documentos e sites</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML">Depurando HTML</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter">Marcando uma carta</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content">Estruturando uma página de conteúdo</a></li> +</ul> diff --git a/files/pt-br/learn/html/introduction_to_html/creating_hyperlinks/index.html b/files/pt-br/learn/html/introduction_to_html/creating_hyperlinks/index.html new file mode 100644 index 0000000000..1abbfa20c4 --- /dev/null +++ b/files/pt-br/learn/html/introduction_to_html/creating_hyperlinks/index.html @@ -0,0 +1,324 @@ +--- +title: Criando hyperlinks +slug: Aprender/HTML/Introducao_ao_HTML/Criando_hyperlinks +tags: + - Guía + - HTML + - HTTP + - Iniciante + - Link + - URL + - absoluto + - href + - hyperlinks + - relativo +translation_of: Learn/HTML/Introduction_to_HTML/Creating_hyperlinks +--- +<div> +<p>{{LearnSidebar}}</p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals", "Learn/HTML/Introduction_to_HTML/Advanced_text_formatting", "Learn/HTML/Introduction_to_HTML")}}</p> +</div> + +<p class="summary">Os hiperlinks são realmente importantes — são o que torna a Web uma <em>web</em>. Este artigo mostra a sintaxe necessária para criar um link e discute as suas melhores práticas.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Pre-requisitos:</th> + <td> + <p>Familiaridade básica em HTML, conforme <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started">Começando com o HTML</a>. Formatação de texto em HTML, conforme <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">Fundamentos do texto em HTML</a>.</p> + </td> + </tr> + <tr> + <th scope="row">Objetivo:</th> + <td>Para aprender a implementar um hiperlink efetivamente e vincular vários arquivos juntos.</td> + </tr> + </tbody> +</table> + +<h2 id="O_que_é_um_hiperlink">O que é um hiperlink?</h2> + +<p>Os hiperlinks são uma das inovações mais interessantes que a Web oferece. Bem, eles são uma característica da Web desde o início, mas são o que torna a Web como ela é — eles nos permitem vincular nossos documentos a qualquer outro documento (ou outro recurso) que queremos. Também podemos vincular para partes específicas de documentos e podemos disponibilizar aplicativos em um endereço web simples (em contraste com aplicativos nativos, que devem ser instalados e tantas outras coisas). Qualquer conteúdo da web pode ser convertido em um link, para que, quando clicado (ou ativado de outra forma) fará com que o navegador vá para outro endereço ({{glossary("URL")}}).</p> + +<div class="note"> +<p dir="ltr" id="tw-target-text"><strong>Nota</strong>: Um URL pode apontar para arquivos HTML, arquivos de texto, imagens, documentos de texto, arquivos de vídeo e áudio e qualquer outra coisa que possa estar na Web. Se o navegador não souber exibir ou manipular o arquivo, ele perguntará se você deseja abrir o arquivo (nesse caso, o dever de abrir ou manipular o arquivo é passado para um aplicativo nativo adequado no dispositivo) ou fazer o download dele (nesse caso, você pode tentar lidar com isso mais tarde).</p> +</div> + +<p dir="ltr" id="tw-target-text">A página inicial da BBC, por exemplo, contém um grande número de links que apontam não apenas para várias notícias, mas também diferentes áreas do site (funcionalidade de navegação), páginas de login/registro (ferramentas do usuário) e muito mais.</p> + +<p><img alt="frontpage of bbc.co.uk, showing many news items, and navigation menu functionality" src="https://mdn.mozillademos.org/files/12405/bbc-homepage.png" style="display: block; margin: 0 auto;"></p> + +<h2 id="Anatomia_de_um_link">Anatomia de um link</h2> + +<p dir="ltr" id="tw-target-text">Um link básico é criado envolvendo o texto (ou outro conteúdo, veja {{anch("Block level links")}}) que você quer transformar em um link dentro de um elemento {{htmlelement("a")}}, e dando-lhe um atributo {{htmlattrxref("href", "a")}}, (também conhecido como <strong>Hypertext Reference</strong>, ou <strong>target</strong>) que conterá o endereço da Web para o qual você deseja que o link aponte.</p> + +<pre class="brush: html notranslate"><p>Estou criando um link para +<a href="https://www.mozilla.org/pt-BR/">a página inicial da Mozilla</a>. +</p></pre> + +<p dir="ltr" id="tw-target-text">Isso nos dá o seguinte resultado:</p> + +<p>Estou criando um link para <a class="ignore-external" href="https://www.mozilla.org/pt-BR/">a página inicial da Mozilla</a>.</p> + +<h3 id="Adicionando_informações_de_suporte_com_o_atributo_title">Adicionando informações de suporte com o atributo <em>title</em></h3> + +<p>Outro atributo que você pode querer adicionar aos seus links é o <code>title</code>; pretende-se que ele contenha informações úteis adicionais sobre o link, como, que tipo de informação a página contém ou informações importantes. Por exemplo:</p> + +<pre class="brush: html notranslate"><p>Estou criando um link para +<a href="https://www.mozilla.org/pt-BR/" + title="O melhor lugar para encontrar mais informações sobre a missão da Mozilla e como contribuir"> a página inicial da Mozilla</a>. +</p></pre> + +<p>Isto nos dá o seguinte resultado (o título aparecerá como uma dica de ferramenta quando o link estiver suspenso):</p> + +<p>Estou criando um link para <a class="ignore-external" href="https://www.mozilla.org/pt-BR/" title="O melhor lugar para encontrar mais informações sobre a missão da Mozilla e como contribuir">a página inicial da Mozilla</a>.</p> + +<div class="note"> +<p><strong>Nota</strong>: Um título de link só é revelado ao passar o mouse sobre ele, o que significa que as pessoas que dependem do teclado ou <em>touchscreen</em> para navegar em páginas web terão dificuldade em acessar a informação do título. Se a informação de um título é realmente importante para a usabilidade da página, então você deve apresentá-la de uma maneira que será acessível a todos os usuários, por exemplo, colocando-o no texto normal.</p> +</div> + +<p dir="ltr" id="tw-target-text">Aprendizagem na prática: criando seu próprio link de exemplo</p> + +<p dir="ltr" id="tw-target-text">Momento da aprendizagem na prática: gostaríamos que você criasse um documento HTML usando seu editor de código local (nosso <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/getting-started/index.html">modelo inicial</a> seria interessante.)</p> + +<ul> + <li>Dentro do corpo do HTML, tente adicionar um ou mais parágrafos ou outros tipos de conteúdo que você já conhece.</li> + <li> + <p dir="ltr" id="tw-target-text">Transforme alguns dos conteúdos em links.</p> + </li> + <li> + <p dir="ltr" id="tw-target-text">Inclua atributos de título.</p> + </li> +</ul> + +<h3 id="Links_de_nível_de_bloco">Links de nível de bloco</h3> + +<p dir="ltr" id="tw-target-text">Como falamos anteriormente, você pode transformar qualquer conteúdo em um link, mesmo <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started#Elementos_em_bloco_versus_elementos_inline">elementos de nível de bloco</a>. Se você tiver uma imagem que queira transformar em um link, você pode simplesmente colocar a imagem entre as tags <code><a></a></code>.</p> + +<pre class="brush: html notranslate"><a href="https://www.mozilla.org/pt-BR/"> + <img src="mozilla-image.png" alt="Logotipo mozilla que liga a página inicial do mozilla"> +</a></pre> + +<div class="note"> +<p><strong>Nota</strong>: Você descobrirá muito mais sobre o uso de imagens na Web em artigo posterior.</p> +</div> + +<h2 dir="ltr" id="Um_guia_rápido_sobre_URLs_e_caminhos">Um guia rápido sobre URLs e caminhos</h2> + +<p dir="ltr" id="tw-target-text">Para entender completamente os destinos de links, você precisa entender URLs e caminhos de arquivos. Esta seção fornece as informações que você precisa para conseguir isso.</p> + +<p>Um URL ou <em>Uniform Resource Locator</em> é simplesmente uma sequência de texto que define onde algo está localizado na Web. Por exemplo, a página inicial em inglês da Mozilla está localizada em <code>https://www.mozilla.org/en-US/</code>.</p> + +<p>Os URLs usam caminhos para encontrar arquivos. Os caminhos especificam onde, no explorador de arquivos, o recurso que você está interessado está localizado. Vejamos um exemplo simples de uma estrutura de diretório (veja o diretório de <a href="https://github.com/mdn/learning-area/tree/master/html/introduction-to-html/creating-hyperlinks">criação de hiperlinks</a>).</p> + +<p><img alt="A simple directory structure. The parent directory is called creating-hyperlinks and contains two files called index.html and contacts.html, and two directories called projects and pdfs, which contain an index.html and a project-brief.pdf file, respectively" src="https://mdn.mozillademos.org/files/12409/simple-directory.png" style="display: block; margin: 0 auto;"></p> + +<p>A raiz dessa estrutura de diretório é chamada de <code>criação de hiperlinks</code>. Ao trabalhar localmente com um site, você terá um diretório no qual ele todo esta dentro. Incluído na raiz, temos um arquivo <code>index.html</code> e um arquivo <code>contacts.html</code>. Em um site real, <code>index.html</code> seria nossa página inicial ou página de entrada (uma página da web que serve como ponto de entrada para um site ou uma seção específica de um site).</p> + +<p>Existem também dois diretórios dentro da nossa raiz — <code>pdfs</code> e <code>projects</code>. Cada um deles contém um único arquivo — um PDF (<code>projetos-brief.pdf</code>) e um arquivo <code>index.html</code>, respectivamente. Observe como é possível, felizmente, ter dois arquivos <code>index.html</code> em um projeto, desde que estejam em locais diferentes no sistema de arquivos. Muitos sites fazem isso. O segundo <code>index.html</code> poderia ser a página de destino principal para informações relacionadas ao projeto.</p> + +<ul> + <li> + <p><strong>Mesmo diretório: </strong>se você deseja incluir um hiperlink dentro de <code>index.html</code> (o <code>index.html</code> de nível superior) apontando para <code>contacts.html</code>, basta especificar o nome do arquivo ao qual deseja vincular, já que está no mesmo diretório que o arquivo atual. Portanto, o URL que você usaria seria <code>contacts.html</code>:</p> + + <pre class="brush: html notranslate"><p>Deseja entrar em contato com um membro da equipe específica? +Encontre detalhes sobre nossos serviços em nossa <a href="contato.html">página de contatos</a>.</p></pre> + </li> + <li> + <p><strong>Movendo-se para baixo em subdiretórios: </strong>se você quisesse incluir um hiperlink dentro do <code>index.html</code> apontando para o <code>projeto/index.html</code>, você precisaria descer no diretório de projetos antes de indicar o arquivo que deseja vincular. Isso é feito especificando o nome do diretório, depois uma barra inclinada e, em seguida, o nome do arquivo. Então o URL que você usaria seria <code>projeto/index.html</code>:</p> + + <pre class="brush: html notranslate"><p>Visite minha <a href="projects/index.html">pagina inicial do projeto</a>.</p></pre> + </li> + <li> + <p><strong>Movendo-se de volta para os diretórios pai: </strong>se você quisesse incluir uma hiperlink dentro de <code>projeto/index.html</code> apontando para pdfs/<code>projetos-brief.pdf</code>, você precisaria subir um nível de diretório e voltar para o diretório <code>pdf</code>. "Subir um diretório" é indicado usando dois pontos — <code>..</code> — então a URL que você usaria seria <code>../pdfs/project-brief.pdf</code></p> + + <pre class="brush: html notranslate"><p>Um link para o meu <a href="../pdfs/project-brief.pdf"> breve de projeto</a>.</p></pre> + </li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Você pode combinar várias instâncias desses recursos em URLs complexas, se necessário, por exemplo<code>../../../complex/path/to/my/file.html</code>.</p> +</div> + +<h3 id="Fragmentos_de_documento">Fragmentos de documento</h3> + +<p>É possível vincular a uma parte específica de um documento HTML (conhecido como um <strong>fragmento de documento</strong>) e não apenas ao topo do documento. Para fazer isso, primeiro você deve atribuir um atributo "id" ao elemento ao qual deseja vincular. Normalmente faz sentido vincular a um título específico, então ficaria algo do tipo:</p> + +<pre class="brush: html notranslate"><h2 id="Mailing_address">Endereço de correspondência</h2></pre> + +<p>Em seguida, para vincular a esse <code>id</code> específico, você o incluirá no final do URL, precedido por um símbolo de hashtag/cerquilha, por exemplo:</p> + +<pre class="brush: html notranslate"><p>Quer escrever uma carta? Use nosso<a href="contacts.html#Mailing_address">endereço de correspondência</a>.</p></pre> + +<p>Você pode até usar apenas referência de fragmento do documento por si só para vincular a outra parte do mesmo documento:</p> + +<pre class="brush: html notranslate"><p>O <a href="#Mailing_address">endereço postal da empresa</a> pode ser encontrado na parte inferior desta página.</p></pre> + +<h3 id="URLs_absolutos_versus_relativos">URLs absolutos versus relativos</h3> + +<p>Dois termos que você encontrará na Web são URL <strong>absoluto</strong> e URL <strong>relativo</strong>:</p> + +<p><strong>URL absoluto: </strong>aponta para um local definido por sua localização absoluta na web, incluindo "protocolo" e "nome de domínio". Então, por exemplo, se uma página <code>index.html</code> for carregada para um diretório chamado <code>projeto</code> que fica dentro da raiz de um servidor web, e o domínio do site é <code>http://www.exemplo.com</code>, a página estará disponível em <code>http://www.exemplo.com/projeto/index.html</code> (ou mesmo apenas <code>http://www.exemplo.com/projeto/</code>, pois a maioria dos servidores web apenas procura uma página de destino como index.html para carregar, se não está especificado no URL.)</p> + +<p>Um URL absoluto sempre aponta para o mesmo local, não importa onde seja usado.</p> + +<p><strong>URL relativa: </strong>aponta para um local <em>relativo</em> ao arquivo do qual você está vinculando, mais como o que vimos na seção anterior. Por exemplo, se desejássemos vincular nosso arquivo de exemplo em <code>http://www.exemplo.com/projeto/index.html</code> para um arquivo PDF no mesmo diretório, o URL seria apenas o nome do arquivo — por exemplo, <code>project-brief.pdf</code> — nenhuma informação extra é necessária. Se o PDF estava disponível em um subdiretório dentro de <code>projects</code> chamado <code>pdfs</code>, o link relativo seria <code>pdfs/projeto-brief.pdf</code> (o URL absoluto equivalente seria <code>http://www.example.com/projects/pdfs/project-brief.pdf</code>).</p> + +<p>Um URL relativo apontará para lugares diferentes, dependendo da localização real do arquivo ao qual você se refere — por exemplo, se tivermos movido nosso arquivo <code>index.html</code> para fora do diretório de projetos e para a raiz do site (no nível superior, não em qualquer diretório), o link relativo à URL referente a <code>pdfs/project-brief.pdf</code> agora apontaria para um arquivo localizado em <code>http://www.example.com/pdfs/project-brief.pdf</code>, não para um arquivo localizado em <code>http://www.example.com/projects/pdfs/project-brief.pdf</code>.</p> + +<h2 id="Práticas_recomendadas">Práticas recomendadas</h2> + +<p>Existem algumas práticas recomendadas a seguir, ao escrever links. Vejamos.</p> + +<ul> +</ul> + +<h3 id="Use_palavras-chave_claras">Use palavras-chave claras</h3> + +<p>É muito fácil jogar links na sua página, porém somente isto não é suficiente. Precisamos tornar nossos links <em>acessíveis</em> a todos os leitores, independentemente do contexto atual e de quais ferramentas eles prefiram. Por exemplo:</p> + +<ul> + <li>Os usuários de leitores de telas gostam pular de link a outro link na página e ler links fora do contexto.</li> + <li>Os motores de busca usam o texto do link para indexar arquivos de destino, por isso é uma boa idéia incluir palavras-chave no texto do link para descrever efetivamente o que está sendo vinculado.</li> + <li>Os usuários normalmente deslizam sobre a página em vez de ler cada palavra, e são atraídos para recursos de página que se destacam, como links. Eles acharão os textos descritivos de links úteis.</li> +</ul> + +<p>Vejamos um exemplo específico:</p> + +<p><em>Texto de link </em><strong>correto</strong>:<em> </em><a href="https://firefox.com/">Baixe o Firefox</a></p> + +<pre class="brush: html notranslate"><p><a href="https://firefox.com/"> + Baixe o Firefox +</a></p></pre> + +<p><em>Texto de link</em> <strong>incorreto</strong>: <a href="https://firefox.com/">clique aqui</a> para baixar o Firefox</p> + +<pre class="brush: html notranslate"><p><a href="https://firefox.com/"> + clique aqui +</a> +para baixar o Firefox</p> +</pre> + +<p>Outras dicas:</p> + +<ul> + <li>Não repita o URL como parte do texto do link — Os URLs parecem feios e até são mais feios quando um leitor de tela os lê letra por letra.</li> + <li>Não diga "link" ou "links para" no texto do link — é apenas ruído. Os leitores de tela já dizem às pessoas que existe um link. Os usuários visuais também sabem que existe um link, porque eles geralmente são de cor diferente e sublinhados (esta convenção geralmente não deve ser quebrada, pois os usuários estão muito acostumados a isso).</li> + <li>Mantenha seu rótulo de link o mais curto possível — links longos irritam especialmente os usuários de leitores de tela, que têm que ouvir o texto inteiro lido.</li> + <li>Minimize instâncias em que o mesmo texto esteja ligado a diferentes lugares. Isso pode causar problemas para os usuários do leitor de tela, que muitas vezes mostrará uma lista dos links fora do contexto — vários links todos rotulados como "clique aqui", "clique aqui", "clique aqui"... seria confuso.</li> +</ul> + +<h3 id="Use_links_relativos_sempre_que_possível">Use links relativos sempre que possível</h3> + +<p>A partir da descrição acima, você pode pensar que é uma boa idéia usar apenas links absolutos o tempo todo; Afinal, eles não quebram quando uma página é movida como pode ocorrer com <em>links relativos</em>. No entanto, você deve usar <em>links relativos</em> sempre que possível ao vincular a outros locais dentro do mesmo site (ao vincular a outro site, você precisará usar um link absoluto):</p> + +<ul> + <li>Para começar, é muito mais fácil verificar seu código — os URL relativos geralmente são muito mais curtos que os URLs absolutos, o que torna o código de leitura muito mais fácil.</li> + <li>Em segundo lugar, é mais eficiente usar URLs relativas sempre que possível. Quando você usa um URL absoluto, o navegador começa procurando a localização real do servidor no Servidor de Nomes de Domínio "DNS"; veja <a href="/pt-BR/docs/Aprender/Getting_started_with_the_web/Como_a_Web_funciona">Como a web funciona</a> para obter mais informações), então ele vai para esse servidor e encontra o arquivo que está sendo solicitado. Por outro lado, com um URL relativo, o navegador apenas procura o arquivo que está sendo solicitado, no mesmo servidor. Então, se você usa URLs absolutos para fazer o que os URLs relativos fariam, você está constantemente fazendo o seu navegador realizar trabalho extra, o que significa que ele irá executar de forma menos eficiente.</li> +</ul> + +<h3 id="Vinculando-se_a_recursos_que_não_sejam_HTML_—_deixe_indicadores_claros">Vinculando-se a recursos que não sejam HTML — deixe indicadores claros</h3> + +<p>Ao vincular a um arquivo que será baixado (como um documento PDF ou Word) ou transmitido (como vídeo ou áudio) ou ainda tiver outro efeito potencialmente inesperado (abrir uma janela pop-up ou carregar um filme Flash), você deve adicionar uma redação clara para reduzir qualquer confusão. Pode ser bastante irritante, por exemplo:</p> + +<ul> + <li>Se você estiver em uma conexão de baixa banda larga, clicar em um link e, em seguida, um download de muitos megabytes começa inesperadamente.</li> + <li>Se você não tiver instalado o Flash Player, clicar em um link e, de repente, ser levado para uma página que requer Flash Player.</li> +</ul> + +<p>Vejamos alguns exemplos, para ver que tipo de texto pode ser usado aqui:</p> + +<pre class="brush: html notranslate"><p><a href="http://www.example.com/large-report.pdf"> + Baixe o relatório de vendas (PDF, 10MB) +</a></p> + +<p><a href="http://www.example.com/video-stream/"> + Assista ao vídeo (o fluxo abre em separado, qualidade HD) +</a></p> + +<p><a href="http://www.example.com/car-game"> + Jogue o jogo de carro (requer Flash Player) +</a></p></pre> + +<h3 id="Use_o_atributo_de_download_ao_vincular_a_um_download">Use o atributo de download ao vincular a um download</h3> + +<p>Quando você está apontando para um arquivo que deve ser baixado em vez de ser aberto no navegador, poderá usar o atributo de download para fornecer um nome de arquivo salvo padrão. Aqui está um exemplo, com um link de <code>baixar</code> para a versão do Windows 39 do Firefox:</p> + +<pre class="brush: html notranslate"><a href="https://download.mozilla.org/?product=firefox-39.0-SSL&os=win&lang=en-US" + download="firefox-39-installer.exe"> + Faça o download do Firefox 39 para Windows +</a></pre> + +<h2 id="Aprendizagem_ativa_criando_um_menu_de_navegação">Aprendizagem ativa: criando um menu de navegação</h2> + +<p>Para este exercício, gostaríamos que você vinculasse algumas páginas a um menu de navegação para criar um <em>site</em> com várias páginas. Essa é uma maneira comum de criá-los — a mesma estrutura de página é usada em todas elas, incluindo o mesmo menu de navegação. Portanto, quando os <em>links</em> são clicados, dá a impressão de que você permanece no mesmo lugar e que um conteúdo diferente está sendo criado.</p> + +<p>Você precisará fazer cópias locais das quatro páginas a seguir, tudo no mesmo diretório (veja também o diretório de <a href="https://github.com/mdn/learning-area/tree/master/html/introduction-to-html/navigation-menu-start">início do menu de navegação</a> para uma lista completa de arquivos):</p> + +<ul> + <li><a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/navigation-menu-start/index.html">index.html</a></li> + <li><a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/navigation-menu-start/projects.html">projects.html</a></li> + <li><a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/navigation-menu-start/pictures.html">pictures.html</a></li> + <li><a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/navigation-menu-start/social.html">social.html</a></li> +</ul> + +<p>Você deve:</p> + +<ol> + <li>Adicionar uma lista não ordenada no local indicado em uma página, contendo os nomes das páginas a serem vinculadas. Um menu de navegação geralmente é apenas uma lista de <em>links</em>, então está semanticamente correto.</li> + <li>Transformar o nome de cada página em um <em>link</em> para essa página.</li> + <li>Copiar o menu de navegação para cada uma.</li> + <li>Em cada página, remova apenas o <em>link</em> para a mesma página - é confuso e inútil que uma página inclua um link para si mesma, e a falta de um <em>link</em> é um bom lembrete visual de qual página você está atualmente.</li> +</ol> + +<p>O exemplo final acabaria por parecer algo assim:</p> + +<p><img alt="An example of a simple HTML navigation menu, with home, pictures, projects, and social menu items" src="https://mdn.mozillademos.org/files/12411/navigation-example.png" style="display: block; margin: 0 auto;"></p> + +<div class="note"> +<p><strong>Note</strong>: Se você ficar preso, ou não tem certeza se o fez bem, você pode verificar o diretório de <a href="https://github.com/mdn/learning-area/tree/master/html/introduction-to-html/navigation-menu-marked-up">navegação-menu-marcado</a> para ver a resposta correta.</p> +</div> + +<h2 id="Links_de_e-mail">Links de e-mail</h2> + +<p>É possível criar <em>links</em> ou botões que, quando clicados, abrem uma nova mensagem de e-mail de saída em vez de vincular a um recurso ou página. Isso é feito usando o elemento {{HTMLElement("a")}} e o <code>mailto:</code> estrutura de URL.</p> + +<p>Na sua forma mais comum, um <code>mailto:</code> simplesmente indica o endereço de e-mail do destinatário pretendido. Por exemplo:</p> + +<pre class="brush: html notranslate"><a href="mailto:nowhere@mozilla.org">Enviar email para nenhum lugar</a> +</pre> + +<p>Isso resulta em um <em>link</em> que se parece com isto: <a href="mailto:nowhere@mozilla.org">Enviar e-mail para lugar nenhum.</a></p> + +<p>Na verdade, o endereço de e-mail é opcional. Se você deixar de fora (ou seja, seu {{htmlattrxref("href", "a")}} for simplesmente "mailto:"), uma nova janela de e-mail de saída será aberta pelo aplicativo de e-mail do usuário sem um destinatário. Isso geralmente é útil como "Compartilhar" <em>links</em> que os usuários podem clicar para enviar um e-mail para um endereço escolhido.</p> + +<h3 id="Especificando_detalhes">Especificando detalhes</h3> + +<p>Além do endereço de e-mail, você pode fornecer outras informações. Na verdade, qualquer campo de cabeçalho de correio padrão pode ser adicionado ao URL do <code>mailto:</code> que você fornece. Os mais utilizados são "assunto", "cc" e "corpo" (que não é um campo de cabeçalho verdadeiro, mas permite que você especifique uma mensagem de conteúdo curta para o novo e-mail). Cada campo e seu valor são especificados como um termo de consulta.</p> + +<p>Aqui está um exemplo que inclui um cc, bcc, assunto e corpo de texto:</p> + +<pre class="brush: html notranslate"><a href="mailto:nowhere@mozilla.org?cc=name2@rapidtables.com&bcc=name3@rapidtables.com&amp;subject=The%20subject%20of%20the%20email &amp;body=The%20body%20of%20the%20email"> + Aqui está um exemplo, incluindo um cc, bcc, assunto e corpo: +</a></pre> + +<div class="note"> +<p><strong>Nota:</strong> Os valores de cada campo devem ser codificados por URL, ou seja, com caracteres não imprimíveis (caracteres invisíveis, como guias, carriage returns e quebras de página) e espaços com <a href="http://en.wikipedia.org/wiki/Percent-encoding">percent-escaped</a>. Observe também o uso do ponto de interrogação (<code>?</code>) Para separar o URL principal dos valores do campo e do <em>e</em> comercial (&) para separar cada campo no <code>mailto:</code> URL. Essa é a notação de consulta padrão do URL. Leia <a href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data#The_GET_method">O método GET</a> para entender para que esta notação de consulta é mais comum.</p> +</div> + +<p>Aqui estão alguns outros exemplos de URLs de <code>mailto:</code></p> + +<ul> + <li><a href="mailto:">mailto:</a></li> + <li><a href="mailto:nowhere@mozilla.org">mailto:nowhere@mozilla.org</a></li> + <li><a href="mailto:nowhere@mozilla.org,nobody@mozilla.org">mailto:nowhere@mozilla.org,nobody@mozilla.org</a></li> + <li><a href="mailto:nowhere@mozilla.org?cc=nobody@mozilla.org">mailto:nowhere@mozilla.org?cc=nobody@mozilla.org</a></li> + <li><a href="mailto:nowhere@mozilla.org?cc=nobody@mozilla.org&subject=This%20is%20the%20subject">mailto:nowhere@mozilla.org?cc=nobody@mozilla.org&subject=This%20is%20the%20subject</a></li> +</ul> + +<h2 id="Resumo">Resumo</h2> + +<p>Por enquanto isto é tudo sobre links! Você retornará aos links mais tarde no curso quando começar a analisar o estilo deles. Em seguida, em HTML, retornaremos à semântica de texto e veremos alguns recursos mais avançados/incomuns que você achará úteis — No próximo artigo você verá a formatação avançada de texto.</p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals", "Learn/HTML/Introduction_to_HTML/Advanced_text_formatting", "Learn/HTML/Introduction_to_HTML")}}</p> diff --git a/files/pt-br/learn/html/introduction_to_html/debugging_html/index.html b/files/pt-br/learn/html/introduction_to_html/debugging_html/index.html new file mode 100644 index 0000000000..4b518454d9 --- /dev/null +++ b/files/pt-br/learn/html/introduction_to_html/debugging_html/index.html @@ -0,0 +1,175 @@ +--- +title: Debugging HTML +slug: Aprender/HTML/Introducao_ao_HTML/Debugging_HTML +translation_of: Learn/HTML/Introduction_to_HTML/Debugging_HTML +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Document_and_website_structure", "Learn/HTML/Introduction_to_HTML/Marking_up_a_letter", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">Escrever HTML é legal, mas e se algo der errado, e você não conseguir descobrir onde está o erro no código? Este artigo apresentará algumas ferramentas que podem ajudá-lo a encontrar e corrigir erros no HTML.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Pré-requisitos:</th> + <td>Familiaridade com HTML, conforme abordado, por exemplo, em <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started">Introdução ao HTML</a>, <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">Fundamentos de texto em HTML</a> e <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Criando_hyperlinks">Criação de Hiperlinks</a>.</td> + </tr> + <tr> + <th scope="row">Objetivo:</th> + <td>Aprender o básico sobre o uso de ferramentas de depuração (debugging) para encontrar problemas em HTML.</td> + </tr> + </tbody> +</table> + +<h2 id="Depurar_não_é_assustador">Depurar não é assustador</h2> + +<p>Ao escrever algum tipo de código, tudo costuma ir bem, até o temido momento quando ocorre um erro — você fez algo errado, então seu código não funciona - talvez não funcione mais nada ou não funciona exatamente como você queria. Por exemplo, a seguir é mostrado um erro relatado ao tentar {{glossary("compilar")}} um programa simples escrito na linguagem <a href="https://www.rust-lang.org/">Rust</a>.</p> + +<p><img alt="A console window showing the result of trying to compile a rust program with a missing quote around a string in a print statement. The error message reported is error: unterminated double quote string." src="https://mdn.mozillademos.org/files/12435/error-message.png" style="display: block; height: 520px; margin: 0px auto; width: 711px;">Aqui, a mensagem de erro é relativamente fácil de entender — "string de aspas duplas sem terminação". Se você olhar a listagem, provavelmente verá como <code>println!(Hello, world!");</code> pode estar faltando logicamente uma aspa dupla. No entanto, as mensagens de erro podem ficar mais complicadas e menos fáceis de interpretar à medida que os programas se tornam maiores, e até mesmo casos simples podem parecer um pouco intimidadores para alguém que não sabe nada sobre o Rust.</p> + +<p>Depurar um código não tem que ser assustador, porém — a chave para se sentir confortável em escrever e depurar qualquer linguagem ou código de programação é a familiaridade com a linguagem e as ferramentas.</p> + +<h2 id="HTML_e_depuração">HTML e depuração</h2> + +<p>HTML não é tão complicado de entender quanto o Rust. O HTML <strong>não é compilado</strong> em um formato diferente antes do navegador analisá-lo e mostrar o resultado (ele é interpretado, não compilado). E a sintaxe do {{glossary("elemento")}} HTML é muito mais fácil de entender do que uma "linguagem de programação real" como Rust, {{glossary("JavaScript")}}, ou {{glossary("Python")}}. A forma como os navegadores analisam o HTML é muito mais <strong>permissiva </strong>do que a forma como as linguagens de programação são executadas, o que é bom e ruim.</p> + +<h3 id="Código_permissivo">Código permissivo</h3> + +<p>Então, o que queremos dizer com permissivo? Bem, geralmente quando você faz algo errado no código, existem dois tipos principais de erros que você encontrará:</p> + +<ul> + <li><strong>Erros de sintaxe</strong>: São os erros de ortografia no seu código que realmente fazem com que o programa não seja executado, como o erro do Rust mostrado acima. Estes geralmente são fáceis de corrigir, desde que você esteja familiarizado com a sintaxe (forma de escrever) da linguagem e saiba o que significam as mensagens de erro.</li> + <li><strong>Erros lógicos</strong>: São erros onde a sintaxe está correta, mas o código não é o que você pretendia, o que significa que o programa é executado incorretamente. Geralmente, eles são mais difíceis de corrigir do que erros de sintaxe, pois não há uma mensagem de erro para direcioná-lo para a origem deste erro.</li> +</ul> + +<p>O próprio HTML não sofre de erros de sintaxe porque os navegadores o analisam permissivamente, o que significa que a página ainda é exibida mesmo se houver erros de sintaxe. Os navegadores têm regras internas para indicar como interpretar a marcação escrita incorretamente, para que você obtenha algo em execução, mesmo que não seja o esperado. Isso, claro, ainda pode ser um problema!</p> + +<div class="note"> +<p><strong>Nota</strong>: O HTML é analisado permissivamente porque, quando a web foi criada, foi decidido que permitir que as pessoas publicassem seus conteúdos era mais importante do que garantir que a sintaxe estivesse absolutamente correta. A web provavelmente não seria tão popular quanto é hoje, se tivesse sido mais rigorosa desde o início.</p> +</div> + +<h3 id="Aprendizado_Ativo_Estudando_código_permissivo">Aprendizado Ativo: Estudando código permissivo</h3> + +<p>É hora de estudar a natureza permissiva do código HTML.</p> + +<ol> + <li>Primeiramente, faça o download do <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/debugging-html/debug-example.html">debug-example demo</a> e o salve localmente. Esse exemplo contém erros propositais para que possamos explorá-los (tal código HTML é dito <em><strong>badly-formed</strong></em>, em contraponto ao HTML <em><strong>well-formed</strong></em>).</li> + <li>Em seguida, abra o arquivo em um navegador. Você verá algo como:<img alt="A simple HTML document with a title of HTML debugging examples, and some information about common HTML errors, such as unclosed elements, badly nested elements, and unclosed attributes. " src="https://mdn.mozillademos.org/files/12437/badly-formed-html.png" style="display: block; margin: 0 auto;"></li> + <li>Isso claramente não parece bom; vamos dar uma olhada no código fonte para tentar achar os erros (somente o conteúdo de <em>body</em> é mostrado): + <pre class="brush: html notranslate"><h1>HTML debugging examples</h1> + +<p>What causes errors in HTML? + +<ul> + <li>Unclosed elements: If an element is <strong>not closed properly, + then its effect can spread to areas you didn't intend + + <li>Badly nested elements: Nesting elements properly is also very important + for code behaving correctly. <strong>strong <em>strong emphasised?</strong> + what is this?</em> + + <li>Unclosed attributes: Another common source of HTML problems. Let's + look at an example: <a href="https://www.mozilla.org/>link to Mozilla + homepage</a> +</ul></pre> + </li> + <li>Vamos analisar os erros: + <ul> + <li>Os elementos {{htmlelement("p","parágrafo")}} e {{htmlelement("li","item da lista")}} não possuem <em>tags</em> de fechamento. Olhando a imagem acima, isso não parece ter afetado muito a renderização do HTML já que é fácil deduzir onde um elemento deveria terminar e outro, começar.</li> + <li>O primeiro elemento {{htmlelement("strong")}} não possui <em>tag</em> de fechamento. Isto é um pouco mais problemático porque não é necessariamente fácil determinar onde um elemento deveria terminar. Assim, todo o resto do texto foi fortemente enfatizado.</li> + <li>Essa seção foi aninhada incorretamente: <code><strong>strong <em>strong emphasised?</strong> what is this?</em></code>. Não é fácil dizer como esse trecho foi interpretado por causa do problema anterior.</li> + <li>O valor do atributo {{htmlattrxref("href","a")}} não tem as aspas de fechamento. Isso parece ter causado o maior problema — o <em>link</em> não foi renderizado.</li> + </ul> + </li> + <li>Agora vamos dar uma olhada no HTML que o navegador renderizou, comparando-o com o nosso código fonte. Para fazer isso, usaremos as ferramentas de desenvolvimento oferecidas pelo navegador. Se você não está familiarizado com estas ferramentas, dê uma olhadinha nesse tutorial: <a href="/pt-BR/docs/Learn/Common_questions/ferramentas_de_desenvolvimento_do_navegador">O que são as ferramentas de desenvolvimento do navegador</a>.</li> + <li>No inspetor DOM, você pode ver como o HTML renderizado fica: <img alt="The HTML inspector in Firefox, with our example's paragraph highlighted, showing the text "What causes errors in HTML?" Here you can see that the paragraph element has been closed by the browser." src="https://mdn.mozillademos.org/files/12439/html-inspector.png" style="display: block; margin: 0 auto;"></li> + <li>Utilizando o inspetor DOM, vamos explorar nosso código detalhadamente para ver como o navegador tentou consertar os erros do código HTML (nós fizemos a análise com o Firefox, mas outros navegadores modernos <em>devem</em> apresentar o mesmo resultado): + <ul> + <li>As <em>tags</em> de fechamento foram colocadas nos parágrafos e itens da lista.</li> + <li>Não está claro onde o primeiro elemento <code><strong></code> deveria terminar, portanto o navegador envolveu cada bloco subsequente em uma <em>tag</em> <em>strong</em> própria até o fim do documento!</li> + <li>O aninhamento incorreto foi corrigido pelo navegador da seguinte maneira: + <pre class="brush: html notranslate"><strong>strong + <em>strong emphasised?</em> +</strong> +<em> what is this?</em></pre> + </li> + <li>O link cujas aspas de fechamento não estavam presentes foi totalmente excluído da renderização. Então o último item ficou assim: + <pre class="brush: html notranslate"><li> + <strong>Unclosed attributes: Another common source of HTML problems. + Let's look at an example: </strong> +</li></pre> + </li> + </ul> + </li> +</ol> + +<h3 id="Validação_HTML">Validação HTML</h3> + +<p>Então, você pode ver pelo exemplo acima que você realmente quer ter certeza de que o seu HTML foi bem construido! Mas Como? Em um pequeno exemplo como o que foi visto acima, é facil analisar as linhas e achar os erros, mas e se fosse um gigante e complexo documento HTML?</p> + +<p>A melhor estratégia é começar rodando a sua página HTML através do <a href="https://validator.w3.org/">Markup Validation Service</a> — criado e mantido pelo W3C, uma organização que cuida das especificações que define o HTML, CSS, e outras tecnologias WEB. Esta página considera um documento HTML como uma entrada, fazendo a leitura dela e retornando o que há de errado com o seu HTML.</p> + +<p><img alt="The HTML validator homepage" src="https://mdn.mozillademos.org/files/12441/validator.png" style="display: block; margin: 0 auto;"></p> + +<p>Para especificar o HTML a ser validado, você pode dar um endereço web, fazer o upload de um arquivo HTML, ou diretamente inserir o código HTML.</p> + +<h3 id="Aprendizado_Ativo_Validando_um_documento_HTML">Aprendizado Ativo: Validando um documento HTML</h3> + +<p>Vamos tentar fazer isto com o nosso <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/debugging-html/debug-example.html">sample document</a>.</p> + +<ol> + <li>Primero, carregue o <a href="https://validator.w3.org/">Markup Validation Service</a> em uma aba no seu navegador, caso já não esteja carregada.</li> + <li>Troque para a aba <a href="https://validator.w3.org/#validate_by_input">Validate by Direct Input</a>.</li> + <li>Copie todo o código do documento de exemplo (não apenas o body) e cole dentro da grande área de texto mostrada no Markup Validation Service.</li> + <li>Pressione o botão <em>Check</em>.</li> +</ol> + +<p>Você deverá receber uma lista de erros e outras informações.</p> + +<p><img alt="A list of of HTML validation results from the W3C markup validation service" src="https://mdn.mozillademos.org/files/12443/validation-results.png" style="display: block; margin: 0 auto;"></p> + +<h4 id="Interpretando_as_mensagens_de_erros">Interpretando as mensagens de erros</h4> + +<p>As mensagens de erros geralmente são úteis, mas algumas vezes elas não ajudam tanto; com um pouco de prática você pode descobrir como interpretar-lás para arrumar o seu código. Vamos dar uma olhada nas mensagens de erros e ver o que elas significam. Você verá que cada mensagem vem com um numero para a linha e um para a coluna afim de ajudar você a localizar o erro facilmente.</p> + +<ul> + <li>"End tag <code>li</code> implied, but there were open elements" (2 instances): Estas mensagens indicam que um elemento que esta aberto deveria estar fechado. O final da tag esta implicito, mas não esta realmente lá. A informação de linha/coluna indica para a primeira linha depois de onde a tag de fechamento realmente deveria estar, mas isto é uma pista boa o suficiente para ver o que há de errado.</li> + <li>"Unclosed element <code>strong</code>": Este é muito fácil de entender — um {{htmlelement("strong")}} elemento esta aberto, e uma informação de linha/coluna indica diretamente para onde esta.</li> + <li>"End tag <code>strong</code> violates nesting rules": Este aponta os elementos incorretamente aninhados, e a informação de linha/coluna aponta onde o erro está.</li> + <li>"End of file reached when inside an attribute value. Ignoring tag": This one is rather cryptic; it refers to the fact that there is an attribute value not properly formed somewhere, possibly near the end of the file because the end of the file appears inside the attribute value. The fact that the browser doesn't render the link should give us a good clue as to what element is at fault.</li> + <li>"End of file seen and there were open elements": This is a bit ambiguous, but basically refers to the fact there are open elements that need to be properly closed. The lines numbers point to the last few lines of the file, and this error message comes with a line of code that points out an example of an open element: + <pre class="notranslate">example: <a href="https://www.mozilla.org/>link to Mozilla homepage</a> ↩ </ul>↩ </body>↩</html></pre> + + <div class="note"> + <p><strong>Note</strong>: An attribute missing a closing quote can result in an open element because the rest of the document is interpreted as the attribute's content.</p> + </div> + </li> + <li>"Unclosed element <code>ul</code>": This is not very helpful, as the {{htmlelement("ul")}} element <em>is</em> closed correctly. This error comes up because the {{htmlelement("a")}} element is not closed, due to the missing closing quote mark.</li> +</ul> + +<p><span>If you can't work out what every error message means, don't worry about it — a good idea is to try fixing a few errors at a time. Then try revalidating your HTML to show what errors are left. Sometimes fixing an earlier error will also get rid of other error messages — several errors can often be caused by a single problem, in a domino effect.</span></p> + +<p><span>You will know when all your errors are fixed when you see the following banner in your output: </span></p> + +<p><img alt='Banner that reads "The document validates according to the specified schema(s) and to additional constraints checked by the validator."' src="https://mdn.mozillademos.org/files/12445/valid-html-banner.png" style="display: block; margin: 0 auto;"></p> + +<h2 id="Summary">Summary</h2> + +<p>So there we have it, an introduction to debugging HTML, which should give you some useful skills to count on when you start to debug CSS, JavaScript, and other types of code later on in your career. This also marks the end of the Introduction to HTML module learning articles — now you can go on to testing yourself with our assessments: the first one is linked below.</p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Document_and_website_structure", "Learn/HTML/Introduction_to_HTML/Marking_up_a_letter", "Learn/HTML/Introduction_to_HTML")}}</p> + +<h2 id="Neste_módulo">Neste módulo</h2> + +<ul> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started">Iniciando com HTML</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/The_head_metadata_in_HTML">O que está no cabeçalho? Metadados em HTML</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">Fundamentos do texto em HTML</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Criando_hyperlinks">Criando hyperlinks</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Formatacao_avancada_texto">Formatação avançada de texto</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Estrutura_de_documento_e_sites">Estrutura de documento e sites</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Debugging_HTML">Debugging HTML</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter">Marking up a letter</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content">Structuring a page of content</a></li> +</ul> diff --git a/files/pt-br/learn/html/introduction_to_html/document_and_website_structure/index.html b/files/pt-br/learn/html/introduction_to_html/document_and_website_structure/index.html new file mode 100644 index 0000000000..825d2cec6e --- /dev/null +++ b/files/pt-br/learn/html/introduction_to_html/document_and_website_structure/index.html @@ -0,0 +1,299 @@ +--- +title: Estrutura de documento e sites +slug: Aprender/HTML/Introducao_ao_HTML/Estrutura_de_documento_e_sites +translation_of: Learn/HTML/Introduction_to_HTML/Document_and_website_structure +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Advanced_text_formatting", "Learn/HTML/Introduction_to_HTML/Debugging_HTML", "Learn/HTML/Introduction_to_HTML")}}</div> + +<div>Além de definir as partes individuais de sua página (como "um parágrafo" ou "uma imagem"),</div> + +<p class="summary">o {{glossary("HTML")}} também conta com vários elementos de nível de bloco usados para definir as áreas de seu site (como "o cabeçalho", "o menu de navegação", "a coluna de conteúdo príncipal"). Este artigo explora como planejar uma estrutura básica de website, e escrever o HTML para representar essa estrutura.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Pre-requisitos:</th> + <td> + <p>Familiaridade básica com HTML, como mostrado em <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started">Iniciando com HTML</a>. Formatação de texto HTML, como mostrado em <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">Fundamentos do texto em HTML</a>. O funcionamento de hiperlinks, como visto em <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Criando_hyperlinks">Criando hyperlinks</a>.</p> + </td> + </tr> + <tr> + <th scope="row">Objetivo:</th> + <td> + <p dir="ltr" id="tw-target-text">Aprenda a estruturar seu documento usando tags semânticas e como elaborar a estrutura de um site simples.</p> + </td> + </tr> + </tbody> +</table> + +<h2 id="Seções_básicas_de_um_documento">Seções básicas de um documento</h2> + +<p dir="ltr" id="tw-target-text">As páginas da web podem e serão muito diferentes umas das outras, mas todas tendem a compartilhar componentes padrão semelhantes, a menos que a página exiba um vídeo ou um jogo em tela cheia, seja parte de algum tipo de projeto de arte ou seja mal estruturada:</p> + +<dl> + <dt>cabeçalho (header)</dt> + <dd> + <p dir="ltr" id="tw-target-text">Normalmente, uma grande faixa na parte superior com um grande título e / ou logotipo. É aí que as principais informações comuns sobre um site geralmente ficam de uma página para outra.</p> + </dd> + <dt>barra de navegação</dt> + <dd> + <p dir="ltr" id="tw-target-text">Links para as principais seções do site; geralmente representado por botões de menu, links ou guias. Como o cabeçalho, esse conteúdo geralmente permanece consistente de uma página para outra - ter uma navegação inconsistente em seu site levará a usuários confusos e frustrados. Muitos web designers consideram a barra de navegação parte do cabeçalho em vez de um componente individual, mas isso não é um requisito; na verdade, alguns também argumentam que ter os dois separados é melhor para acessibilidade, já que os leitores de tela podem ler melhor os dois recursos se estiverem separados.</p> + </dd> + <dt>conteúdo principal</dt> + <dd> + <p dir="ltr" id="tw-target-text">Uma grande área no centro que contém a maior parte do conteúdo exclusivo de uma determinada página da Web, por exemplo, o vídeo que você deseja assistir ou a história principal que você está lendo ou o mapa que deseja visualizar ou as manchetes de notícias, etc. Esta é a única parte do site que definitivamente irá variar de página para página!</p> + </dd> + <dt>barra lateral (sidebar)</dt> + <dd> + <p dir="ltr" id="tw-target-text">Algumas informações periféricas, links, cotações, anúncios etc. Geralmente, isso é contextual ao conteúdo principal (por exemplo, em uma página de um artigo de notícias, a barra lateral pode conter a biografia do autor ou links para artigos relacionados), mas há também casos em que você encontrará alguns elementos recorrentes como um sistema de navegação secundário.</p> + </dd> + <dt>rodapé (footer)</dt> + <dd> + <p dir="ltr">Uma faixa na parte inferior da página que geralmente contém letras pequenas, avisos de direitos autorais ou informações de contato. É um lugar para colocar informações comuns (como o cabeçalho), mas geralmente essas informações não são críticas ou secundárias ao próprio site. O rodapé também é usado às vezes para fins de {{Glossary ("SEO")}}, fornecendo links para acesso rápido a conteúdo popular. Um "site típico" poderia ser colocado assim:</p> + </dd> +</dl> + +<p><img alt="a simple website structure example featuring a main heading, navigation menu, main content, side bar, and footer." src="https://mdn.mozillademos.org/files/12417/sample-website.png" style="display: block; margin: 0 auto;"></p> + +<h2 id="HTML_para_estruturar_conteúdo">HTML para estruturar conteúdo</h2> + +<p class="tw-data-text tw-ta tw-text-small" dir="ltr" style="text-align: left;"><span lang="pt">O exemplo simples mostrado acima não é bonito, mas é perfeitamente aceitável para ilustrar um exemplo típico de layout de website. Alguns sites têm mais colunas, algumas são bem mais complexas, mas você tem a ideia. Com o CSS certo, você poderia usar praticamente todos os elementos para agrupar as diferentes seções e fazer com que parecesse como você queria, mas como discutido anteriormente, precisamos respeitar a semântica e <strong>usar o elemento certo para o trabalho certo.</strong></span></p> + +<p class="tw-data-text tw-ta tw-text-small" dir="ltr" style="text-align: left;">Isso ocorre porque os visuais não contam toda a história. Usamos cor e tamanho de fonte para chamar a atenção dos usuários para as partes mais úteis do conteúdo, como o menu de navegação e links relacionados, mas sobre pessoas com deficiência visual, por exemplo, que podem não encontrar conceitos como "rosa" e "grande". fonte "muito útil?</p> + +<div class="note"> +<p class="tw-data-text tw-ta tw-text-small" dir="ltr" id="tw-target-text" style="text-align: left;"><span lang="pt">Nota: as pessoas daltônicas representam cerca de 4% da população mundial ou, em outras palavras, aproximadamente 1 em cada 12 homens e 1 em cada 200 mulheres são daltônicas. Cegos e deficientes visuais representam cerca de 4-5% da população mundial (em 2012 havia 285 milhões de pessoas no mundo, enquanto a população total era de cerca de 7 bilhões).</span></p> +</div> + +<p><span lang="pt">Em seu código HTML, você pode marcar seções de conteúdo com base em sua funcionalidade. Você pode usar elementos que representam as seções de conteúdo descritas acima sem ambigüidade, e tecnologias assistivas, como leitores de tela, podem reconhecer esses elementos e ajudar com tarefas como "localizar a navegação principal". "ou" encontre o conteúdo principal. " Como mencionamos anteriormente no curso, há um número de <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML#Por_que_precisamos_de_estrutura">consequências de não usar a estrutura de elemento e semâtica certas para o trabalho certo.</a></span></p> + +<p><span lang="pt">Para implementar essa marcação semântica, o HTML fornece tags dedicadas que você pode usar para representar essas seções, por exemplo:</span></p> + +<ul> + <li><strong>cabeçalho</strong>: {{htmlelement("header")}}.</li> + <li><strong>barra de navegação: </strong>{{htmlelement("nav")}}.</li> + <li><strong>conteúdo principal: </strong>{{htmlelement("main")}}, com várias subseções de conteúdo representadas por {{HTMLElement("article")}}, {{htmlelement("section")}}, e elementos {{htmlelement("div")}}.</li> + <li><strong>rodapé: </strong>{{htmlelement("footer")}}.</li> +</ul> + +<h3 id="Aprendizagem_ativa_explorando_o_código_para_o_nosso_exemplo"><span lang="pt">Aprendizagem ativa: explorando o código para o nosso exemplo</span></h3> + +<div class="oSioSc"> +<div id="tw-target"> +<div class="gsrt tw-ta-container tw-nfl" id="tw-target-text-container"> +<p class="tw-data-text tw-ta tw-text-small" dir="ltr" style="text-align: left; height: 48px;"><span lang="pt">Nosso exemplo visto acima é representado pelo seguinte código (você também pode <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/document_and_website_structure/index.html">encontrar o exemplo em nosso repositório GitHub</a>). Gostaríamos que você olhasse o exemplo acima e, em seguida, examine a listagem abaixo para ver quais partes compõem a seção do visual.</span> </p> +</div> +</div> +</div> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + + <title>My page title</title> + <link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300|Sonsie+One" rel="stylesheet" type="text/css"> + <link rel="stylesheet" href="style.css"> + + <!-- as três linhas abaixo são uma correção para que elementos semânticos HTML5 funcionem em versões antigas do Internet Explorer--> + <!--[if lt IE 9]> + <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js"></script> + <![endif]--> + </head> + + <body> + <!-- Esse é o cabeçalho (header) principal que vai ser usado em todas as páginas do nosso website --> + + <header> + <h1>Header</h1> + </header> + + <nav> + <ul> + <li><a href="#">Home</a></li> + <li><a href="#">Our team</a></li> + <li><a href="#">Projects</a></li> + <li><a href="#">Contact</a></li> + </ul> + + <!-- Um formulário de pesquisa é uma outra maneira não linear comum de navegar por um site. --> + + <form> + <input type="search" name="q" placeholder="Search query"> + <input type="submit" value="Go!"> + </form> + </nav> + + <!-- Esse é o conteúdo principal da nossa página --> + <main> + + <!-- Contém um artigo --> + <article> + <h2>Article heading</h2> + + <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Donec a diam lectus. Set sit amet ipsum mauris. Maecenas congue ligula as quam viverra nec consectetur ant hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur.</p> + + <h3>Subsection</h3> + + <p>Donec ut librero sed accu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor.</p> + + <p>Pelientesque auctor nisi id magna consequat sagittis. Curabitur dapibus, enim sit amet elit pharetra tincidunt feugiat nist imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros.</p> + + <h3>Another subsection</h3> + + <p>Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum soclis natoque penatibus et manis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.</p> + + <p>Vivamus fermentum semper porta. Nunc diam velit, adipscing ut tristique vitae sagittis vel odio. Maecenas convallis ullamcorper ultricied. Curabitur ornare, ligula semper consectetur sagittis, nisi diam iaculis velit, is fringille sem nunc vet mi.</p> + </article> + + <!-- O contéudo do elemento aside pode ser aninhado dentro do conteúdo do elemento main --> + <aside> + <h2>Related</h2> + + <ul> + <li><a href="#">Oh I do like to be beside the seaside</a></li> + <li><a href="#">Oh I do like to be beside the sea</a></li> + <li><a href="#">Although in the North of England</a></li> + <li><a href="#">It never stops raining</a></li> + <li><a href="#">Oh well...</a></li> + </ul> + </aside> + + </main> + + <!-- Esse é o rodapé principal que vai ser usado em todas as páginas do nosso website --> + + <footer> + <p>©Copyright 2050 by nobody. All rights reversed.</p> + </footer> + + </body> +</html></pre> + +<p>Reserve um tempo para examinar o código e entendê-lo - os comentários dentro do código também devem ajudá-lo a entendê-lo. Não estamos pedindo que você faça muito mais neste artigo, porque a chave para entender o layout do documento é escrever uma estrutura HTML sólida e, em seguida, defini-la com CSS. Nós vamos aguardar isso até que você comece a estudar o CSS layout como parte do tópico do estudo de CSS.</p> + +<h2 id="Elementos_de_layout_do_HTML_em_mais_detalhes">Elementos de layout do HTML em mais detalhes</h2> + +<p>É bom entender o significado geral de todos os elementos de seção do HTML em detalhes - isso é algo em que você trabalhará gradualmente ao começar a obter mais experiência com o desenvolvimento web. Você pode encontrar muitos detalhes lendo o nosso <a href="/pt-BR/docs/Web/HTML/Element">Elementos HTML</a>. Para agora, estes são as principais definições que você deve tentar entender:</p> + +<ul> + <li>{{HTMLElement('main')}} é para o conteúdo único dessa página.Use <main> apenas uma vez por página, e o coloca diretamente dentro do {{HTMLElement('body')}}. Não é ideal aninhar ele dentro de qualquer outro elemento senão o elemento <body>.</li> + <li>{{HTMLElement('article')}} inclui um bloco de conteúdo relacionado o qual faz sentido por si só, sem o restante da página (por exemplo, uma postagem singular dum blog).</li> + <li>{{HTMLElement('section')}} é similar com <article>, mas ele é mais para agrupar uma única parte de página que constitui em um único pedaço de funcionalidade (por exemplo, um minimapa, ou um conjunto de manchetes e resumo). É considerado boa prática começar cada seção com um <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">título</a>; observe também que você pode dividir um <article>s em diferentes <section>s, ou <section>s em diferentes <article>s, dependendo do contexto.</li> + <li>{{HTMLElement('aside')}} é para conteúdo que não está relacionados diretamente com os conteúdos principais, mas que podem providenciar informações complementares a esses (entradas de glossários, biografia do autor, links relacionados, etc.).</li> + <li>{{HTMLElement('header')}} representa um grupo de conteúdo introdutório. Se ele for um elemento filho do {{HTMLElement('body')}}, Ele é um header global da página do site, mas se for um elemento filho de um {{HTMLElement('article')}} ou {{HTMLElement('section')}}, é definido como um header específico para essa seção ( tenta não confundir isso com <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/The_head_metadata_in_HTML#Adicionando_um_título">títulos e cabeçalhos</a>).</li> + <li>{{HTMLElement('nav')}} contém a funcionalidade principal de navegação da página. Links secundários, etc., não iria na navegação</li> + <li>{{HTMLElement('footer')}} representa um grupo de conteúdo final da página.</li> +</ul> + +<h3 id="Elementos_de_layout_não-semânticos">Elementos de layout não-semânticos</h3> + +<p>Às vezes, você se depara numa situação em que não consegue encontrar um elemento semântico ideal para agrupar alguns itens ou agrupar algum conteúdo. Nesses momentos, convém agrupar um conjunto de elementos para afetá-los todos como uma única entidade com alguns {{glossary("CSS")}} ou {{glossary("JavaScript")}}. Para casos como esses, HTML oferece os elementos {{HTMLElement("div")}} e {{HTMLElement("span")}}. Você deve usá-los preferencialmente com um atributo {{htmlattrxref('class')}} adequado, para fornecer a eles algum tipo de rótulo para que possam ser facilmente referenciados.</p> + +<p>{{HTMLElement("span")}} é um elemento não-semântico embutido, que você deve usar apenas se não conseguir pensar em um elemento de texto semântico melhor para agrupar seu conteúdo ou se não quiser adicionar um significado específico. Por exemplo:</p> + +<pre class="brush: html notranslate"><p>O rei voltou bêbado para o quarto às 01:00, a cerveja não fez nada para ajudá-lo +enquanto ele cambaleando pela porta <span class="editor-note">[Nota do editor: Neste ponto da peça, as luzes devem estar baixas]</span>.</p></pre> + +<p>Nesse caso, a nota do editor deve meramente fornecer orientação extra para o diretor da peça; não é suposto ter um significado semântico extra. Para usuários observador, talvez o CSS fosse usado para distanciar a nota um pouco do texto principal.</p> + +<p>{{HTMLElement("div")}} é um elemento não semântico no nível de bloco, que você deve usar apenas se não conseguir pensar em um elemento de bloco semântico melhor para usar ou se não quiser adicionar um significado específico. Por exemplo, imagine um widget de carrinho de compras que você poderia escolher a qualquer momento durante o seu tempo em um site de comércio eletrônico:</p> + +<pre class="brush: html notranslate"><div class="carrinho-de-compras"> + <h2>Carrinho de compras</h2> + <ul> + <li> + <p><a href=""><strong>Brincos de prata</strong></a>: $99.95.</p> + <img src="../products/3333-0985/thumb.png" alt="Brincos de prata"> + </li> + <li> + ... + </li> + </ul> + <p>Preço total: $237.89</p> +</div></pre> + +<p>Este não é realmente um <code><aside></code>, pois não está necessariamente relacionado ao conteúdo principal da página (você deseja visualizá-lo de qualquer lugar). Nem sequer garante particularmente o uso de uma <code><section></code>, pois não faz parte do conteúdo principal da página. Portanto, um <div> é bom neste caso. Incluímos um cabeçalho como orientação para ajudar os usuários de leitores de tela a encontrá-lo.</p> + +<div class="warning"> +<p><strong>Aviso:</strong> Divs são tão convenientes de usar que é fácil usá-los demais. Como eles não carregam valor semântico, eles apenas confundem seu código HTML. Tome cuidado para usá-los somente quando não houver uma solução semântica melhor e tente reduzir ao mínimo o uso deles, caso contrário, será difícil atualizar e manter seus documentos.</p> +</div> + +<h3 id="Quebras_de_linha_e_regras_horizontais">Quebras de linha e regras horizontais</h3> + +<p>Dois elementos que você ocasionalmente vai usar e desejerá conhecer são {{htmlelement("br")}} e {{htmlelement("hr")}}:</p> + +<p><code><br></code> cria uma quebra de linha em um parágrafo; é a única maneira de forçar uma estrutura rígida em uma situação em que você deseja uma série de linhas curtas fixas, como em um endereço postal ou um poema. Por exemplo:</p> + +<pre class="brush: html notranslate"><p>Era uma vez um homem chamado O'Dell<br> +Que adorava escrever HTML<br> +Mas sua estrutura era ruim, sua semântica era triste<br> +e sua marcação não leu muito bem.</p></pre> + +<p>Sem os elementos <code><br></code>, o parágrafo seria apenas renderizado em uma longa linha (como dissemos anteriormente no curso, o HTML ignora a maioria dos espaços em branco); com elementos <code><br></code> no código, a marcação é renderizada assim</p> + +<p>Era uma vez um homem chamado O'Dell<br> + Que adorava escrever HTML<br> + Mas sua estrutura era ruim, sua semântica era triste<br> + e sua marcação não leu muito bem.</p> + +<p>Elementos <code><hr></code> criam uma regra horizontal no documento que indica uma alteração temática no texto (como uma alteração no tópico ou na cena). Visualmente, apenas se parece com uma linha horizontal. Como um exemplo:</p> + +<pre class="notranslate"><p>Ron foi apoiado em um canto pelas feras inferiores saqueadores. Assustado, mas determinado a proteger seus amigos, ele levantou a varinha e se preparou para a batalha, esperando que seu pedido de socorro tivesse passado.</p> +<hr> +<p>Enquanto isso, Harry estava sentado em casa, olhando para sua declaração de realeza e ponderando quando a próxima série sairia, quando uma carta de socorro encantada voou pela janela e aterrissou em seu colo. Ele leu-o nebuloso e suspirou; "é melhor voltar ao trabalho então", ele pensou.</p></pre> + +<p>Seria renderizado assim:</p> + +<p>Ron foi apoiado em um canto pelas feras inferiores saqueadores. Assustado, mas determinado a proteger seus amigos, ele levantou a varinha e se preparou para a batalha, esperando que seu pedido de socorro tivesse passado.</p> + +<hr> +<p>Enquanto isso, Harry estava sentado em casa, olhando para sua declaração de realeza e ponderando quando a próxima série sairia, quando uma carta de socorro encantada voou pela janela e aterrissou em seu colo. Ele leu-o nebuloso e suspirou; "é melhor voltar ao trabalho então", ele pensou.</p> + +<h2 id="Planejando_um_simples_website">Planejando um simples website</h2> + +<p>Depois de planejar o conteúdo de uma página da Web simples, o próximo passo lógico é tentar descobrir qual conteúdo você deseja colocar em um site inteiro, quais páginas você precisa e como elas devem ser organizadas e vinculadas umas às outras. para a melhor experiência de usuário possível. Isso é chamado {{glossary("Information architecture")}}. Em um site grande e complexo, é possível planejar muito esse processo, mas para um site simples de poucas páginas, isso pode ser bastante simples e divertido!</p> + +<ol> + <li>Lembre-se de que você terá alguns elementos comuns à maioria das páginas (se não todas), como o menu de navegação e o conteúdo do rodapé. Se seu site é para uma empresa, por exemplo, é uma boa ideia ter suas informações de contato disponíveis no rodapé de cada página. Anote o que você deseja que seja comum a todas as páginas.<img alt="the common features of the travel site to go on every page: title and logo, contact, copyright, terms and conditions, language chooser, accessibility policy" src="https://mdn.mozillademos.org/files/12423/common-features.png" style="border-style: solid; border-width: 1px; display: block; height: 375px; margin: 0px auto; width: 600px;"></li> + <li>Em seguida, desenhe um esboço de como a estrutura de cada página deve parecer (pode parecer com nosso site simples acima). Observe o que cada bloco será.<img alt="A simple diagram of a sample site structure, with a header, main content area, two optional sidebars, and footer" src="https://mdn.mozillademos.org/files/12429/site-structure.png" style="border-style: solid; border-width: 1px; display: block; height: 232px; margin: 0px auto; width: 600px;"></li> + <li>Agora, faça um brainstorm de todos os outros conteúdos (comuns a todas as páginas) que você deseja ter no seu site - escreva uma grande lista.<img alt="A long list of all the features that we could put on our travel site, from searching, to special offers and country-specific info" src="https://mdn.mozillademos.org/files/12425/feature-list.png" style="border-style: solid; border-width: 1px; display: block; height: 1066px; margin: 0px auto; width: 600px;"></li> + <li>Em seguida, tente classificar todos esses itens de conteúdo em grupos, para ter uma idéia de quais partes podem viver juntas em páginas diferentes. Isso é muito semelhante a uma técnica chamada {{glossary("Card sorting")}}.<img alt="The items that should appear on a holiday site sorted into 5 categories: Search, Specials, Country-specific info, Search results, and Buy things" src="https://mdn.mozillademos.org/files/12421/card-sorting.png" style="border-style: solid; border-width: 1px; display: block; height: 579px; margin: 0px auto; width: 600px;"></li> + <li>Agora, tente esboçar um mapa do site aproximado - faça um balão para cada página do seu site e desenhe linhas para mostrar o fluxo de trabalho típico entre as páginas. A página inicial provavelmente estará no centro e terá um link para a maioria, senão todas as outras; a maioria das páginas em um site pequeno deve estar disponível na navegação principal, embora haja exceções. Você também pode incluir notas sobre como as coisas podem ser apresentadas.<img alt="A map of the site showing the homepage, country page, search results, specials page, checkout, and buy page" src="https://mdn.mozillademos.org/files/12427/site-map.png" style="border-style: solid; border-width: 1px; display: block; height: 872px; margin: 0px auto; width: 600px;"></li> +</ol> + +<h3 id="Aprendizado_ativo_crie_seu_próprio_mapa_do_site">Aprendizado ativo: crie seu próprio mapa do site</h3> + +<p>Tente realizar o exercício acima para um site de sua própria criação. Sobre o que você gostaria de criar um site?</p> + +<div class="note"> +<p><strong>Nota</strong>: Salve seu trabalho em algum lugar; você pode precisar mais tarde.</p> +</div> + +<h2 id="Resumo">Resumo</h2> + +<p>Nesse ponto, você deve ter uma idéia melhor sobre como estruturar uma página / site. No último artigo deste módulo, estudaremos como depurar HTML.</p> + +<h2 id="Ver_também">Ver também</h2> + +<ul> + <li><a href="/pt-BR/docs/Sections_and_Outlines_of_an_HTML5_document">Seções e estruturas de um documento HTML5</a>: Guia avançado para elementos semânticos do HTML5 e o algoritmo de estrutura de tópicos do HTML5.</li> +</ul> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Advanced_text_formatting", "Learn/HTML/Introduction_to_HTML/Debugging_HTML", "Learn/HTML/Introduction_to_HTML")}}</p> + +<h2 id="Neste_módulo">Neste módulo</h2> + +<ul> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started">Iniciando com HTML</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/The_head_metadata_in_HTML">O que está no cabeçalho? Metadados em HTML</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">Fundamentos do texto em HTML</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Criando_hyperlinks">Criando hyperlinks</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Formatacao_avancada_texto">Formatação avançada de texto</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Estrutura_de_documento_e_sites">Estrutura de documento e sites</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Debugging_HTML">Debugging HTML</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter">Marking up a letter</a></li> + <li><a href="/en-US/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content">Structuring a page of content</a></li> +</ul> diff --git a/files/pt-br/learn/html/introduction_to_html/getting_started/index.html b/files/pt-br/learn/html/introduction_to_html/getting_started/index.html new file mode 100644 index 0000000000..ed79c15034 --- /dev/null +++ b/files/pt-br/learn/html/introduction_to_html/getting_started/index.html @@ -0,0 +1,755 @@ +--- +title: Iniciando com HTML +slug: Aprender/HTML/Introducao_ao_HTML/Getting_started +tags: + - Codificação de Scripts + - Comentário + - Elemento + - Guía + - HTML + - Iniciante + - atributo + - espaço em branco + - referência de entidade +translation_of: Learn/HTML/Introduction_to_HTML/Getting_started +--- +<div>{{LearnSidebar}}</div> + +<div>{{NextMenu("Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">Neste artigo nós abordamos os princípios básicos do HTML, para você começar. Definimos os elementos, atributos e todos os outros termos importantes que você possa ter ouvido e onde eles se encaixam na linguagem. Também mostramos como um elemento HTML é estruturado, como uma página HTML típica é estruturada e explicamos outras importantes características básicas da linguagem. Ao longo do caminho, nós brincaremos com um pouco de HTML, para despertar seu interesse!</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Pré-requisitos:</th> + <td>Básico de informática, <a href="https://developer.mozilla.org/pt-BR/docs/Aprender/Getting_started_with_the_web/instalando_programas_basicos">software básico instalado</a> e conhecimento básico de como <a href="https://developer.mozilla.org/pt-BR/docs/Aprender/Getting_started_with_the_web/lidando_com_arquivos">trabalhar com arquivos</a>.</td> + </tr> + <tr> + <th scope="row">Objetivos:</th> + <td>Obter uma familiaridade básica com a linguagem HTML e adquirir um pouco de prática escrevendo alguns elementos HTML.</td> + </tr> + </tbody> +</table> + +<h2 id="O_que_é_HTML">O que é HTML?</h2> + +<p>{{glossary("HTML")}} (HyperText Markup Language) não é uma linguagem de programação, é uma <em>linguagem de marcação</em> utilizada para dizer ao seu navegador como estruturar a página web que você visita. A página pode ser tanto complicada como simples quanto o desenvolvedor web desejar que seja. HTML consiste em uma série de {{glossary("Element", "elementos")}} que você usa para anexar, envolver ou <em>marcar</em> diferentes partes do conteúdo para que apareça ou aja de uma certa maneira. O fechamento das {{glossary("Tag", "tags")}} pode transformar uma parte do conteúdo dentro do elemento em um link para direcionar à uma outra página web, colocar as palavras em itálico, e assim por diante. Por exemplo, observe o conteúdo a seguir:</p> + +<pre class="notranslate">Meu gato é muito mal-humorado.</pre> + +<p> Se nós quisermos que a linha permaneça, nós podemos especificar que é um parágrafo, fechando-a com a elemento de parágrafo({{htmlelement("p")}}):</p> + +<pre class="brush: html notranslate"><p>Meu gato é muito mal-humorado.</p></pre> + +<h2 id="Anatomia_de_um_elemento_HTML">Anatomia de um elemento HTML</h2> + +<p>Vamos explorar nosso elemento parágrafo um pouco mais:</p> + +<p><img alt="" src="https://mdn.mozillademos.org/files/9347/grumpy-cat-small.png" style="display: block; height: 255px; margin: 0px auto; width: 821px;"></p> + +<p>As partes principais do elemento são:</p> + +<ol> + <li><strong>Tag de abertura:</strong> Consiste no nome do elemento ( neste caso: p ), envolvido entre <strong>parênteses angulares</strong> de abertura e fechamento. Isso indica onde o elemento começa, ou inicia a produzir efeito — neste caso, onde o parágrafo se inicia.</li> + <li><strong> Tag de fechamento:</strong> É o mesmo que a tag de abertura, exceto que este inclui uma barra diagonal antes do nome do elemento. Indica onde o elemento termina — neste caso, onde fica o fim do parágrafo. Falhar em incluir o fechamento de uma tag é um erro comum para iniciantes e pode levar a resultados estranhos.</li> + <li><strong>O conteúdo:</strong> Este é o conteúdo do elemento, que neste caso é somente texto.</li> + <li><strong>O elemento:</strong> A tag de abertura, mais a tag de fechamento, mais o conteúdo, é igual ao elemento.</li> +</ol> + +<h3 id="Aprendizado_ativo_criando_seu_primeiro_elemento_HTML">Aprendizado ativo: criando seu primeiro elemento HTML</h3> + +<p>Edite a linha abaixo na área <em>Entrada</em> colocando-a entre as tags <code><em></code> e <code></em></code> (adicione o <code><em></code> <em>antes para abrir o elemento</em>, e <code></em></code> depois, <em>para fechar o elemento</em>). Isto dará à linha uma ênfase em itálico! Você poderá ver as mudanças efetuadas no momento na área <em>Saída.</em></p> + +<p>Caso você cometa um erro, você pode usar o botão <em>Resetar</em> para desfazer a ação incorreta. Se você realmente não souber o que fazer, pressione o botão <em>Mostrar solução</em> para visualizar a resposta.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Saída ao vivo</h2> +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Código editável</h2> +<p class="a11y-label">Pressione Esc para afastar o foco da área de código (Tab insere um caractere de tabulação).</p> + +<textarea id="code" class="playable-code" style="min-height: 100px;width: 95%"> + Este é meu texto. +</textarea> + +<div class="controls"> + <input id="reset" type="button" value="Resetar" /> + <input id="solution" type="button" value="Mostrar solução" /> +</div> +</pre> + +<pre class="brush: css notranslate">html { + font-family: 'Open Sans Light',Helvetica,Arial,sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +} +</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Mostrar solução'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Mostrar solução') { + textarea.value = solutionEntry; + solution.value = 'Ocultar solução'; + } else { + textarea.value = userEntry; + solution.value = 'Mostrar solução'; + } + updateCode(); +}); + +var htmlSolution = '<em>Este é meu texto.</em>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Mostrar solução') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 400, "", "", "hide-codepen-jsfiddle") }}</p> + +<h3 id="Aninhando_elementos">Aninhando elementos</h3> + +<p>Elementos podem ser inseridos dentro de outros elementos — isto é chamado de <strong>aninhamento</strong>. Se nós quisermos dizer que nosso gato é <strong>muito </strong>mal-humorado, nós poderemos envolver a palavra "muito" com o elemento {{htmlelement("strong")}}, que significa enfatizar fortemente a palavra:</p> + +<pre class="brush: html notranslate"><p>Meu gato é <strong>muito</strong> mal-humorado.</p></pre> + +<p>No entanto, você precisa garantir que seus elementos estejam adequadamente aninhados: no exemplo acima nós abrimos o elemento <code>p</code> primeiro, e então o elemento <code>strong</code>, portanto temos que fechar o elemento <code>strong</code> primeiro, depois o <code>p</code>. O código a seguir está errado:</p> + +<pre class="example-bad brush: html notranslate"><p>Meu gato é <strong>muito mal-humorado.</p></strong></pre> + +<p>Os elementos devem abrir e fechar corretamente para que eles fiquem claramente dentro ou fora do outro. Caso eles se sobreponham, como no exemplo acima, então o seu navegador tentará adivinhar o que você quis dizer, e talvez você obtenha resultados inesperados. Então não faça isso!</p> + +<h3 id="Elementos_em_bloco_versus_elementos_inline">Elementos em bloco versus elementos inline</h3> + +<p>Há duas categorias importantes no HTML, que você precisa conhecer. Eles são elementos em bloco e elementos inline.</p> + +<ul> + <li>Elementos em bloco formam um bloco visível na página — eles aparecerão em uma nova linha logo após qualquer elemento que venha antes dele, e qualquer conteúdo depois de um elemento em bloco também aparecerá em uma nova linha. Elementos em bloco geralmente são elementos estruturais na página que representam, por exemplo: parágrafos, listas, menus de navegação, rodapés etc. Um elemento em bloco não seria aninhado dentro de um elemento inline, mas pode ser aninhado dentro de outro elemento em bloco.</li> + <li>Elementos inline (na linha) são aqueles que estão contidos dentro de elementos em bloco envolvem apenas pequenas partes do conteúdo do documento e não parágrafos inteiros ou agrupamentos de conteúdo. Um elemento inline não fará com que uma nova linha apareça no documento: os elementos inline geralmente aparecem dentro de um parágrafo de texto, por exemplo: um elemento {{htmlelement("a")}}(hyperlink) ou elementos de ênfase como {{htmlelement("em")}} ou {{htmlelement("strong")}}.</li> +</ul> + +<p>Veja o seguinte exemplo:</p> + +<pre class="brush: html notranslate"><em>primeiro</em><em>segundo</em><em>terceiro</em> + +<p>quarto</p><p>quinto</p><p>sexto</p> +</pre> + +<p>O elemento {{htmlelement("em")}} é inline, então como você pode ver abaixo, os três primeiros elementos ficam na mesma linha uns dos outros sem espaço entre eles. O {{htmlelement("p")}}, por outro lado, é um elemento em bloco, então cada elemento aparece em uma nova linha, com espaço acima e abaixo de cada um (o espaçamento é devido à <a href="/pt-BR/docs/Learn/CSS/First_steps">estilização CSS</a> padrão que o browser aplica aos parágrafos).</p> + +<p>{{ EmbedLiveSample('Elementos_em_bloco_versus_elementos_inline', 700, 200, "", "") }}</p> + +<div class="note"> +<p><strong>Nota</strong>: o HTML5 redefiniu as categorias de elemento em HTML5: veja <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/section-index.html#element-content-categories">Categorias de conteúdo de elementos</a>. Enquanto essas definições são mais precisas e menos ambíguas que as anteriores, elas são muito mais complicadas de entender do que "em bloco" e "inline", então usaremos estas ao longo deste tópico.</p> +</div> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: <span class="tlid-translation translation" lang="pt"><span title="">Os termos "bloco" e "inline", conforme usados neste tópico, não devem ser confundidos com os <a href="/pt-BR/docs/Learn/CSS/Introduction_to_CSS/Box_model#Types_of_CSS_boxes">tipos de caixas CSS</a> com os mesmos nomes.</span> <span title="">Embora eles se correlacionem por padrão, alterar o tipo de exibição CSS não altera a categoria do elemento e não afeta em quais elementos ele pode conter e em quais elementos ele pode estar contido. Um dos motivos pelos quais o HTML5 abandonou esses termos foi</span> <span title="">evitar essa confusão bastante comum.</span></span> </p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: Você pode encontrar páginas de referência úteis que incluem uma lista de elementos inline e em bloco — veja <a href="/en-US/docs/Web/HTML/Block-level_elements">elementos em bloco</a> e <a href="/en-US/docs/Web/HTML/Inline_elements">elementos inline</a>.</p> +</div> + +<h3 id="Elementos_vazios">Elementos vazios</h3> + +<p>Nem todos os elementos seguem o padrão acima de: tag de abertura, conteúdo, tag de fechamento. Alguns elementos consistem apenas em uma única tag, que é geralmente usada para inserir/incorporar algo no documento no lugar em que ele é incluído. Por exemplo, o elemento {{htmlelement("img")}} insere uma imagem em uma página na posição em que ele é incluído:</p> + +<pre class="brush: html notranslate"><img src="https://raw.githubusercontent.com/mdn/beginner-html-site/gh-pages/images/firefox-icon.png"></pre> + +<p>Isto exibirá em sua página:</p> + +<p>{{ EmbedLiveSample('Elementos_vazios', 700, 300, "", "", "hide-codepen-jsfiddle") }}</p> + +<div class="note"> +<p><strong>Nota</strong>: Elementos vazios são também chamados de <em>void elements</em>.</p> +</div> + +<h2 id="Atributos">Atributos</h2> + +<p>Elementos também podem conter atributos, que se apresentam da seguinte forma:</p> + +<p><img alt='&amp;lt;p class="editor-note">My cat is very grumpy&amp;lt;/p>' src="https://mdn.mozillademos.org/files/9345/grumpy-cat-attribute-small.png" style="display: block; height: 156px; margin: 0px auto; width: 1287px;"></p> + +<p>Atributos contém informação extra sobre o elemento, mas que você não deseja que apareça no conteúdo. Nete caso, o atributo <code>class</code> permite que você dê ao elemento um nome de identificação, que pode ser usada mais tarde para direcionar informação de estilo ao elemento e outras coisas.</p> + +<p>Um atributo deve conter:</p> + +<ol> + <li>Um espaço entre ele e o nome do elemento (ou o atributo anterior, caso o elemento já contenha um ou mais atributos.)</li> + <li>O nome do atributo, seguido por um sinal de igual.</li> + <li><span class="tlid-translation translation" lang="pt"><span title="">Um valor de atributo, com aspas de abertura e fechamento em volta dele.</span></span></li> +</ol> + +<h3 id="Aprendizado_ativo_Adicionando_atributos_a_um_elemento">Aprendizado ativo: Adicionando atributos a um elemento</h3> + +<p><span class="tlid-translation translation" lang="pt"><span title="">Outro exemplo de um elemento é </span></span>{{htmlelement("a")}}<span class="tlid-translation translation" lang="pt"><span title=""> </span></span>—<span class="tlid-translation translation" lang="pt"><span title=""> isso significa "âncora" e fará com que a parte do texto que ele envolve vire um link.</span> <span title="">Isso pode ter vários atributos, mas o mais comuns são os seguintes:</span></span></p> + +<ul> + <li>O valor desse atributo especifica o endereço da web para o qual você deseja que o link aponte; onde o navegador irá quando o link for clicado. Por exemplo <code>href="https://www.mozilla.org/"</code>.</li> + <li><code>title</code>: O atributo <code>title</code> especifica uma informação extra sobre o link, assim como o assunto da página que está sendo linkada. Por exemplo <code>title="Homepage da Mozilla"</code>. Isto será exibido como uma <em>tooltip (dica de contexto)</em> quando passarmos o mouse sobre o link.</li> +</ul> + +<p><span class="tlid-translation translation" lang="pt"><span title="">Edite a linha abaixo na área de Entrada para transformá-la em um link para o seu site favorito.</span></span></p> + +<ol> + <li>Primeiro, adicione o elemento <code><a></code>.</li> + <li>Segundo, adicione o atributo <code>href</code> e o atributo <code>title</code>.</li> + <li>Por último, especifique o atributo <code>target</code> para abrir o link em uma nova aba.</li> +</ol> + +<p><span class="tlid-translation translation" lang="pt"><span title="">Você poderá ver as atualizações das alterações ao vivo na área Saída.</span> <span title="">Você deve ver um link que, quando passa o mouse sobre ele, exibe o valor do atributo </span></span><code>title</code><span class="tlid-translation translation" lang="pt"><span title=""> e, quando clicado, navega para o endereço da web no atributo </span></span><code>href</code><span class="tlid-translation translation" lang="pt"><span title="">.</span> <span title="">Lembre-se de que você precisa incluir um espaço entre o nome do elemento e cada atributo.</span></span></p> + +<p>Caso você cometa um erro, você poderá desfazê-lo usando o botão <em>Reset</em>ar. Caso você realmente não saiba como fazer, pressione o botão <em>Mostrar solução</em> para ver a resposta.</p> + +<div class="hidden"> +<h6 id="Playable_code2">Playable code2</h6> + +<pre class="brush: html notranslate"><h2>Saída ao vivo</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Código editável</h2> +<p class="a11y-label">Pressione Esc para afastar o foco da área de código (Tab insere um caractere de tabulação).</p> + +<textarea id="code" class="input" style="min-height: 100px;width: 95%"> + &lt;p&gt;Um link para o meu site favorito.&lt;/p&gt; +</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Resetar"> + <input id="solution" type="button" value="Mostrar solução"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Mostrar solução'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Mostrar solução') { + textarea.value = solutionEntry; + solution.value = 'Ocultar solução'; + } else { + textarea.value = userEntry; + solution.value = 'Mostrar solução'; + } + updateCode(); +}); + +var htmlSolution = '<p>Um link para o meu <a href="https://www.mozilla.org/" title="Página da Mozilla" target="_blank"> site favorito</a>.</p>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Mostrar solução') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code2', 700, 400, "", "", "hide-codepen-jsfiddle") }}</p> + +<h3 id="Atributos_boleanos">Atributos boleanos</h3> + +<p>Às vezes você verá atributos escritos sem valores — isso é permitido nos chamados atributos boleanos, e eles podem ter somente um valor, que é geralmente o mesmo nome do atributo. Por exemplo, o atributo {{htmlattrxref("disabled", "input")}} você pode atribuir para os elementos de entrada de formulários, se desejar que estes estejam desativados (acinzentados), para que o usuário não possa inserir nenhum dado neles.</p> + +<pre class="notranslate"><input type="text" disabled="disabled"></pre> + +<p>De forma abreviada, é perfeitamente permitido escrever isso da seguinte maneira (também incluímos um elemento de entrada de formulário não desativado para referência, para dar uma idéia do que está acontecendo):</p> + +<pre class="brush: html notranslate"><!-- o uso do atributo disabled impede que o usuário final insira texto na caixa de entrada --> +<input type="text" disabled> + +<!-- O usuário pode inserir texto na caixa de entrada a seguir, pois não contém o atributo disabled --> +<input type="text"> +</pre> + +<p>Ambos resultarão em uma <em>Saída</em> da seguinte forma:</p> + +<p>{{ EmbedLiveSample('Atributos_boleanos', 700, 100) }}</p> + +<h3 id="Omitindo_as_aspas_dos_valores_do_atributo">Omitindo as aspas dos valores do atributo</h3> + +<p>Olhando a World Wide Web (internet), você encontrará todos os tipos de estilos de marcação HTML, incluindo valores de atributos sem as aspas. Isso é permitido em algumas circunstâncias, mas irá quebrar sua marcação em outras. Por exemplo, se voltarmos ao exemplo anterior de link , nós podemos escrever a versão básica deste somente com o atributo <code>href</code>, da seguinte forma:</p> + +<pre class="notranslate"><a href=<code>https://www.mozilla.org/</code>>site favorito</a></pre> + +<p>No entanto, assim que adicionamos o atributo <code>title</code> neste elemento, a marcação resultará em erro:</p> + +<pre class="example-bad brush: html notranslate"><a href=<code>https://www.mozilla.org/</code> title=The Mozilla homepage>site favorito</a></pre> + +<p>Neste ponto, o navegador irá interpretar errado sua marcação, de modo a pensar que o atributo <code>title</code> trata-se, na verdade, de três atributos: o atributo <code>title</code> com o valor "The", e dois atributos boleanos, <code>Mozilla</code> e <code>homepage</code>. Esta obviamente não era a intenção e irá causar erros ou um comportamento inesperado no código, assim como visto no exemplo abaixo. Tente colocar o mouse em cima do link para visualizar qual é o título que aparece!</p> + +<p>{{ EmbedLiveSample('Omitindo_as_aspas_dos_valores_do_atributo', 700, 100) }}</p> + +<p>Nossa recomendação é <em>sempre incluir as aspas nos valores dos atributos </em>— isto evita inúmeros problemas, além de resultar em um código mais legível.</p> + +<h3 id="Aspas_simples_ou_duplas">Aspas simples ou duplas?</h3> + +<p>Você pode perceber que os valores dos atributos exemplificados neste artigo estão todos com aspas duplas, mas você poderá ver aspas simples no HTML de algumas pessoas. Esta é puramente uma questão de estilo e você pode se sentir livre para escolher qual prefere. As duas linhas de código a seguir são equivalentes:</p> + +<pre class="brush: html notranslate"><a href="http://www.example.com">Um link para o exemplo.</a> + +<a href='http://www.example.com'>Um link para o exemplo.</a></pre> + +<p>Entretanto, você deve se certificar de não misturar os dois tipos de aspas juntos. O exemplo a seguir está errado!</p> + +<pre class="example-bad brush: html notranslate"><a href="http://www.exemplo.com'>Um link para o exemplo.</a></pre> + +<p>Se utilizar um tipo de aspas no seu HTML, você pode inserir o outro tipo de aspas no texto, por exemplo, que não ocorrerá erro, desta forma: </p> + +<pre class="brush: html notranslate"><a href="http://www.example.com" title="Isn't this fun?">A link to my example.</a></pre> + +<p>No entanto, se você quiser incluir aspas, dentro de aspas onde ambas as aspas são do mesmo tipo (aspas simples ou aspas duplas), será necessário usar entidades HTML para as aspas. <span title="">Por exemplo, isso irá quebrar:</span></p> + +<pre class="example-bad brush: html notranslate"><a href='http://www.example.com' title='Isn't this fun?'>A link to my example.</a></pre> + +<p>Então você precisa fazer isso:</p> + +<pre class="brush: html notranslate"><a href='http://www.example.com' title='Isn&#39;t this fun?'>A link to my example.</a></pre> + +<h2 id="Anatomia_de_um_documento_HTML">Anatomia de um documento HTML</h2> + +<p>Já vimos os conceitos básicos dos elementos individuais do HTML, mas eles não são muito úteis sozinhos, Vamos aprender como estes elementos individuais são combinados entre si para criar uma página HTML inteira:</p> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>My test page</title> + </head> + <body> + <p>This is my page</p> + </body> +</html></pre> + +<p>Neste código nós temos:</p> + +<ol> + <li><code><!DOCTYPE html></code>: O doctype. Nas névoas do tempo, quando o HTML era recente (por volta de 1991/2), doctypes funcionavam como links para uma série de regras as quais uma página HTML tinha que seguir para ser considerada uma página com um bom HTML, o que poderia significar a verificação automática de erros e outras coisas úteis. Ele costumava ser assim: + + <pre class="notranslate"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre> + <span class="tlid-translation translation" lang="pt"><span title="">No entanto, atualmente, ninguém se importa com eles, e eles são realmente apenas um artefato histórico que precisa ser incluído para que tudo funcione corretamente.</span> <span title=""><! DOCTYPE html> é a menor cadeia de caracteres que conta como um doctype válido;</span> <span title="">é tudo o que você realmente precisa saber.</span></span></li> + <li><code><html></html></code>: O elemento <a href="/pt-BR/docs/Web/HTML/Element/html" title="The HTML <html> element represents the root (top-level element) of an HTML document, so it is also referred to as the root element. All other elements must be descendants of this element."><code><html></code></a> envolve o conteúdo da página inteira e é conhecido como o "elemento raiz" da página HTML.</li> + <li><code><head></head></code>: O elemento <a href="/pt-BR/docs/Web/HTML/Element/head" title="The HTML <head> element contains machine-readable information (metadata) about the document, like its title, scripts, and style sheets."><code><head></code></a> atua como um container para todo o conteúdo da página HTML que não é visível para os visitantes do site. Isso inclui palavras-chave e a descrição da página que você quer que apareça nos resultados de busca, o CSS para estilizar o conteúdo da página (apesar de ser recomendado faze-lo num aquivo separado), declaração de conjunto de caracteres, e etc. Você aprenderá mais sobre isso no próximo artigo da série.</li> + <li><code><meta charset="utf-8"></code>: Este elemento define o tipo da codificação dos caracteres que o seu documento deve usar, neste caso, para o tipo UTF-8, que inclui a maioria dos caracteres das linguas humanas escritas. Essencialmente, ele consegue lidar com qualquer tipo de conteúdo textual que você puder colocar no documento. Não há motivos para não indicar essa informação e esse elemento ajuda a evitar vários problemas na sua página.</li> + <li><code><title></title></code>: O elemento <a href="/pt-BR/docs/Web/HTML/Element/title" title="The HTML Title element (<title>) defines the document's title that is shown in a browser's title bar or a page's tab."><code><title></code></a>. Isto define o título de sua página, que aparecerá na guia do navegador na qual a página está carregada e é usado para descrevê-la quando for salva nos favoritos.</li> + <li><code><body></body></code>: O elemento <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/body" title="The HTML <body> Element represents the content of an HTML document. There can be only one <body> element in a document."><code><body></code></a> contém <em>todo</em> o conteúdo que você quer mostrar aos usuários quando eles visitarem sua página, como texto, imagens, vídeos, jogos, faixas de áudio reproduzíveis, ou qualquer outra coisa.</li> +</ol> + +<h3 id="Aprendizado_ativo_Adicionando_alguns_recursos_ao_documento_HTML">Aprendizado ativo: Adicionando alguns recursos ao documento HTML</h3> + +<p>Se você quiser experimentar como funciona um documento HTML no seu computador, você pode:</p> + +<ol> + <li>Copiar o exemplo de página HTML mostrada acima.</li> + <li>Criar um novo documento em seu editor de texto.</li> + <li>Colar o código no novo arquivo de texto.</li> + <li>Salvar o arquivo com o nome <code>index.html</code>.</li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: Você também pode encontrar o template básico de HTML no <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/getting-started/index.html">MDN Learning Area Github repo</a>.</p> +</div> + +<p>Você pode abrir este arquivo no navegador para ver como o código renderizado se apresenta, e então, editar o código e atualizar a página no navegador para ver o resultado com as mudanças. Inicialmente será exibido assim:</p> + +<p><img alt="A simple HTML page that says This is my page" src="https://mdn.mozillademos.org/files/12279/template-screenshot.png" style="display: block; height: 365px; margin: 0px auto; width: 595px;">Neste exercício, você pode editar o código localmente em seu computador, com descrito acima, ou você pode editá-lo na janela de exemplo editável abaixo (esta janela editável representa apenas o conteúdo do elemento <code><body></code> , neste caso). Nós gostaríamos que você seguisse as seguintes etapas:</p> + +<ul> + <li>Logo abaixo da tag de abertura <a href="/pt-BR/docs/Web/HTML/Element/body" title="The HTML <body> Element represents the content of an HTML document. There can be only one <body> element in a document."><code><body></code></a>, adicione um título principal para o documento. Isso deve estar dentro da tag de abertura <code><h1></code>e da tag de fechamento <code></h1></code> .</li> + <li>Edite o conteúdo do parágrafo para incluir algum texto sobre algo de seu interesse.</li> + <li>Faça com que todas as palavras importantes sejam destacadas em negrito, colocando-as dentro da tag de abertura <code><strong></code> e da tag de fechamento <code></strong></code> .</li> + <li>Adicione um link ao seu parágrafo, conforme <a href="/pt-BR/Aprender/HTML/Introducao_ao_HTML/Getting_started#Aprendizado_ativo_Adicionando_atributos_a_um_elemento">explicado anteriormente neste artigo</a>.</li> + <li>conforme explicado anteriormente no artigo. <span title="">Você receberá pontos de bônus se conseguir vincular a uma imagem diferente (localmente no seu computador ou em outro lugar da web).</span></li> +</ul> + +<p>Caso você cometa um erro, você poderá desfazê-lo usando o botão <em>Resetar</em>. Caso você realmente não saiba como fazer, pressione o botão <em>Mostrar solução</em> para ver a resposta.</p> + +<div class="hidden"> +<h6 id="Playable_code3">Playable code3</h6> + +<pre class="brush: html notranslate"><h2>Saída ao vivo</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Código editável</h2> +<p class="a11y-label">Pressione Esc para afastar o foco da área de código (Tab insere um caractere de tabulação).</p> + +<textarea id="code" class="input" style="min-height: 100px;width: 95%"> + &lt;p&gt;Esta é minha página&lt;/p&gt; +</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Resetar"> + <input id="solution" type="button" value="Mostrar Solução"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h1 { + color: blue; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +img { + max-width: 100%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Mostrar Solução'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Mostrar Solução') { + textarea.value = solutionEntry; + solution.value = 'Ocultar Solução'; + } else { + textarea.value = userEntry; + solution.value = 'Mostrar Solução'; + } + updateCode(); +}); + +var htmlSolution = '<h1>Algumas músicas</h1><p>Gosto muito de <strong> tocar bateria </strong>. Um dos meus bateristas favoritos é Neal Peart, que toca na banda <a href="https://pt.wikipedia.org/wiki/Rush" title="Artigo da Rush na Wikipedia">Rush</a>. Meu álbum favorito do Rush atualmente é <a href="http://www.deezer.com/album/942295">Moving Pictures</a>.</p><img src="http://www.cygnus-x1.net/links/rush/images/albums/sectors/sector2-movingpictures-cover-s.jpg">'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Mostrar Solução') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code3', 700, 600, "", "", "hide-codepen-jsfiddle") }}</p> + +<h3 id="Espaços_em_branco_no_HTML">Espaços em branco no HTML</h3> + +<p>Nos exemplos anteriores, você pode ter percebido a presença de espaços em branco nos códigos — isto não é necessário; os dois trechos de códigos a seguir são equivalentes:</p> + +<pre class="brush: html notranslate"><p>Dogs are silly.</p> + +<p>Dogs are + silly.</p></pre> + +<p>Não importa quantos espaços em branco você use (que pode incluir caracteres de espaço, mas também quebras de linha), o analisador de HTML reduz cada um deles em um único espaço ao renderizar o código. Então, por que espaço em branco? A resposta é legibilidade — é muito mais fácil entender o que está acontecendo no seu código, se você o tiver bem formatado, e não apenas agrupado em uma grande confusão. Em nosso HTML, cada elemento aninhado é indentado em dois espaços a mais do que aquele em que está localizado. Depende de você que estilo de formatação você usa (quantos espaços para cada nível de recuo, por exemplo), mas considere formatá-lo.</p> + +<h2 id="Referências_de_entidades_incluindo_caracteres_especiais_no_HTML">Referências de entidades: incluindo caracteres especiais no HTML</h2> + +<p>No HTML, os caracteres <code><</code>, <code>></code>,<code>"</code>,<code>'</code> e o <code>&</code> são caracteres especiais. Eles fazem parte da própria sintaxe HTML; portanto, como você inclui um desses caracteres no seu texto? Por exemplo, se você realmente deseja usar um e comercial ou sinal de menor que, e não tenha ele interpretado como código.</p> + +<p>Temos que usar referências de caracteres — códigos especiais que representam caracteres e podem ser usados nessas circunstâncias. Cada referência de caractere é iniciada com um e comercial (&) e finalizada por um ponto e vírgula (;).</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Caractere literal</th> + <th scope="col">Referência de caractere equivalente</th> + </tr> + </thead> + <tbody> + <tr> + <td><</td> + <td>&lt;</td> + </tr> + <tr> + <td>></td> + <td>&gt;</td> + </tr> + <tr> + <td>"</td> + <td>&quot;</td> + </tr> + <tr> + <td>'</td> + <td>&apos;</td> + </tr> + <tr> + <td>&</td> + <td>&amp;</td> + </tr> + </tbody> +</table> + +<p>No exemplo abaixo, você pode ver dois parágrafos, que estão falando sobre tecnologias da web:</p> + +<pre class="brush: html notranslate"><p>Em HTML, você define um parágrafo usando o elemento <p>.</p> + +<p>Em HTML, você define um parágrafo usando o elemento &lt;p&gt;.</p></pre> + +<p>Na saída ao vivo abaixo, você pode ver que o primeiro parágrafo deu errado, porque o navegador pensa que a segunda instância de <p> está iniciando um novo parágrafo. O segundo parágrafo parece bom, porque substituímos os parênteses angulares por referências de caracteres.</p> + +<p>{{EmbedLiveSample('Referências_de_entidades_incluindo_caracteres_especiais_no_HTML', 7700, 200, "", "", "hide-codepen-jsfiddle")}}</p> + +<div class="note"> +<p><strong>Nota</strong>: A tabela com todas as referências de caracteres disponíveis em HTML pode ser encontrada na Wikipédia: <a class="external text" href="http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references" rel="nofollow">List of XML and HTML character entity references</a>. Observe que você não precisa usar referências de entidade para outros símbolos, pois os navegadores modernos manipularão os símbolos reais muito bem, desde que a codificação de caracteres do HTML esteja definida como UTF-8.</p> +</div> + +<h2 id="Comentários_no_HTML">Comentários no HTML</h2> + +<p>Em HTML, assim como na maioria das linguagens de programação, há um mecanismo para escrevermos comentários no código — comentários são ignorados pelo navegador e são invisíveis para o usuário, seu propósito é permitir a inclusão de comentários para descrever como o código funciona, especificar o que cada parte dele faz, e por ai vai. <span class="tlid-translation translation" lang="pt"><span title="">Isso pode ser muito útil se você retornar a uma base de código em que não trabalhou há muito tempo e não se lembrar do que fez </span></span> — <span class="tlid-translation translation" lang="pt"><span title=""> ou se você entregar seu código para outra pessoa trabalhar.</span></span></p> + +<p>Para transformar uma seção do conteúdo HTML em um comentário, você precisa agrupá-lo nos marcadores especiais <code><!--</code> e <code>--></code>, por exemplo:</p> + +<pre class="brush: html notranslate"><p>Eu não estou dentro de um comentário</p> + +<!-- <p>Eu estou!</p> --></pre> + +<p>Como você pode ver abaixo, o primeiro parágrafo fica visível na saída ao vivo, mas o segundo (que é um comentário) não.</p> + +<p>{{ EmbedLiveSample('Comentários_no_HTML', 700, 100) }}</p> + +<h2 id="Sumário">Sumário</h2> + +<p>Você chegou ao final do artigo — esperamos que tenha gostado do seu tour pelos princípios básicos do HTML! Nesse ponto, você deve entender como é a linguagem, como ela funciona em um nível básico e ser capaz de escrever alguns elementos e atributos. Este é o lugar perfeito para se estar agora, já que os artigos subseqüentes deste módulo abordarão algumas das coisas que você já examinou com mais detalhes e introduzirão alguns novos conceitos da linguagem. Fique ligado!</p> + +<div class="note"> +<p><strong>Nota</strong>: Nesse ponto, à medida que você começa a aprender mais sobre HTML, também pode querer explorar os conceitos básicos de Cascading Style Sheets, ou <a href="/pt-BR/docs/Aprender/CSS">CSS</a>. CSS é a linguagem usada para estilizar suas páginas da web (por exemplo, alterando a fonte ou as cores ou alterando o layout da página). HTML e CSS vão muito bem juntos, como você descobrirá em breve.</p> +</div> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/pt-BR/docs/Web/HTML/Applying_color">Aplicando cores a elementos HTML usando CSS</a> </li> +</ul> + +<div>{{NextMenu("Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML", "Learn/HTML/Introduction_to_HTML")}}</div> + +<h2 id="Neste_módulo">Neste módulo</h2> + +<ul> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started">Iniciando com HTML</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/The_head_metadata_in_HTML">O que está no cabeçalho? Metadados em HTML</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">Fundamentos do texto em HTML</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Criando_hyperlinks">Criando links</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Formatacao_avancada_texto">Formatação avançada de texto</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Estrutura_de_documento_e_sites">Estrutura do documento e site</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Debugging_HTML">Depurando HTML</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Marking_up_a_letter">Marcando uma carta</a></li> + <li><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Structuring_a_page_of_content">Estruturando o conteudo de uma página</a></li> +</ul> diff --git a/files/pt-br/learn/html/introduction_to_html/html_text_fundamentals/index.html b/files/pt-br/learn/html/introduction_to_html/html_text_fundamentals/index.html new file mode 100644 index 0000000000..47ca918b68 --- /dev/null +++ b/files/pt-br/learn/html/introduction_to_html/html_text_fundamentals/index.html @@ -0,0 +1,955 @@ +--- +title: Fundamentos do texto em HTML +slug: Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML +tags: + - Aprender + - Guía + - HTML + - Iniciante + - Introdução + - Texto + - cabeçalho + - parágrafo + - semántica +translation_of: Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML", "Learn/HTML/Introduction_to_HTML/Creating_hyperlinks", "Learn/HTML/Introduction_to_HTML")}}</div> + +<p class="summary">Um dos principais objetivos do HTML é dar estrutura de texto e significado, também conhecido como {{glossary("semantics", "semântica")}}), para que um navegador possa exibi-lo corretamente. Este artigo explica a forma como {{glossary("HTML")}} pode ser usado para estruturar uma página de texto, adicionar títulos e parágrafos, enfatizar palavras, criar listas e muito mais.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Pré-requisitos:</th> + <td>Familiaridade básica em HTML, tal como coberto <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started">Iniciando com o HTML.</a></td> + </tr> + <tr> + <th scope="row">Objetivo:</th> + <td>Aprenda como marcar uma página básica de texto para dar-lhe estrutura e significado — incluindo parágrafos, títulos, listas, ênfase e citações.</td> + </tr> + </tbody> +</table> + +<h2 id="O_básico_Cabeçalhos_e_Parágrafos">O básico: Cabeçalhos e Parágrafos</h2> + +<p>O texto mais estruturado é composto por títulos e parágrafos,esteja você lendo uma história, um jornal, um livro da faculdade, uma revista, etc.</p> + +<p><img alt="An example of a newspaper front cover, showing use of a top level heading, subheadings and paragraphs." src="https://mdn.mozillademos.org/files/12371/newspaper_small.jpg" style="display: block; margin: 0 auto;"></p> + +<p>O conteúdo estruturado torna a experiência de leitura mais fácil e mais agradável.</p> + +<p>Em HTML, cada parágrafo deve ser envolvido em um elemento {{htmlelement("p")}} , assim:</p> + +<pre class="brush: html notranslate"><p>Eu sou um parágrafo, oh sim, eu sou.</p></pre> + +<p>Cada título deve ser envolvido em um elemento de título:</p> + +<pre class="brush: html notranslate"><h1>Eu sou o título da história.</h1></pre> + +<p>Existem seis elementos de título — {{htmlelement("h1")}}, {{htmlelement("h2")}}, {{htmlelement("h3")}}, {{htmlelement("h4")}}, {{htmlelement("h5")}} e {{htmlelement("h6")}} . Cada elemento representa um nível diferente de conteúdo no documento; <code><h1></code> representa o título principal, <code><h2></code> representa subtítulos, <code><h3></code> representa sub-subtítulos, e assim por diante.</p> + +<h3 id="Implementando_hierarquia_estrutural">Implementando hierarquia estrutural</h3> + +<p>Como exemplo, em uma história, <code><h1></code> representaria o título da história, <code><h2></code> representaria o título de cada capítulo e <code><h3></code> representaria sub-seções de cada capítulo, e assim por diante.</p> + +<pre class="brush: html notranslate"><h1>O furo esmagador</h1> + +<p>Por Chris Mills</p> + +<h2>Capítulo 1: A noite escura</h2> + +<p>Era uma noite escura. Em algum lugar, uma coruja piou. A chuva caiu no chão ...</p> + +<h2>Capítulo 2: O eterno silêncio</h2> + +<p>Nosso protagonista não podia ver mais que um relance da figura sombria ...</p> + +<h3>O espectro fala</h3> + +<p>Várias horas se passaram, quando, de repente, o espectro ficou em pé e exclamou: "Por favor, tenha piedade da minha alma!"</p></pre> + +<p>Depende realmente de você, o quê, exatamente, representam os elementos envolvidos, desde que a hierarquia faça sentido. Você só precisa ter em mente algumas das melhores práticas ao criar tais estruturas:</p> + +<ul> + <li>Preferencialmente, você deve usar apenas um <code><h1></code> por página — esse é o título do nível superior e todos os outros ficam abaixo dele, na hierarquia.</li> + <li>Certifique-se de usar os títulos na ordem correta na hierarquia. Não use <code><h3></code> para representar subtítulos, seguido de <code><h2></code>para representar sub-subtítulos - isso não faz sentido e levará a resultados estranhos.</li> + <li>Dos seis níveis de cabeçalho disponíveis, você deve usar no máximo três por página, a menos que considere necessário usar mais. Documentos com vários níveis (ou seja, uma hierarquia profunda de cabeçalho) tornam-se difíceis de navegar. Nessas ocasiões, é aconselhável espalhar o conteúdo por várias páginas, se possível.</li> +</ul> + +<h3 id="Por_que_precisamos_de_estrutura">Por que precisamos de estrutura?</h3> + +<p>Para responder a esta pergunta, dê uma olhada em <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/html-text-formatting/text-start.html">text-start.html</a> — o ponto de partida do nosso exemplo em execução para este artigo (uma boa receita de hummus.) Você deve salvar uma cópia desse arquivo em sua máquina local, pois será necessário para os exercícios posteriores. No momento, o corpo deste documento contém várias partes do conteúdo — elas não são marcadas de forma alguma, mas são separadas por quebras de linha (Enter/Return pressionado para ir para a próxima linha).</p> + +<p>No entanto, quando você abre o documento em seu navegador, você verá que o texto aparece como uma só parte!</p> + +<p><img alt="A webpage that shows a wall of unformatted text, because there are no elements on the page to structure it." src="https://mdn.mozillademos.org/files/14827/Screen%20Shot%202017-03-29%20at%2009.20.35.png" style="display: block; height: 377px; margin: 0px auto; width: 600px;"></p> + +<p>Isso ocorre porque não há elementos para dar a estrutura de conteúdo, então o navegador não sabe o que é um título e o que é um parágrafo. Além disso:</p> + +<ul> + <li>Os usuários que olham para uma página web tendem a procurar rapidamente conteúdo relevante, muitas vezes apenas lendo os títulos para começar (normalmente <a href="http://www.nngroup.com/articles/how-long-do-users-stay-on-web-pages/">passamos um tempo muito curto em uma página web</a>). Se eles não conseguem ver nada útil dentro de alguns segundos, eles provavelmente ficarão frustrados e irão para outro lugar.</li> + <li>Os mecanismos de pesquisa que indexam sua página consideram o conteúdo dos títulos como palavras-chave importantes para influenciar os rankings de pesquisa da página. Sem cabeçalhos, sua página irá funcionar mal em termos de {{glossary("SEO")}} (Search Engine Optimization).</li> + <li>As pessoas com deficiência visual, muitas vezes, não leem páginas da web; elas escutam-na em vez disso. Isso é feito com um software chamado <a href="https://pt.wikipedia.org/wiki/Leitor_de_tela" title="screen readers">leitor de tela</a>. Este software fornece formas de obter acesso rápido a determinado conteúdo de texto. Entre as várias técnicas utilizadas, elas fornecem um esboço do documento lendo os títulos, permitindo que seus usuários encontrem as informações que precisam rapidamente. Se os títulos não estiverem disponíveis, eles serão obrigados a ouvir todo o documento lido em voz alta.</li> + <li>Para criar um estilo de conteúdo com {{glossary("CSS")}}, ou fazer coisas interessantes com {{glossary("JavaScript")}}, você precisa ter elementos que envolvam o conteúdo relevante, assim CSS/JavaScript pode efetivamente segmentá-lo.</li> +</ul> + +<p>Nós, portanto, precisamos dar marcações estruturais ao nosso conteúdo.</p> + +<h3 id="Aprendizagem_ativa_Fornecendo_nossa_estrutura_de_conteúdo">Aprendizagem ativa: Fornecendo nossa estrutura de conteúdo</h3> + +<p>Vamos pular diretamente com um exemplo ao vivo. No exemplo abaixo, adicione elementos ao texto bruto no campo <em>Entrada</em> para que ele apareça como um título e dois parágrafos no campo <em>Saída</em>.</p> + +<p>Se você cometer um erro, você sempre pode reiniciar usando o botão <em>Resetar</em>. Se você ficar preso, pressione o botão <em>Mostrar solução</em> para ver a resposta.</p> + +<div class="hidden"> +<h6 id="Playable_code">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Saída ao vivo</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Código editável</h2> +<p class="a11y-label">Pressione Esc para afastar o foco da área de código (Tab insere um caractere de tabulação).</p> + +<textarea id="code" class="input" style="min-height: 100px; width: 95%">Minha pequena história: sou policial e meu nome é Trish. + +Minhas pernas são feitas de papelão e sou casada com um peixe.</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Resetar"> + <input id="solution" type="button" value="Mostrar solução"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Mostrar solução'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Mostrar solução') { + textarea.value = solutionEntry; + solution.value = 'Ocultar solução'; + } else { + textarea.value = userEntry; + solution.value = 'Mostrar solução'; + } + updateCode(); +}); + +var htmlSolution = '<h1>Minha pequena história</h1>\n<p>Sou policial e meu nome é Trish.</p>\n<p>Minhas pernas são feitas de papelão e sou casada com um peixe.</p>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Mostrar solução') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code', 700, 400, "", "", "hide-codepen-jsfiddle") }}</p> + +<h3 id="Por_que_precisamos_de_semântica">Por que precisamos de semântica?</h3> + +<p>A semântica estã em todos os lugares — contamos com experiência anterior para nos dizer qual é a função dos objetos do dia a dia. Quando vemos algo, sabemos qual será a sua função. Então, por exemplo, esperamos que um semáforo vermelho signifique "pare" e um semáforo verde signifique "ir". As coisas podem ficar complicadas muito rapidamente se a semântica errada for aplicada (os países usam vermelho para significar "ir"? Espero que não).</p> + +<p>Na mesma linha, precisamos ter certeza de que estamos usando os elementos corretos, dando ao nosso conteúdo o significado, função ou aparência corretos. Nesse contexto, o elemento {{htmlelement("h1")}} também é um elemento semântico, que dá o texto que envolve a representação (ou significado) de "um título de nível superior em sua página".</p> + +<pre class="brush: html notranslate"><h1>Este é um título de nível superior</h1></pre> + +<p>Por padrão, o navegador fornecerá um tamanho de fonte grande para torná-lo um cabeçalho (embora você possa estilizá-lo como qualquer coisa que você quiser usando CSS). Mais importante, seu valor semântico será usado de várias maneiras, por exemplo, por mecanismos de pesquisa e leitores de tela (como mencionado acima).</p> + +<p>Por outro lado, você pode fazer com que qualquer elemento se pareça um título de nível superior. Considere o seguinte:</p> + +<pre class="brush: html notranslate"><span style="font-size: 32px; margin: 21px 0;">Este é um título de nível superior?</span></pre> + +<p>Este é um elemento {{htmlelement("span")}}. Não tem semântica. Você usa-o para agrupar conteúdo quando deseja aplicar o CSS (ou fazer algo com JavaScript) sem dar-lhe nenhum significado extra (você saberá mais sobre isto mais tarde, no curso). Nós aplicamos alguns CSS para fazê-lo parecer um título de nível superior, mas como não tem valor semântico, ele não receberá nenhum dos benefícios extras descritos acima. É uma boa idéia usar o elemento HTML relevante para o trabalho.</p> + +<h2 id="Listas">Listas</h2> + +<p>Agora voltemos nossa atenção para as listas. As listas estão em toda parte na vida — de sua lista de compras à lista de instruções que você seguiu inconscientemente para chegar à sua casa todos os dias, para as listas das instruções que está seguindo nesses tutoriais! As listas também estão na Web e temos três tipos diferentes para prestarmos atenção.</p> + +<h3 id="Não_ordenada">Não ordenada</h3> + +<p>As listas não ordenadas são usadas para marcar listas de itens para os quais a ordem dos itens não importa — vamos pegar uma lista de compras como um exemplo.</p> + +<pre class="notranslate">leite +ovos +pão +homus</pre> + +<p>Toda lista desordenada começa com um {{htmlelement("ul")}} — isso envolve todos os itens da lista:</p> + +<pre class="brush: html notranslate"><ul> +leite +ovos +pão +homus +</ul></pre> + +<p>O último passo é envolver cada item da lista em um elemento {{htmlelement("li")}} (elemento da lista):</p> + +<pre class="brush: html notranslate"><ul> + <li>leite</li> + <li>ovos</li> + <li>pão</li> + <li>homus</li> +</ul></pre> + +<h4 id="Aprendizagem_ativa_Marcando_uma_lista_desordenada">Aprendizagem ativa: Marcando uma lista desordenada</h4> + +<p>Tente editar a amostra, ao vivo, abaixo para criar sua própria lista não ordenada HTML.</p> + +<div class="hidden"> +<h6 id="Playable_code_2">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Saída ao vivo</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Código editável</h2> +<p class="a11y-label">Pressione Esc para afastar o foco da área de código (Tab insere um caractere de tabulação).</p> + +<textarea id="code" class="input" style="min-height: 100px; width: 95%">leite +ovos +pão +hummus</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Resetar"> + <input id="solution" type="button" value="Mostrar solução"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Mostrar solução'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Mostrar solução') { + textarea.value = solutionEntry; + solution.value = 'Ocultar solução'; + } else { + textarea.value = userEntry; + solution.value = 'Mostrar solução'; + } + updateCode(); +}); + +var htmlSolution = '<ul>\n<li>leite</li>\n<li>ovos</li>\n<li>pão</li>\n<li>hummus</li>\n</ul>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Mostrar solução') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_2', 700, 400, "", "", "hide-codepen-jsfiddle") }}</p> + +<h3 id="Ordenada">Ordenada</h3> + +<p>As listas ordenadas são listas em que a ordem dos itens é importante — vamos seguir um conjunto de instruções como exemplo:</p> + +<pre class="notranslate">Dirija até o final da estrada +Vire à direita +Vá em frente nas duas primeiras rotatórias +Vire à esquerda na terceira rotatória +A escola fica à sua direita, a 300 metros da estrada</pre> + +<p>A estrutura de marcação é a mesma das listas não ordenadas, exceto que você deve conter os itens da lista em um elemento {{htmlelement("ol")}}, em vez de <code><ul></code>:</p> + +<pre class="brush: html notranslate"><ol> + <li>Dirija até o final da estrada</li> + <li>Vire à direita</li> + <li>Vá em frente nas duas primeiras rotatórias</li> + <li>Vire à esquerda na terceira rotatória</li> + <li>A escola fica à sua direita, a 300 metros da estrada</li> +</ol></pre> + +<h4 id="Aprendizagem_ativa_Marcando_uma_lista_ordenada">Aprendizagem ativa: Marcando uma lista ordenada</h4> + +<p>Tente editar a amostra ao vivo abaixo, para criar sua própria lista ordenada por HTML.</p> + +<div class="hidden"> +<h6 id="Playable_code_3">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Saída ao vivo</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Código editável</h2> +<p class="a11y-label">Pressione Esc para afastar o foco da área de código (Tab insere um caractere de tabulação).</p> + +<textarea id="code" class="input" style="min-height: 200px; width: 95%">Dirija até o final da estrada +Vire à direita +Vá em frente nas duas primeiras rotatórias +Vire à esquerda na terceira rotatória +A escola fica à sua direita, a 300 metros da estrada</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Resetar"> + <input id="solution" type="button" value="Mostrar solução"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Mostrar solução'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Mostrar solução') { + textarea.value = solutionEntry; + solution.value = 'Ocultar solução'; + } else { + textarea.value = userEntry; + solution.value = 'Mostrar solução'; + } + updateCode(); +}); + +var htmlSolution = '<ol>\n<li>Dirija até o final da estrada</li>\n<li>Vire à direita</li>\n<li>Vá em frente nas duas primeiras rotatórias</li>\n<li>Vire à esquerda na terceira rotatória</li>\n<li>A escola fica à sua direita, a 300 metros da estrada</li>\n</ol>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Mostrar solução') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_3', 700, 500, "", "", "hide-codepen-jsfiddle") }}</p> + +<h3 id="Aprendizagem_ativa_marcando_nossa_página_de_receita">Aprendizagem ativa: marcando nossa página de receita</h3> + +<p>Então, neste ponto do artigo, você tem todas as informações necessárias para marcar nosso exemplo de página de receita. Você pode optar por salvar uma cópia local do nosso arquivo inicial de <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/html-text-formatting/text-start.html">text-start.html</a> e fazer o trabalho lá, ou fazê-lo no exemplo editável abaixo. Fazê-lo, localmente, provavelmente será melhor, pois você conseguirá salvar o trabalho que está fazendo. Enquanto que, se o preencher no exemplo editável, ele será perdido na próxima vez que você abrir a página. Ambos têm prós e contras.</p> + +<div class="hidden"> +<h6 id="Playable_code_4">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Saída ao vivo</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Código editável</h2> +<p class="a11y-label">Pressione Esc para afastar o foco da área de código (Tab insere um caractere de tabulação).</p> + +<textarea id="code" class="input" style="min-height: 200px; width: 95%">Receita rápida de hummus + + Esta receita faz hummus rápido e saboroso, sem mexer. Foi adaptado de várias receitas diferentes que li ao longo dos anos. + + Hummus é uma deliciosa pasta grossa usada fortemente em pratos gregos e do Oriente Médio. É muito saboroso com salada, carnes grelhadas e pães pitta. + + Ingredientes + + 1 lata (400g) de grão de bico + 175g de tahine + 6 tomates secos + Metade de pimenta vermelha + Uma pitada de pimenta caiena + 1 dente de alho + Uma pitada de azeite + + Instruções + + Retire a pele do alho e pique + Retire todas as sementes e caule da pimenta e pique + Adicione todos os ingredientes em um processador de alimentos + Processar todos os ingredientes em uma pasta + Se você quiser um hummus grosso "pesado", processe-o por um curto período de tempo + Se você deseja um hummus suave, processe-o por mais tempo + + Para um sabor diferente, você pode tentar misturar uma pequena quantidade de limão e coentro, pimenta, limão e chipotle, harissa e hortelã ou espinafre e queijo feta. Experimente e veja o que funciona para você. + + Armazenamento + + Leve à geladeira o hummus processado em um recipiente fechado. Você poderá usá-lo por cerca de uma semana depois de fazer isso. Se começar a ficar borbulhante, você definitivamente deve descartá-lo. + + Hummus é adequado para congelamento; você pode descongelá-lo e usá-lo dentro de alguns meses.</textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Resetar"> + <input id="solution" type="button" value="Mostrar solução"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Mostrar solução'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Mostrar solução') { + textarea.value = solutionEntry; + solution.value = 'Ocultar solução'; + } else { + textarea.value = userEntry; + solution.value = 'Mostrar solução'; + } + updateCode(); +}); + +var htmlSolution = '<h1>Receita rápida de hummus</h1>\n\n<p>Esta receita faz hummus rápido e saboroso, sem mexer. Foi adaptado de várias receitas diferentes que li ao longo dos anos.</p>\n\n<p>Hummus é uma deliciosa pasta grossa usada fortemente em pratos gregos e do Oriente Médio. É muito saboroso com salada, carnes grelhadas e pães pitta.</p>\n\n<h2>Ingredientes</h2>\n\n<ul>\n<li>1 lata (400g) de grão de bico</li>\n<li>175g de tahine</li>\n<li>6 tomates secos</li>\n<li>Metade de pimenta vermelha</li>\n<li>Uma pitada de pimenta caiena</li>\n<li>1 dente de alho</li>\n<li>Uma pitada de azeite</li>\n</ul>\n\n<h2>Instruções</h2>\n\n<ol>\n<li>Retire a pele do alho e pique</li>\n<li>Retire todas as sementes e caule da pimenta e pique</li>\n<li>Adicione todos os ingredientes em um processador de alimentos</li>\n<li>Processar todos os ingredientes em uma pasta</li>\n<li>Se você quiser um hummus grosso "pesado", processe-o por um curto período de tempo</li>\n<li>Se você deseja um hummus suave, processe-o por mais tempo</li>\n</ol>\n\n<p>Para um sabor diferente, você pode tentar misturar uma pequena quantidade de limão e coentro, pimenta, limão e chipotle, harissa e hortelã ou espinafre e queijo feta. Experimente e veja o que funciona para você.</p>\n\n<h2>Armazenamento</h2>\n\n<p>Leve à geladeira o hummus processado em um recipiente fechado. Você poderá usá-lo por cerca de uma semana depois de fazer isso. Se começar a ficar borbulhante, você definitivamente deve descartá-lo.</p>\n\n<p>Hummus é adequado para congelamento; você pode descongelá-lo e usá-lo dentro de alguns meses.</p>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Mostrar solução') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_4', 900, 500, "", "", "hide-codepen-jsfiddle") }}</p> + +<p>Se você ficar preso, você sempre pode pressionar o botão<em> Mostrar solução</em>, ou confira nosso exemplo de <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/html-text-formatting/text-complete.html">text-complete.html</a> em nosso repositório Github.</p> + +<h3 id="Aninhando_listas">Aninhando listas</h3> + +<p><span class="tlid-translation translation" lang="pt"><span title="">Não há problema em aninhar uma lista dentro de outra.</span> <span title="">Você pode ter algumas sub-listas abaixo de uma lista de nível superior.</span> <span title="">Vamos pegar a segunda lista do nosso exemplo de receita</span></span>:</p> + +<pre class="brush: html notranslate"><ol> + <li>Retire a pele do alho e pique</li> + <li>Retire todas as sementes e caule da pimenta e pique</li> + <li>Adicione todos os ingredientes em um processador de alimentos</li> + <li>Processar todos os ingredientes em uma pasta</li> + <li>Se você quiser um hummus grosso "pesado", processe-o por um curto período de tempo</li> + <li>Se você deseja um hummus suave, processe-o por mais tempo</li> +</ol> </pre> + +<p>Uma vez que as duas últimas listas estão intimamente relacionadas com a anterior (elas leem como sub-instruções ou escolhas que se encaixam abaixo dessa lista), pode fazer sentido aninhá-las dentro de sua própria lista desordenada e colocar essa lista dentro da quarta lista. Isso pareceria assim:</p> + +<p><span class="tlid-translation translation" lang="pt"><span title="">Como os dois últimos itens da lista estão intimamente relacionadas (eles são lidos como sub-instruções ou opções que se encaixam abaixo dessa lista), pode fazer sentido aninha-los em sua própria lista não ordenada e colocá-los no quarto item da lista atual</span><span title="">.</span> <span title="">Isso seria assim:</span></span></p> + +<pre class="brush: html notranslate"><ol> + <li>Retire a pele do alho e pique</li> + <li>Retire todas as sementes e caule da pimenta e pique</li> + <li>Adicione todos os ingredientes em um processador de alimentos</li> + <li>Processar todos os ingredientes em uma pasta + <ul> + <li>Se você quiser um hummus grosso "pesado", processe-o por um curto período de tempo</li> + <li>Se você deseja um hummus suave, processe-o por mais tempo</li> + </ul> + </li> +</ol></pre> + +<p>Tente voltar ao exemplo de aprendizagem ativo anterior e atualizar a segunda lista como esta aqui.</p> + +<h2 id="Ênfase_e_importância">Ênfase e importância</h2> + +<p>Na linguagem humana, muitas vezes enfatizamos certas palavras para alterar o significado de uma frase, e muitas vezes queremos marcar certas palavras como importantes ou diferentes de alguma forma. O HTML fornece vários elementos semânticos que nos permitem marcar o conteúdo textual com esses efeitos, e, nesta seção, vamos ver alguns dos mais comuns.</p> + +<h3 id="Ênfase">Ênfase</h3> + +<p>Quando queremos acrescentar ênfase na linguagem falada, enfatizamos certas palavras, alterando sutilmente o significado do que estamos dizendo. Da mesma forma, em linguagem escrita tendemos a enfatizar as palavras colocando-as em itálico. Por exemplo, as seguintes duas frases têm significados diferentes.</p> + +<p>Estou <em>feliz </em>que você não chegou <em>atrasado</em>.</p> + +<p>Estou <strong>feliz </strong>que você não chegou <strong>atrasado</strong>.</p> + +<p>A primeira frase parece genuinamente aliviada de que a pessoa não estava atrasada. Em contraste, a segunda parece ser sarcástica ou passiva-agressiva, expressando aborrecimento que a pessoa chegou um pouco atrasada.</p> + +<p>Em HTML usamos o elemento de ênfase {{htmlelement("em")}} para marcar tais instâncias. Além de tornar o documento mais interessante de ler, estes são reconhecidos pelos leitores de tela e falados em um tom de voz diferente. Os navegadores exibem isso como itálico por padrão, mas você não deve usar esta tag apenas para obter estilo itálico. Para fazer isso, você usaria um elemento {{htmlelement("span")}} e alguns CSS, ou talvez um elemento {{htmlelement("i")}} (veja abaixo).</p> + +<pre class="brush: html notranslate"><p>Eu estou <em>feliz</em> você não está <em>atrasado</em>.</p></pre> + +<h3 id="Importância">Importância</h3> + +<p>Para enfatizar palavras importantes, tendemos a enfatizá-las na linguagem falada e colocá-la em <strong>negrito</strong> na linguagem escrita. Por exemplo:</p> + +<p>Este líquido é <strong>altamente tóxico</strong>.</p> + +<p>Eu estou contando com você. <strong>Não</strong> se atrase!</p> + +<p>Em HTML usamos o elemento {{htmlelement("strong")}} (importância) para marcar tais instâncias. Além de tornar o documento mais útil, novamente estes são reconhecidos pelos leitores de tela e falados em um tom de voz diferente. Os navegadores exibem este texto como negrito por padrão, mas você não deve usar esta marca apenas para obter um estilo negrito. Para fazer isso, você usaria um elemento {{htmlelement("span")}} e algum CSS, ou talvez um {{htmlelement("b")}} (veja abaixo).</p> + +<pre class="brush: html notranslate"><p>Este líquido é <strong>altamente tóxico</strong>.</p> + +<p>Estou contando com você. <strong>Não</strong> se atrase!</p></pre> + +<p>Você pode aninhar importância e ênfase entre si, se desejar:</p> + +<pre class="brush: html notranslate"><p>Este líquido é <strong>altamente tóxico</strong> - +Se você beber, <strong>você pode <em>morrer</em></strong>.</p></pre> + +<h3 id="Aprendizagem_ativa_Vamos_ser_importantes!">Aprendizagem ativa: Vamos ser importantes!</h3> + +<p>Nesta seção de aprendizado ativo, fornecemos um exemplo editável. Nele, gostaríamos que você tentasse adicionar ênfase e importância às palavras que acha que precisam delas, apenas para praticar um pouco.</p> + +<div class="hidden"> +<h6 id="Playable_code_5">Playable code</h6> + +<pre class="brush: html notranslate"><h2>Saída ao vivo</h2> + +<div class="output" style="min-height: 50px;"> +</div> + +<h2>Código editável</h2> +<p class="a11y-label">Pressione Esc para afastar o foco da área de código (Tab insere um caractere de tabulação).</p> + +<textarea id="code" class="input" style="min-height: 200px; width: 95%"><h1>Notícia importante</h1> +<p>No domingo, 9 de janeiro de 2010, uma gangue de góticos foi + vista roubando vários gnomos de jardim de um + centro comercial no centro de Milwaukee. Eles estavam + todos vestindo macacões verdes e chapéus bobos, que + pareciam ter a forma de uma baleia. Se alguém + tiver alguma informação sobre este incidente, por favor + entre em contato com a polícia.</p></textarea> + +<div class="playable-buttons"> + <input id="reset" type="button" value="Resetar"> + <input id="solution" type="button" value="Mostrar solução"> +</div></pre> + +<pre class="brush: css notranslate">html { + font-family: sans-serif; +} + +h2 { + font-size: 16px; +} + +.a11y-label { + margin: 0; + text-align: right; + font-size: 0.7rem; + width: 98%; +} + +body { + margin: 10px; + background: #f5f9fa; +}</pre> + +<pre class="brush: js notranslate">var textarea = document.getElementById('code'); +var reset = document.getElementById('reset'); +var solution = document.getElementById('solution'); +var output = document.querySelector('.output'); +var code = textarea.value; +var userEntry = textarea.value; + +function updateCode() { + output.innerHTML = textarea.value; +} + +reset.addEventListener('click', function() { + textarea.value = code; + userEntry = textarea.value; + solutionEntry = htmlSolution; + solution.value = 'Mostrar solução'; + updateCode(); +}); + +solution.addEventListener('click', function() { + if(solution.value === 'Mostrar solução') { + textarea.value = solutionEntry; + solution.value = 'Ocultar solução'; + } else { + textarea.value = userEntry; + solution.value = 'Mostrar solução'; + } + updateCode(); +}); + +var htmlSolution = '<h1>Notícia importante</h1>\n<p>No <strong>domingo, 9 de janeiro de 2010</strong>, uma gangue de <em>góticos</em> foi vista roubando <strong><em>vários</em> gnomos de jardim</strong> de um centro comercial no centro de <strong>Milwaukee</strong>. Eles estavam todos <em>vestindo macacões verdes e chapéus bobos</em>, que pareciam ter a forma de uma baleia. Se alguém tiver <strong>alguma informação</strong> sobre este incidente, por favor entre em contato com a <strong>polícia</strong>.</p>'; +var solutionEntry = htmlSolution; + +textarea.addEventListener('input', updateCode); +window.addEventListener('load', updateCode); + +// stop tab key tabbing out of textarea and +// make it write a tab at the caret position instead + +textarea.onkeydown = function(e){ + if (e.keyCode === 9) { + e.preventDefault(); + insertAtCaret('\t'); + } + + if (e.keyCode === 27) { + textarea.blur(); + } +}; + +function insertAtCaret(text) { + var scrollPos = textarea.scrollTop; + var caretPos = textarea.selectionStart; + + var front = (textarea.value).substring(0, caretPos); + var back = (textarea.value).substring(textarea.selectionEnd, textarea.value.length); + textarea.value = front + text + back; + caretPos = caretPos + text.length; + textarea.selectionStart = caretPos; + textarea.selectionEnd = caretPos; + textarea.focus(); + textarea.scrollTop = scrollPos; +} + +// Update the saved userCode every time the user updates the text area code + +textarea.onkeyup = function(){ + // We only want to save the state when the user code is being shown, + // not the solution, so that solution is not saved over the user code + if(solution.value === 'Mostrar solução') { + userEntry = textarea.value; + } else { + solutionEntry = textarea.value; + } + + updateCode(); +};</pre> +</div> + +<p>{{ EmbedLiveSample('Playable_code_5', 700, 500, "", "", "hide-codepen-jsfiddle") }}</p> + +<h3 id="Itálico_negrito_sublinhado...">Itálico, negrito, sublinhado...</h3> + +<p>Os elementos que discutimos até agora têm clara semântica associada. A situação com {{htmlelement("b")}}, {{htmlelement("i")}}, e com {{htmlelement("u")}} é um pouco mais complicada. Eles surgiram para que as pessoas pudessem escrever negrito, itálico ou texto sublinhado em uma época em que o CSS ainda era pouco suportado. Elementos como este, que apenas afetam a apresentação e não a semântica, são conhecidos como <strong>elementos de apresentação</strong> e não devem mais ser usados, porque, como já vimos, a semântica é importante para a acessibilidade, SEO, etc.</p> + +<p>O HTML5 redefiniu <code><b></code>, <code><i></code> e <code><u></code> com novas funções semânticas um pouco confusas.</p> + +<p>Aqui está a melhor regra geral: provavelmente é apropriado usar <code><b></code>, <code><i></code> ou <code><u></code> para transmitir um significado tradicionalmente transmitido com negrito, itálico ou sublinhado, desde que não exista um elemento mais adequado. No entanto, sempre é essencial manter uma mentalidade de acessibilidade. O conceito de itálico não é muito útil para pessoas que usam leitores de tela ou para pessoas que usam um sistema de escrita diferente do alfabeto Latino.</p> + +<ul> + <li>{{htmlelement("i")}} é usado para transmitir um significado tradicionalmente transmitido por itálico: palavras estrangeiras, designação taxonômica, termos técnicos, um pensamento...</li> + <li>{{htmlelement("b")}} é usado para transmitir um significado tradicionalmente transmitido por negrito: palavras-chave, nomes de produtos, sentença principal...</li> + <li>{{htmlelement("u")}} é usado para transmitir um significado tradicionalmente transmitido pelo sublinhado: nome próprio, erro de ortografia...</li> +</ul> + +<div class="note"> +<p>Um aviso amável sobre o sublinhado: <strong>as pessoas associam fortemente o sublinhado com hiperlinks</strong>. Portanto, na Web, é melhor sublinhar apenas os links. Use o elemento <code><u></code> quando for semanticamente apropriado, mas considere usar o CSS para alterar o sublinhado padrão para algo mais apropriado na Web. O exemplo abaixo ilustra como isso pode ser feito.</p> +</div> + +<pre class="brush: html notranslate"><!-- nomes científicos --> +<p> + O Colibri Ruby-throated (<i>Archilochus colubris</i>) + é o colibri mais comum do Leste da América do Norte. +</p> + +<!-- palavras estrangeiras --> +<p> + O menu era um mar de palavras exóticas como <i lang="uk-latn">vatrushka</i>, + <i lang="id">nasi goreng</i> e <i lang="fr">soupe à l'oignon</i>. +</p> + +<!-- um erro de ortografia conhecido --> +<p> + Algum dia eu vou aprender como <u style="text-decoration-line: underline; text-decoration-style: wavy;">jogar</u> melhor. +</p> + +<!-- Destaque as palavras-chave em um conjunto de instruções --> +<ol> + <li> + <b>Fatie</b>dois pedaços de pão do pão. + </li> + <li> + <b>Colocar</b> uma fatia de tomate e uma folha de + alface entre as fatias de pão. + </li> +</ol></pre> + +<h2 id="Teste_suas_habilidades!"><span class="tlid-translation translation" lang="pt"><span title="">Teste suas habilidades</span></span>!</h2> + +<p><span class="tlid-translation translation" lang="pt"><span title="">Você chegou ao final deste artigo, mas consegue se lembrar das informações mais importantes?</span> <span title="">Você pode encontrar alguns testes adicionais para verificar se você absorveu essas informações antes de prosseguir </span></span>—<span class="tlid-translation translation" lang="pt"><span title=""> consulte <a href="/pt-BR/docs/Learn/HTML/Introduction_to_HTML/Test_your_skills:_HTML_text_basics">Teste suas habilidades: noções básicas de texto HTML</a>.</span></span></p> + +<h2 id="Resumo">Resumo</h2> + +<p><span class="tlid-translation translation" lang="pt"><span title="">Por enquanto é isso!</span> <span title="">Este artigo deve fornecer uma boa idéia de como começar a marcar texto em HTML e apresentar alguns dos elementos mais importantes nessa área.</span> <span title="">Há muito mais elementos semânticos a serem abordados nesta área, e veremos muito mais em nosso artigo de <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Formatacao_avancada_texto">Formatação avançada de texto</a>, mais adiante neste curso.</span> <span title="">No próximo artigo, veremos detalhadamente como <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Criando_hyperlinks">criar links</a>, possivelmente o elemento mais importante na Web.</span></span></p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML", "Learn/HTML/Introduction_to_HTML/Creating_hyperlinks", "Learn/HTML/Introduction_to_HTML")}}</p> diff --git a/files/pt-br/learn/html/introduction_to_html/index.html b/files/pt-br/learn/html/introduction_to_html/index.html new file mode 100644 index 0000000000..f0e69d61d4 --- /dev/null +++ b/files/pt-br/learn/html/introduction_to_html/index.html @@ -0,0 +1,69 @@ +--- +title: Introdução ao HTML +slug: Aprender/HTML/Introducao_ao_HTML +tags: + - Codificação de Script + - Estrutura + - HTML + - Introdução ao HTML + - Links + - Página de destino + - Texto + - cabeçalho + - semántica +translation_of: Learn/HTML/Introduction_to_HTML +--- +<div>{{LearnSidebar}}</div> + +<p class="summary">Em sua essência, {{glossary("HTML")}} é uma linguagem bastante simples composta de <a href="https://developer.mozilla.org/pt-BR/docs/Glossario/Elemento">elementos</a>, que podem ser aplicados a pedaços de texto para dar-lhes significado diferente em um documento (é um parágrafo? é uma lista de seleção? é parte de uma tabela?), estrutura um documento em seções lógicas (Possui um cabeçalho? Três colunas de conteúdo? Um menu de navegação?) e incorpora conteúdo como imagens e vídeos em uma página. Este módulo irá introduzir os dois primeiros e apresentar conceitos fundamentais e a sintaxe que você precisa saber para entender o HTML.</p> + +<h2 id="Pré-requisitos">Pré-requisitos</h2> + +<p>Antes de iniciar este módulo, você não precisa de nenhum conhecimento prévio sobre HTML, mas deve ter pelo menos uma familiaridade básica em utilizar computadores e utilizar a web passivamente (por exemplo, apenas navegando e consumindo conteúdo). Você deve ter um ambiente de trabalho básico configurado (como detalhado em <a href="https://developer.mozilla.org/pt-BR/docs/Aprender/Getting_started_with_the_web/instalando_programas_basicos">Instalando os programas básicos</a>) e entender como criar e gerenciar arquivos (como detalhado em <a href="https://developer.mozilla.org/pt-BR/docs/Aprender/Getting_started_with_the_web/lidando_com_arquivos">Lidando com arquivos</a>). Ambos são partes do nosso módulo completo para iniciantes <a href="https://developer.mozilla.org/pt-BR/docs/Aprender/Getting_started_with_the_web">indrodução à web</a>.</p> + +<div class="note"> +<p><span style="font-size: 14px;"><strong>Nota</strong></span>: Se você estiver trabalhando em um computador/tablet/outro dispositivo que não permita a criação de seus próprios arquivos, você pode testar (a maior parte) dos exemplos de códigos em um programa de codificação online como <a href="http://jsbin.com/">JSBin</a> ou <a href="https://glitch.com/">Glitch</a>.</p> +</div> + +<h2 id="Guias">Guias</h2> + +<p>Este módulo contém os seguintes artigos, que te levarão por toda teoria básica do HTML e fornecerão muitas oportunidades para você testar algumas habilidades.</p> + +<dl> + <dt><a href="https://developer.mozilla.org/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started">Iniciando com o HTML</a></dt> + <dd>Abrange todo o básico do HTML, para você iniciar - nós definimos elementos, atributos e outros termos importantes, e mostramos onde eles se encaixam na linguagem. Também mostramos como uma página HTML típica e um elemento HTML é estruturado, e explicamos outros recursos básicos importantes da linguagem. Ao longo do caminho, nós brincaremos com algum HTML, para fazer você se interessar!</dd> + <dt><a href="https://developer.mozilla.org/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/The_head_metadata_in_HTML">O que está no cabeçalho? Metadados no HTML</a></dt> + <dd>O {{glossary("Head", "cabeçalho")}} de um documento HTML é a parte que <strong>não é</strong> mostrada no navegador web quando a página é carregada. Ele contém informações como o {{htmlelement("title")}} da página, links para {{glossary("CSS")}} (se você quiser estilizar seu conteúdo HTML com CSS), links para favicons personalizados e metadados (que são dados sobre o HTML, tais como quem o escreveu e palavras-chaves importantes que descrevem o documento).</dd> + <dt><a href="https://developer.mozilla.org/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">Fundamentos do texto HTML</a></dt> + <dd>Uma das principais funções do HTML é dar significado ao texto (também conhecido como {{glossary("Semantics", "semântica")}}), para que o navegador saiba como exibi-lo corretamente. Este artigo analisa como usar HTML para dividir um bloco de texto em uma estrutura de títulos e parágrafos, adicionar ênfase/importância nas palavras, criar listas e muito mais.</dd> + <dt><a href="https://developer.mozilla.org/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Criando_hyperlinks">Criando hiperlinks</a></dt> + <dd>Os hiperlinks são realmente importantes — eles são o que faz da web o que ela é. Este artigo mostra a sintaxe necessária para criar um link e discute as melhores práticas para links.</dd> + <dt><a href="https://developer.mozilla.org/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Formatacao_avancada_texto">Formatação de texto avançada</a></dt> + <dd>Existem muitos outros elementos em HTML para formatar o texto, que não apresentamos no artigo sobre os <a href="https://developer.mozilla.org/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">Fundamentos do texto em HTML</a>. Os elementos aqui são menos conhecidos, mas ainda úteis para se conhecer. Neste artigo, você aprenderá sobre marcação de citações, listas de descrições, código de computador e outros textos relacionados, subscrito e sobrescrito, informações de contatos e muito mais.</dd> + <dt><a href="https://developer.mozilla.org/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Estrutura_de_documento_e_sites">Estrutura dos documentos e do site</a></dt> + <dd>Além de definir partes individuais de sua página (como "um parágrafo" ou "uma imagem"), o HTML também é usado para definir as áreas do seu site (como "o cabeçalho", "o menu de navegação" ou "a coluna de conteúdo principal"). Este artigo analisa como planejar uma estutura básica de site e como escrever o HTML para representar esta estrutura.</dd> + <dt><a href="https://developer.mozilla.org/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Debugging_HTML">Depuração HTML</a></dt> + <dd>Escrever HTML é tranquilo, mas e se algo der errado, e você não conseguir descobrir onde o erro está no código? Este artigo irá apresentar algumas ferramentas que podem ajudar.</dd> +</dl> + +<h2 id="Avaliações">Avaliações</h2> + +<p>As avaliações a seguir testarão sua compreensão dos princípios básicos de HTML abordados nos guias acima.</p> + +<dl> + <dt><a href="https://developer.mozilla.org/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Marcando_uma_carta">Marcando uma carta</a></dt> + <dd>Todos aprendemos a escrever uma carta mais cedo ou mais tarde; também é um exemplo útil para testar habilidades de formatação de texto. Nesta avaliação, você receberá uma carta para marcar.</dd> + <dt><a href="https://developer.mozilla.org/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Estruturando_uma_pagina_de_conteudo">Estruturando a página de conteúdo</a></dt> + <dd>Essa avaliação testa sua capacidade de utilizar HTML para estruturar uma página simples de conteúdo, contendo um cabeçalho, um rodapé, um menu de navegação, o conteúdo principal e uma barra lateral.</dd> +</dl> + +<h2 id="Veja_também">Veja também</h2> + +<dl> + <dt><a href="https://teach.mozilla.org/activities/web-lit-basics/">Noções básica sobre alfabetização na web 1</a> (em inglês)</dt> + <dd>Um excelente curso da Fundação Mozilla que explora e testa muitas das habilidades discutidas no Módulo <em>Introdução ao HTML. </em>Os estudantes se familiarizam com a leitura, a redação e a participação na web neste módulo de seis partes. Descubra as bases da web através da produção e da colaboração.</dd> +</dl> + +<div id="gtx-trans" style="position: absolute; left: 57px; top: 1691px;"> +<div class="gtx-trans-icon"></div> +</div> diff --git a/files/pt-br/learn/html/introduction_to_html/test_your_skills_colon__html_text_basics/index.html b/files/pt-br/learn/html/introduction_to_html/test_your_skills_colon__html_text_basics/index.html new file mode 100644 index 0000000000..c6d49c4015 --- /dev/null +++ b/files/pt-br/learn/html/introduction_to_html/test_your_skills_colon__html_text_basics/index.html @@ -0,0 +1,72 @@ +--- +title: 'Teste suas habilidades: Noções básicas de texto HTML' +slug: 'Aprender/HTML/Introducao_ao_HTML/Test_your_skills:_HTML_text_basics' +tags: + - HTML + - Iniciante + - Teste suas habilidades + - Texto + - aprendizado +translation_of: 'Learn/HTML/Introduction_to_HTML/Test_your_skills:_HTML_text_basics' +--- +<div>{{learnsidebar}}</div> + +<p>O objetivo deste teste de habilidades é avaliar se você entendeu nosso artigo <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Fundamentos_textuais_HTML">Fundamentos do texto em HTML.</a></p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Você pode testar suas soluções nos editores interativos abaixo, entretanto pode ser de ajuda fazer download do código e usar uma ferramenta online como <a href="https://codepen.io/">CodePen</a>, <a href="https://jsfiddle.net/">jsFiddle</a>, ou <a href="https://glitch.com/">Glitch</a> para trabalhar nas tarefas.<br> + <br> + Se você ficar travado em alguma tarefa, peça-nos ajuda — veja a seção{{anch("Assessment or further help")}} no final desta página.</p> +</div> + +<h2 id="Texto_básico_em_HTML_1">Texto básico em HTML 1</h2> + +<p>Nesta tarefa queremos que você faça a marcação do HTML fornecido, utilizando a semântica de título e parágrafo. Tente editar a amostra, ao vivo, para alterar o exemplo final:</p> + +<p>{{EmbedGHLiveSample("learning-area/html/introduction-to-html/tasks/basic-text/basic-text1.html", '100%', 700)}}</p> + +<div class="blockIndicator note"> +<p><a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/tasks/basic-text/basic-text1-download.html">Faça download do ponto de partida desta tarefa</a> para trabalhar em seu próprio editor ou em um editor online.</p> +</div> + +<h2 id="Texto_básico_em_HTML_2">Texto básico em HTML 2</h2> + +<p>Nesta tarefa queremos que você transforme a primeira lista sem marcação em uma lista não ordenada e a segunda em uma lista ordenada.</p> + +<p>Tente editar a amostra, ao vivo, para alterar o exemplo final:</p> + +<p>{{EmbedGHLiveSample("learning-area/html/introduction-to-html/tasks/basic-text/basic-text2.html", '100%', 700)}}</p> + +<div class="blockIndicator note"> +<p><a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/tasks/basic-text/basic-text2-download.html">Faça download do ponto de partida desta tarefa</a> para trabalhar em seu próprio editor ou em um editor online.</p> +</div> + +<h2 id="Texto_básico_em_HTML_3">Texto básico em HTML 3</h2> + +<p>Nesta tarefa um parágrafo é fornecido e o seu objetivo é usar elementos de ênfase para fazer a marcação apropriada de algumas palavras com forte importância e com ênfase.</p> + +<p>Tente editar a amostra, ao vivo, para alterar o exemplo final:</p> + +<p>{{EmbedGHLiveSample("learning-area/html/introduction-to-html/tasks/basic-text/basic-text3.html", '100%', 700)}}</p> + +<div class="blockIndicator note"> +<p><a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/tasks/basic-text/basic-text3-download.html">Faça download do ponto de partida desta tarefa</a> para trabalhar em seu próprio editor ou em um editor online.</p> +</div> + +<h2 id="Avaliação_ou_ajuda_adicional">Avaliação ou ajuda adicional</h2> + +<p>Você pode praticar os exemplos nos Editores Interativos acima.</p> + +<p>Se você gostaria de ter seu trabalho avaliado ou está travado e quer pedir ajuda:</p> + +<ol> + <li>Coloque seu trabalho em um editor online compartilhável como <a href="https://codepen.io/">CodePen</a>, <a href="https://jsfiddle.net/">jsFiddle</a> ou <a href="https://glitch.com/">Glitch</a>. Você pode escrever o código por si só ou usar os arquivos linkados nas seções acima.</li> + <li>Escreva um post pedindo por avaliação e/ou ajuda no <a href="https://discourse.mozilla.org/c/mdn/learn">Fórum de discussão do MDN na categoria Learning</a>. Seu post deve incluir: + <ul> + <li>Um título descritivo como "Avaliação desejada para o teste de habilidade Texto básico em HTML 1"</li> + <li>Detalhes sobre o que você já tentou e o que você gostaria que fizéssemos, p. ex. se você está travado e precisa de ajuda ou se deseja uma avaliação.</li> + <li>Um link para o exemplo que você deseja ser avaliado ou ajudado em um editor online compartilhável (como mencionado no passo 1 acima). Essa é uma boa prática para se adquirir - é muito difícil ajudar alguém com um problema no código, se você não consegue ver o código.</li> + <li>Um link para a tarefa atual ou página de avaliação, assim poderemos achar a questão na qual você quer ajuda.</li> + </ul> + </li> +</ol> diff --git a/files/pt-br/learn/html/introduction_to_html/the_head_metadata_in_html/index.html b/files/pt-br/learn/html/introduction_to_html/the_head_metadata_in_html/index.html new file mode 100644 index 0000000000..66dd155c09 --- /dev/null +++ b/files/pt-br/learn/html/introduction_to_html/the_head_metadata_in_html/index.html @@ -0,0 +1,284 @@ +--- +title: O que está no cabeçalho? Metadados em HTML +slug: Aprender/HTML/Introducao_ao_HTML/The_head_metadata_in_HTML +tags: + - Guía + - HTML + - Iniciante + - head + - lang + - metadados +translation_of: Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML +--- +<div>{{LearnSidebar}}</div> + +<div>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Getting_started", "Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals", "Learn/HTML/Introduction_to_HTML")}} </div> + +<p class="summary">O {{glossary("Head", "head")}} de um documento HTML é a parte que não é exibida no navegador da Web quando a página é carregada. Ele contém informações como {{glossary("title")}} , links para {{htmlelement("CSS")}} (se você deseja modelar seu conteúdo HTML com CSS), links para favicons personalizados e outros metadados (dados sobre o HTML, como quem o escreveu, e palavras-chave importantes que descrevem o documento.) Neste artigo, abordaremos todas as coisas acima e mais. Dando-lhe uma boa base para lidar com marcação.</p> + +<table class="learn-box standard-table"> + <tbody> + <tr> + <th scope="row">Pré-requisitos:</th> + <td> + <table> + <tbody> + <tr> + <td>Familiaridade básica em HTML, tal como <a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started">Iniciando com HTML.</a></td> + </tr> + </tbody> + </table> + </td> + </tr> + <tr> + <th scope="row">Objetivo:</th> + <td>Aprender sobre o cabeçalho HTML, seu propósito, os itens mais importantes que ele pode conter e que efeito isso pode ter no documento HTML.</td> + </tr> + </tbody> +</table> + +<h2 id="O_que_há_no_cabeçalho_HTML">O que há no cabeçalho HTML?</h2> + +<p>Vamos rever o simples<a href="/en-US/Learn/HTML/Introduction_to_HTML/Getting_started#Anatomy_of_an_HTML_document"> </a><a href="/pt-BR/docs/Aprender/HTML/Introducao_ao_HTML/Getting_started#Anatomia_de_um_elemento_HTML">Documento HTML que abordamos no artigo anterior:</a></p> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Minha página de teste</title> + </head> + <body> + <p>Essa é minha página</p> + </body> +</html></pre> + +<p>O cabeçalho HTML é o conteúdo do elemento {{htmlelement("head")}} — ao contrário do conteúdo do elemento {{htmlelement("body")}} (que são exibidos na página quando carregados no navegador), o conteúdo do cabeçalho não é exibido na página, em vez disso, o trabalho do cabeçalho é conter {{glossary("Metadata", "metadados")}} sobre o documento. No exemplo seguinte, o cabeçalho é bem simples:</p> + +<pre class="brush: html notranslate"><head> + <meta charset="utf-8"> + <title>Minha página de teste</title> +</head></pre> + +<p>Em páginas maiores, o cabeçalho pode ter mais conteúdo. Tente acessar um dos seus sites favoritos e use as <a href="/pt-BR/docs/Learn/Common_questions/ferramentas_de_desenvolvimento_do_navegador">ferramentas de desenvolvimento</a> para verificar o conteúdo do cabeçalho. Nosso objetivo aqui não é mostrar a você como usar tudo o que é possível pôr no cabeçalho, mas te ensinar a usar as coisas mais obvias que você vai querer incluir no cabeçalho, e lhe dar alguma familiaridade. Vamos começar.</p> + +<h2 id="Adicionando_um_título">Adicionando um título</h2> + +<p>Nós já vimos o elemento {{htmlelement("title")}} em ação — ele pode ser usado para adicionar um título ao documento, mas pode ser confundido com o elemento {{htmlelement("h1")}}, que é usado para adicionar um título de nível superior ao conteúdo do body — as vezes também é associado como o título da página. Mas são coisas diferentes!</p> + +<ul> + <li>O elemento {{htmlelement("h1")}} aparece na página quando é carregado no navegador — geralmente isso deve ser usado uma vez por página, para marcar o título do conteúdo da sua página, (o título da história, ou da notícia, ou o que quer que seja apropriado para o uso).</li> + <li>O elemento {{htmlelement("title")}} é um metadado que representa o título de todo o document HTML (não o conteúdo do documento).</li> +</ul> + +<h3 id="Aprendizado_ativo_observando_um_exemplo_simples">Aprendizado ativo: observando um exemplo simples</h3> + +<ol> + <li>Para começar esta aprendizagem ativa, gostaríamos que você fosse ao nosso depósito GitHub e baixasse uma cópia do nossa página <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/title-example.html">title-example.html</a>. Para fazer isso: + + <ol> + <li>Copie e cole o código em um novo arquivo de texto no seu editor e salve-o com o nome de index.html em um lugar de fácil acesso.</li> + <li>Pressione o botão "Raw" na página do GitHub, que faz com que o código bruto apareça (possivelmente em uma nova guia do navegador). Em seguida, escolha o menu <em>Arquivo do navegador> Salvar página como ...</em> e escolha um local adequado para salvar o arquivo.</li> + </ol> + </li> + <li>Agora abra o arquivo no seu navegador. Você deve ver algo assim: + <p><img alt="A simple web page with the title set to <title> element, and the <h1> set to <h1> element." src="https://mdn.mozillademos.org/files/12323/title-example.png" style="display: block; margin: 0 auto;">Agora deve ser completamente óbvio onde o conteúdo <code><h1></code> aparece e onde o conteúdo <code><title></code> aparece!</p> + </li> + <li>Você também deve tentar abrir o código no seu editor, editar o conteúdo desses elementos e atualizar a página no seu navegador. divirta-se.</li> +</ol> + +<p>O conteúdo do elemento <code><title></code> também é usado de outras maneiras. Por exemplo, se você tentar favoritar a página, (<em>Favoritos > Adicionar página aos favoritos </em>ou o ícone da estrela na barra de URL no Fireofx), você verá o conteúdo <code><title></code> preenchido como o nome sugerido do favorito.</p> + +<p><img alt="A webpage being bookmarked in firefox; the bookmark name has been automatically filled in with the contents of the <title> element " src="https://mdn.mozillademos.org/files/12337/bookmark-example.png" style="display: block; margin: 0 auto;"></p> + +<p>Os conteúdos <code><title></code> também são usados nos resultados de pesquisa, conforme você verá abaixo.</p> + +<h2 id="Metadados_o_elemento_<meta>">Metadados: o elemento <meta></h2> + +<p>Metadados é dado descreve dados, e HTML possui uma maneira "oficial" de adicionar metadados a um documento — o elemento {{htmlelement("meta")}}. Claro, as outras coisas em que estamos falando neste artigo também podem ser pensadas como metadados. Existem muitos tipos diferentes de elementos <code><meta></code> que podem ser incluídos no <head><strong> </strong>da sua página, mas não tentaremos explicar todos eles nesta fase, pois seria muito confuso. Em vez disso, explicaremos algumas coisas que você pode ver comumente, apenas para lhe dar uma idéia.</p> + +<h3 id="Especificando_a_codificação_de_caracteres_do_seu_documento">Especificando a codificação de caracteres do seu documento</h3> + +<p>No exemplo que vimos acima, esta linha foi incluída:</p> + +<pre class="brush: html notranslate"><meta charset="utf-8"></pre> + +<p>Este elemento simplesmente especifica a codificação de caracteres do documento — o conjunto de caracteres que o documento está autorizado a usar. <code>utf-8</code> é um conjunto de caracteres universal que inclui praticamente qualquer caractere de qualquer linguagem humana. Isso significa que sua página web poderá lidar com a exibição de qualquer idioma; portanto, é uma boa idéia configurar isso em todas as páginas web que você cria! Por exemplo, sua página poderia lidar com o Inglês e Japonês muito bem:</p> + +<p><img alt="a web page containing English and Japanese characters, with the character encoding set to universal, or utf-8. Both languages display fine," src="https://mdn.mozillademos.org/files/12343/correct-encoding.png" style="display: block; margin: 0 auto;">Se você definir sua codificação de caracteres para <code>ISO-8859-1</code>, por exemplo (o conjunto de caracteres para o alfabeto latino), a renderização de sua página ficaria toda bagunçada:</p> + +<p><img alt="a web page containing English and Japanese characters, with the character encoding set to latin. The Japanese characters don't display correctly" src="https://mdn.mozillademos.org/files/12341/bad-encoding.png" style="display: block; height: 365px; margin: 0px auto; width: 604px;"></p> + +<div class="note"> +<p><strong>Nota</strong>: Alguns navegadores (como o Chrome) corrigem automaticamente as codificações incorretas, então, dependendo do navegador que você usar, você pode não ver esse problema. Ainda assim, você deve definir uma codificação do <code>utf-8</code> em sua página, para evitar problemas em outros navegadores.</p> +</div> + +<h3 id="Aprendizagem_ativa_Experimento_com_a_codificação_de_caracteres">Aprendizagem ativa: Experimento com a codificação de caracteres</h3> + +<p>Para experimentar isso, revise o modelo HTML simples que você obteve na seção anterior em <code><title></code> (a página <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/title-example.html">title-example.html </a>), tente alterar o valor do meta charset para <code>ISO-8859-1</code> e adicione o Japonês à sua página . Este é o código que usamos:</p> + +<pre class="brush: html notranslate"><p>Exemplo Japonês:ご飯が熱い</p></pre> + +<h3 id="Adicionando_um_autor_e_descrição">Adicionando um autor e descrição</h3> + +<p>Muitos elementos <code><meta></code> incluem atributos de <code>name</code> e <code>content</code>:</p> + +<ul> + <li>O <code>name</code> especifica o tipo de elemento meta que é; que tipo de informação contém.</li> + <li>O <code>content</code> especifica o conteúdo real do meta.</li> +</ul> + +<p>Dois desses meta-elementos que são úteis para incluir na sua página definem o autor da página e fornecem uma descrição concisa da página. Vejamos um exemplo:</p> + +<pre class="brush: html notranslate"><meta name="author" content="Chris Mills"> +<meta name="description" content="A Área de Aprendizagem do MDN tem como objetivo +proporcionar iniciantes em Web com tudo o que eles precisam saber +para começar a desenvolver sites e aplicativos."></pre> + +<p>Especificar um autor é útil de muitas maneiras: é útil para poder descobrir quem escreveu a página, se quiser enviar perguntas sobre o conteúdo que você gostaria de contacta-la. Alguns sistemas de gerenciamento de conteúdo possuem ferramentas para extrair automaticamente as informações do autor da página e disponibilizá-las para seus propósitos.</p> + +<p>Especificar uma descrição que inclua palavras-chave relacionadas ao conteúdo da sua página é útil porque tem potencial para tornar sua página mais alta nas pesquisas relevantes realizadas nos mecanismos de busca (tais atividades são denominadas <a href="/pt-BR/docs/Glossario/SEO">Search Engine Optimization</a> ou {{glossary("SEO")}}.</p> + +<h3 id="Aprendizagem_ativa_Uso_da_descrição_nos_motores_de_busca">Aprendizagem ativa: Uso da descrição nos motores de busca</h3> + +<p>A descrição também é usada nas páginas de resultados do mecanismo de pesquisa. Vamos passar por um exercício para explorar isso</p> + +<ol> + <li>Vá para a <a href="https://developer.mozilla.org/en-US/">página inicial da Mozilla Developer Network.</a></li> + <li>Veja a fonte da página (botão direito do mouse/<kbd>Ctrl</kbd> + clique na página, escolha <em>Ver código-fonte da página</em> no menu de contexto).</li> + <li>Encontre a meta tag de descrição. Isso parecerá assim: + <pre class="brush: html notranslate"><meta name="description" content="A Mozilla Developer Network (MDN) fornece +informações sobre tecnologias Open Web, incluindo HTML, CSS e API para ambos +Sites e aplicativos HTML5. Ele também documenta produtos Mozilla, como o sistema operacional Firefox."></pre> + </li> + <li>Agora, procure por "Mozilla Developer Network" no seu motor de busca favorito (Utilizamos o Yahoo.) Você notará a descrição <code><meta></code> e <code><title></code> elemento usado no resultado da pesquisa — definitivamente vale a pena ter! + <p><img alt='A Yahoo search result for "Mozilla Developer Network"' src="https://mdn.mozillademos.org/files/12347/search-result.png" style="display: block; margin: 0 auto;"></p> + </li> +</ol> + +<div class="note"> +<p><strong>Nota</strong>: No Google, você verá algumas subpáginas relevantes do MDN listadas abaixo do principal link da página inicial do MDN — estes são chamados de sitelinks e são configuráveis nas <a href="http://www.google.com/webmasters/tools/">Ferramentas para webmasters do Google</a> — uma maneira de melhorar os resultados de pesquisa do seu site no mecanismo de pesquisa do Google.</p> +</div> + +<div class="note"> +<p><strong>Nota</strong>: Muitos recursos <code><meta></code> simplesmente não são mais usados. Por exemplo, a palavra-chave <code><meta></code> elemento (<code><meta name="keywords" content="preencha, suas, palavras-chave, aqui"></code>) — que é suposto fornecer palavras-chave para os motores de busca para determinar a relevância dessa página para diferentes termos de pesquisa — são ignorados pelos motores de busca, porque os spammers estavam apenas preenchendo a lista de palavras-chave com centenas de palavras-chave, influenciando os resultados.</p> +</div> + +<h3 id="Outros_tipos_de_metadados">Outros tipos de metadados</h3> + +<p>Ao navegar pela web, você também encontrará outros tipos de metadados. Muitos dos recursos que você verá em sites são criações proprietárias, projetados para fornecer a determinados sites (como sites de redes sociais) informações específicas que eles podem usar.</p> + +<p>Por exemplo, <a href="http://ogp.me/">Open Graph Data</a> é um protocolo de metadados que o Facebook inventou para fornecer metadados mais ricos para sites. No código-fonte MDN, você encontrará isso:</p> + +<pre class="brush: html notranslate"><meta property="og:image" content="https://developer.cdn.mozilla.net/static/img/opengraph-logo.dc4e08e2f6af.png"> +<meta property="og:description" content="A Mozilla Developer Network (MDN) fornece +informações sobre tecnologias Open Web, incluindo HTML, CSS e APIs para ambos os sites da Web +e aplicativos HTML5. Ele também documenta produtos Mozilla, como o sistema operacional Firefox."> +<meta property="og:title" content="Mozilla Developer Network"></pre> + +<p>Um efeito disso é que, quando você liga a MDN no facebook, o link aparece junto com uma imagem e descrição: uma experiência mais rica para usuários.</p> + +<p><img alt="Open graph protocol data from the MDN homepage as displayed on facebook, showing an image, title, and description." src="https://mdn.mozillademos.org/files/12349/facebook-output.png" style="display: block; margin: 0 auto;">O Twitter também possui seus próprios metadados proprietários, o que tem um efeito semelhante quando o URL do site é exibido no twitter.com. Por exemplo:</p> + +<pre class="brush: html notranslate"><meta name="twitter:title" content="Mozilla Developer Network"></pre> + +<h2 id="Adicionando_ícones_personalizados_ao_seu_site">Adicionando ícones personalizados ao seu site</h2> + +<p>Para enriquecer ainda mais o design do seu site, você pode adicionar referências a ícones personalizados em seus metadados, e estes serão exibidos em determinados contextos. O mais usado é o <strong>favicon</strong> (abreviação de "favorites icon", referindo-se ao seu uso nas listas "favoritos" nos navegadores).</p> + +<p>O humilde favicon existe há muitos anos. É o primeiro ícone desse tipo: um ícone 16 pixels quadrados usado em vários lugares. Você pode ver (dependendo do navegador) ícones favoritos exibidos na guia do navegador que contém cada página aberta e ao lado de páginas marcadas no painel de favoritos.</p> + +<p>Um favicon pode ser adicionado à sua página:</p> + +<ol> + <li>Salvando-o no mesmo diretório que a página de índice do site, salvo no formato <code>.ico</code> (a maioria dos navegadores suportará favicons em formatos mais comuns como <code>.gif</code> ou <code>.png</code>, mas usar o formato ICO irá garantir que ele funcione tão bem como o Internet Explorer 6 .)</li> + <li>Adicionando a seguinte linha ao HTML <code><head></code> para fazer referência a ele: + <pre class="brush: html notranslate"><link rel="shortcut icon" href="favicon.ico" type="image/x-icon"></pre> + </li> +</ol> + +<p>Aqui está um exemplo de um favicon em um painel de faforitos:</p> + +<p><img alt="The Firefox bookmarks panel, showing a bookmarked example with a favicon displayed next to it." src="https://mdn.mozillademos.org/files/12351/bookmark-favicon.png" style="display: block; margin: 0 auto;"></p> + +<p>Há muitos outros tipos de ícones para considerar nestes dias também. Por exemplo, você encontrará isso no código-fonte da página inicial do MDN Web Docs:</p> + +<pre class="brush: html notranslate"><!-- iPad de terceira geração com tela retina de alta resolução: --> +<link rel="apple-touch-icon-precomposed" sizes="144x144" href="https://developer.cdn.mozilla.net/static/img/favicon144.a6e4162070f4.png"> +<!-- iPhone com tela retina de alta resolução: --> +<link rel="apple-touch-icon-precomposed" sizes="114x114" href="https://developer.cdn.mozilla.net/static/img/favicon114.0e9fabd44f85.png"> +<!-- iPad de primeira e segunda geração: --> +<link rel="apple-touch-icon-precomposed" sizes="72x72" href="https://developer.cdn.mozilla.net/static/img/favicon72.8ff9d87c82a0.png"> +<!-- iPhone não-Retina, iPod Touch e dispositivos Android 2.1+: --> +<link rel="apple-touch-icon-precomposed" href="https://developer.cdn.mozilla.net/static/img/favicon57.a2490b9a2d76.png"> +<!-- favicon básico --> +<link rel="shortcut icon" href="https://developer.cdn.mozilla.net/static/img/favicon32.e02854fdcf73.png"></pre> + +<p>Os comentários explicam onde cada ícone é usado - esses elementos cobrem coisas como fornecer um ícone de alta resolução agradável para usar quando o site é salvo na tela inicial do iPad.</p> + +<p>Não se preocupe muito com a implementação de todos esses tipos de ícone agora — este é um recurso bastante avançado, e você não precisará ter conhecimento disso para avançar no curso. O objetivo principal aqui é permitir que você saiba o que são essas coisas, no caso de você encontrá-las enquanto navega no código-fonte dos outros sites.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Se o seu site usa uma Política de Segurança de Conteúdo (CSP) para aumentar sua segurança, a política se aplica ao favicon. Se você encontrar problemas com o favicon não carregando, verifique se a diretiva <a href="/pt-BR/docs/Web/HTTP/Headers/Content-Security-Policy/img-src"><code>img-src</code></a> do cabeçalho <a href="/pt-BR/docs/Web/HTTP/Headers/Content-Security-Policy" title="The HTTP Content-Security-Policy response header allows web site administrators to control resources the user agent is allowed to load for a given page. With a few exceptions, policies mostly involve specifying server origins and script endpoints. This helps guard against cross-site scripting attacks (XSS)."><code>Content-Security-Policy</code></a> não está impedindo o acesso a ele.</p> +</div> + +<h2 id="Aplicando_CSS_e_JavaScript_ao_HTML">Aplicando CSS e JavaScript ao HTML</h2> + +<p>Todos os sites que você usar nos dias atuais empregarão o {{glossary("CSS")}} para torná-los legais e o {{glossary("JavaScript")}} para ativar a funcionalidade interativa, como players de vídeo, mapas, jogos e muito mais. Estes são comumente aplicados a uma página web usando o elemento {{htmlelement("link")}} e o elemento {{htmlelement("script")}} , respectivamente.</p> + +<ul> + <li> + <p>O elemento {{htmlelement("link")}} sempre vai no cabeçalho do seu documento. Isso requer dois atributos, rel = "stylesheet", que indica que é a folha de estilo do documento e href, que contém o caminho para o arquivo de folha de estilo:</p> + + <pre class="brush: html notranslate"><link rel="stylesheet" href="meu-arquivo-css.css"></pre> + </li> + <li> + <p>O elemento {{htmlelement("script")}} não precisa ir no cabeçalho; na verdade, muitas vezes é melhor colocá-lo na parte inferior do corpo do documento (antes da tag<code> </body></code> de fechamento), para garantir que todo o conteúdo HTML tenha sido lido pelo navegador antes de tentar aplicar o JavaScript nele (se o JavaScript tentar acessar um elemento que ainda não existe, o navegador gerará um erro.)</p> + + <pre class="brush: html notranslate"><script src="meu-arquivo-js.js"></script></pre> + + <div class="note"> + <p><strong>Nota</strong>: O elemento <code><script></code> pode parecer um elemento vazio, mas não é, e, portanto, precisa de uma tag de fechamento. Em vez de apontar para um arquivo de script externo, você também pode escolher colocar seu script dentro do elemento <code><script></code>.</p> + </div> + </li> +</ul> + +<h3 id="Aprendizagem_ativa_aplicar_CSS_e_JavaScript_a_uma_página">Aprendizagem ativa: aplicar CSS e JavaScript a uma página</h3> + +<ol> + <li>Para iniciar esta aprendizagem ativa, pegue uma cópia dos nossos arquivos <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/meta-example.html">meta-example.html</a>, <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/script.js">script.js</a> e <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/style.css">style.css</a> e salve-os em seu computador local no mesmo diretório. Verifique se eles são salvos com os nomes e extensões de arquivo corretos.</li> + <li>Abra o arquivo HTML em seu navegador e seu editor de texto.</li> + <li>Ao seguir as informações fornecidas acima, adicione os elementos {{htmlelement("link")}} e {{htmlelement("script")}} ao seu HTML, para que seu CSS e JavaScript sejam aplicados ao seu HTML.</li> +</ol> + +<p>Se for feito corretamente, quando você salvar seu HTML e atualizar seu navegador, verá que as coisas mudaram:</p> + +<p><img alt="Example showing a page with CSS and JavaScript applied to it. The CSS has made the page go green, whereas the JavaScript has added a dynamic list to the page." src="https://mdn.mozillademos.org/files/12359/js-and-css.png" style="display: block; margin: 0 auto;"></p> + +<ul> + <li>O JavaScript adicionou uma lista vazia à página. Agora, quando você clica em qualquer lugar da lista, uma caixa de diálogo aparecerá pedindo para que você, insira algum texto para um novo item de lista. Quando você pressiona o botão OK, um novo item será adicionado à lista contendo o texto. Quando você clica em um item de lista existente, uma caixa de diálogo será exibida permitindo que você altere o texto do item.</li> + <li>O CSS fez com que o plano de fundo ficasse verde e o texto se tornasse maior. Ele também estilizou parte do conteúdo que o JavaScript adicionou à página (a barra vermelha com a borda preta é o estilo que o CSS adicionou à lista gerada por JS).</li> +</ul> + +<div class="note"> +<p><strong>Nota</strong>: Se você ficar preso neste exercício e não conseguir aplicar o CSS/JS, tente verificar nossa página de exemplo <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/css-and-js.html">css-and-js.html</a>.</p> +</div> + +<h2 id="Definir_o_idioma_principal_do_documento">Definir o idioma principal do documento</h2> + +<p>Finalmente, vale a pena mencionar que você pode (e realmente deveria) definir o idioma da sua página. Isso pode ser feito adicionando o <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang">atributo lang</a> à tag HTML de abertura (como visto no <a href="https://github.com/mdn/learning-area/blob/master/html/introduction-to-html/the-html-head/meta-example.html">meta-example.html</a> e mostrado abaixo).</p> + +<pre class="brush: html notranslate"><html lang="pt-BR"></pre> + +<p>Isso é útil de várias maneiras. O seu documento HTML será indexado de forma mais eficaz pelos motores de busca se o seu idioma for definido (permitindo que ele apareça corretamente em resultados específicos do idioma, por exemplo), e é útil para pessoas com deficiências visuais usando leitores de tela (por exemplo, a palavra "seis" existe em Francês e Inglês, mas é pronunciado de forma diferente.)</p> + +<p>Você também pode definir seções secundárias do seu documento para serem reconhecidas em diferentes idiomas. Por exemplo, podemos configurar nossa seção do idioma Japonês para ser reconhecida como japonesa, assim:</p> + +<pre class="brush: html notranslate"><p>Exemplo japonês: <span lang="jp">ご飯が熱い。</span>.</p></pre> + +<p>Esses códigos são definidos pelo padrão <a href="https://pt.wikipedia.org/wiki/ISO_639">ISO 639</a>. Você pode encontrar mais sobre eles em <a href="https://www.w3.org/International/articles/language-tags/">Tags de idioma em HTML e XML</a>.</p> + +<h2 id="Resumo">Resumo</h2> + +<p>Isso marca o fim de nossa rápida turnê pelo HTML — há muito mais que você pode fazer aqui, mas uma excursão exaustiva seria chata e confusa nesta fase, e nós só queríamos dar uma idéia das coisas mais comuns você encontrará lá, por enquanto! No próximo artigo, veremos o básico do texto HTML.</p> + +<p>{{PreviousMenuNext("Learn/HTML/Introduction_to_HTML/Getting_started", "Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals", "Learn/HTML/Introduction_to_HTML")}}</p> |
