-
Notifications
You must be signed in to change notification settings - Fork 0
/
guiapress_articles.sql
58 lines (51 loc) · 218 KB
/
guiapress_articles.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
-- MySQL dump 10.13 Distrib 8.0.19, for Win64 (x86_64)
--
-- Host: localhost Database: guiapress
-- ------------------------------------------------------
-- Server version 8.0.19
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `articles`
--
DROP TABLE IF EXISTS `articles`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `articles` (
`id` int NOT NULL AUTO_INCREMENT,
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`slug` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`body` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`createdAt` datetime NOT NULL,
`updatedAt` datetime NOT NULL,
`categoryId` int DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `categoryId` (`categoryId`),
CONSTRAINT `articles_ibfk_1` FOREIGN KEY (`categoryId`) REFERENCES `categories` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `articles`
--
LOCK TABLES `articles` WRITE;
/*!40000 ALTER TABLE `articles` DISABLE KEYS */;
INSERT INTO `articles` VALUES (1,'Como instalar o Node.JS no Windows 10','Como-instalar-o-Node.JS-no-Windows-10','<p id=\"e8f4\" class=\"gg gh dc bk gi b gj gk gl gm gn go gp gq gr gs gt cu\" data-selectable-paragraph=\"\">Abra, em seu navegador, o link:</p>\r\n<p id=\"7594\" class=\"gg gh dc bk gi b gj gk gl gm gn go gp gq gr gs gt cu\" data-selectable-paragraph=\"\"><a class=\" cimg-fluid at cg gu gv gw gx\" href=\"https://nodejs.org/en/download/\" target=\"_blank\" rel=\"noopener nofollow\">https://nodejs.org/en/download/</a></p>\r\n<p id=\"b63f\" class=\"gg gh dc bk gi b gj gk gl gm gn go gp gq gr gs gt cu\" data-selectable-paragraph=\"\">Escolha o instalador para a sua plataforma (Sistema Operacional) e arquitetura do processador (32-bits ou 64-bits). Caso não saiba qual o seu tipo de sistema, siga os passos do meu outro tutorial: <a class=\"at cg gu gv gw gx\" href=\"https://goo.gl/oa5r1d\" target=\"_blank\" rel=\"noopener nofollow\">aqui</a>.</p>\r\n<p class=\" img-fluid gg gh dc bk gi b gj gk gl gm gn go gp gq gr gs gt cu\" data-selectable-paragraph=\"\"><img style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://miro.medium.com/max/906/1*NbZZAD5PvL6wDbwEWidvpw.gif\" alt=\"Download do Node.js\" width=\"906\" height=\"509\" /></p>\r\n<p id=\"e201\" class=\"gg gh dc bk gi b gj gk gl gm gn go gp gq gr gs gt cu\" data-selectable-paragraph=\"\">Ao clicar no link do seu instalador, escolha a pasta para onde o download será feito (caso seu navegador já não baixe para a pasta padrão /downloads).</p>\r\n<p id=\"eee6\" class=\"gg gh dc bk gi b gj gk gl gm gn go gp gq gr gs gt cu\" data-selectable-paragraph=\"\">Depois basta clicar duas vezes no arquivo baixado e seguir os passos dados na janela de instalação. Por padrão, você não precisa alterar nada: apenas siga clicando em “Next”.</p>\r\n<p id=\"5a20\" class=\"gg gh dc bk gi b gj gk gl gm gn go gp gq gr gs gt cu\" data-selectable-paragraph=\"\">Pronto, o Node está instalado na sua máquina. Para conferir a versão, abra uma janela de comandos (clique em “iniciar”, digite “cmd” e depois clique no item “Prompt de Comando”) e digite <strong class=\"gi hd\">node -v</strong></p>\r\n<p class=\"gg gh dc bk gi b gj gk gl gm gn go gp gq gr gs gt cu\" style=\"text-align: center;\" data-selectable-paragraph=\"\"><strong class=\"gi hd\"><img src=\"https://miro.medium.com/max/422/1*mAE9vo30PucMyfybnuuWmg.gif\" alt=\"Versao do node no CMD\" width=\"422\" height=\"289\" /></strong></p>\r\n<pre class=\"gg gh dc bk gi b gj gk gl gm gn go gp gq gr gs gt cu\" style=\"text-align: center;\"><span style=\"font-family: arial, helvetica, sans-serif;\">Versão do Node JS instalada no Windows</span></pre>\r\n<p class=\"gg gh dc bk gi b gj gk gl gm gn go gp gq gr gs gt cu\" data-selectable-paragraph=\"\"> </p>','2020-02-10 15:27:42','2020-02-28 11:54:09',1),(2,'PHP Tutorial','PHP-Tutorial','<p><strong>PHP</strong> é uma linguagem de programação bem versátil e muito familiar a linguagem HTML. O código <strong>PHP</strong> está escrito entre as tags <span class=\"lf-badge\"><?php ?></span>, como é mostrado na <strong>Listagem 1</strong>.</p>\r\n<p style=\"text-align: center;\"> </p>\r\n<div class=\"videoWrapper\" style=\"text-align: center;\"><iframe src=\"https://www.youtube.com/embed/fb6sEbF8U7U?rel=0&controls=0\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"></iframe></div>\r\n<div class=\"lf-nota\" style=\"text-align: center;\"><strong>Relacionado:</strong> <a title=\"Introdução ao PHP\" href=\"https://www.devmedia.com.br/curso/introducao-ao-php/2171\" target=\"_blank\" rel=\"noopener\">Introdução ao PHP</a></div>\r\n<div class=\"lf-nota\"> </div>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_581314\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><!DOCTYPE html></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php plain\"><html></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php plain\"><body></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\"> </code><code class=\"php plain\"><h1>Estamos aprendendo PHP!</h1></code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php spaces\"> </code><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php string\">\"Vamos prosseguir aprendendo PHP\"</code><code class=\"php plain\">; </code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"php spaces\"> </code><code class=\"php plain\">?></code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"php spaces\"> </code><code class=\"php plain\"></body></code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"php plain\"></html></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 1</strong>. Exemplo de uso do <strong>PHP</strong>(index.php)</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<p>O arquivo index foi salvo com a extensão .php para mostrarmos ao nosso interpretador que há um código <strong>PHP</strong> a ser interpretado. Além disso, no exemplo usamos a função <span class=\"lf-badge\">echo</span> para escrever na tela uma mensagem.</p>\r\n<p> </p>\r\n<h3 id=\"comentar\">Como comentar o código no PHP</h3>\r\n<p>Para comentarmos o nosso código <strong>PHP</strong> usamos duas barras ou # para comentários de uma linha, e para comentários de múltiplas linhas usamos /* */, o mesmo usado no CSS. Observe alguns exemplos na <strong>Listagem 2</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_17121\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n<div class=\"line number10 index9 alt1\">10</div>\r\n<div class=\"line number11 index10 alt2\">11</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php string\">\"Oi, Eu serei visto na sua tela\"</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php comments\">// Eu não! Sou apenas um comentário.</code></div>\r\n<div class=\"line number4 index3 alt1\"> </div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php string\">\"Oi, Eu também serei visto por você\"</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\"> </code><code class=\"php plain\"># Já eu não serei!</code></div>\r\n<div class=\"line number7 index6 alt2\"> </div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php string\">\"E eu aqui novamente na sua tela, rs\"</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"php spaces\"> </code><code class=\"php comments\">/* Eu não aparecerei na sua tela novamente</code></div>\r\n<div class=\"line number10 index9 alt1\"><code class=\"php spaces\"> </code><code class=\"php comments\">pois sou um comentário */</code></div>\r\n<div class=\"line number11 index10 alt2\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 2</strong>. Exemplo de comentários no <strong>PHP </strong>utilizando //, # ou /**/</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<h3 id=\"variaveis\">Variáveis no PHP</h3>\r\n<p>Para criarmos uma variável basta utilizar o sinal de cifrão. Uma variável pode armazenar textos e números. Além disso, a linguagem PHP é case sensitive, então A é diferente de a. Observe um exemplo de uso de variáveis na <strong>Listagem 3</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_398179\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$name</code> <code class=\"php plain\">= </code><code class=\"php string\">\"Guilherme\"</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php variable\">$age</code> <code class=\"php plain\">= 20;</code></div>\r\n<div class=\"line number4 index3 alt1\"> </div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php variable\">$name</code><code class=\"php plain\">; </code><code class=\"php comments\">// Guilherme</code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php string\">\"</br>\"</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php variable\">$age</code><code class=\"php plain\">; </code><code class=\"php comments\">// 20</code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 3</strong>. Exemplo de Variáveis</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<p>No exemplo criamos uma variável <span class=\"lf-badge\">$name</span> e declaramos a ela uma string, sendo assim precisamos colocá-la entre aspas. Já a outra variável <span class=\"lf-badge\">$age</span> é declarada como inteiro, então não é necessário o uso de aspas. Ao usarmos o comando <span class=\"lf-badge\">echo</span> nas variáveis, o resultado impresso é o conteúdo dessa variável.</p>\r\n<p>Para a nomeação de variáveis, as dicas a seguir são necessárias:</p>\r\n<ul>\r\n<li>Não inicie o nome de uma variável com números;</li>\r\n<li>Não utilize espaços em brancos;</li>\r\n<li>Não utilize caracteres especiais, somente underline;</li>\r\n<li>Crie variáveis com nomes que ajudarão a identificar melhor a mesma;</li>\r\n<li>Evite utilizar letras maiúsculas.</li>\r\n</ul>\r\n<p>Falaremos agora sobre alguns dos tipos de variáveis que existem no <strong>PHP</strong>:</p>\r\n<ul>\r\n<li><strong>Booleanos</strong>: Este é o tipo mais simples, pois só pode expressar apenas dois valores: <strong>TRUE (1)</strong> ou <strong>FALSE (0, null ou uma string vazia);</strong></li>\r\n<li><strong>Integer</strong>: é um número inteiro, podendo ser negativo ou positivo;</li>\r\n<li><strong>Float</strong>: também chamado de double ou números reais representados com um ponto para separar os dígitos do valor inteiro dos dígitos do valor das casas decimais.</li>\r\n<li><strong>Strings</strong>: é uma palavra ou frase entre aspas simples ou duplas, assim como também pode ser binário, como o conteúdo de um arquivo MP3 ou JPG. Veja os exemplos na <strong>Listagem 4.</strong></li>\r\n</ul>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_454760\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$a</code> <code class=\"php plain\">= </code><code class=\"php string\">\"mundo!\"</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php string\">\"Olá, $a\"</code><code class=\"php plain\">; </code><code class=\"php comments\">// Olá, mundo!</code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php string\">\'Olá, $a\'</code><code class=\"php plain\">; </code><code class=\"php comments\">// Olá, $a</code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 4</strong>. Exemplos de String</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<p>Note que quando declaramos no <span class=\"lf-badge\">echo \"Olá, $a\";</span>, o PHP interpretou o conteúdo da variável <span class=\"lf-badge\">$a</span>, pois está entre aspas duplas. E quando usamos a mesma forma, só que entre aspas simples <span class=\"lf-badge\">echo \'Olá, $a\';</span>, não temos o mesmo resultado. Então quando queremos que o PHP interprete o valor de nossa variável dentro de uma string é necessário o uso de aspas duplas.</p>\r\n<p>Além disso, podemos usar um ponto para concatenar strings, assim como o sinal + para o JavaScript, como mostra o código da <strong>Listagem 5</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_115059\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php string\">\"Olá,\"</code> <code class=\"php plain\">. </code><code class=\"php string\">\" mundo!\"</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php comments\">//Olá, mundo!</code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 5</strong>. Exemplo concatenação de String</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<h3 id=\"constantes\">Constantes no PHP</h3>\r\n<p>O valor de uma constante jamais poderá ser alterado enquanto estiver sendo executada e para defini-la utilizamos a função <em>define()</em> ou <em>const</em>, como mostra a <strong>Listagem 6</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_598602\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php plain\">define(</code><code class=\"php string\">\"PHP\"</code><code class=\"php plain\">, </code><code class=\"php string\">\"Linguagem Open - Source\"</code><code class=\"php plain\">);</code></div>\r\n<div class=\"line number3 index2 alt2\"> </div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\"> </code><code class=\"php keyword\">const</code> <code class=\"php plain\">HTML = </code><code class=\"php string\">\"Linguagem de marcação\"</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number5 index4 alt2\"> </div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php plain\">PHP; </code><code class=\"php comments\">// Linguagem Open - Source</code></div>\r\n<div class=\"line number7 index6 alt2\"> </div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php plain\">HTML; </code><code class=\"php comments\">// Linguagem de marcação</code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 6</strong>. Exemplo de Constantes</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<p>Utilizando a função <span class=\"lf-badge\">define()</span> ou a palavra reservada <span class=\"lf-badge\">const</span> definimos que as constantes com os nomes de PHP e HTML respectivamente, com o valor: Linguagem Open – Source e Linguagem de marcação.</p>\r\n<p> </p>\r\n<h3 id=\"arrays\">Arrays no PHP</h3>\r\n<p>Um <em>array</em> que mantém uma série de elementos que podem ter diferentes tipos, como mostra a <strong>Listagem 7</strong>.</p>\r\n<div class=\"lf-nota\">Saiba mais sobre <a title=\"array php\" href=\"http://www.devmedia.com.br/php-declaracao-e-atribuicao-de-arrays-em-php/38621\" target=\"_blank\" rel=\"noopener\">Arrays no PHP</a></div>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_92177\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$php</code> <code class=\"php plain\">= </code><code class=\"php keyword\">array</code><code class=\"php plain\">(</code><code class=\"php string\">\"Zend\"</code> <code class=\"php plain\">=> </code><code class=\"php string\">\"CERTIFICAÇÃO\"</code><code class=\"php plain\">, 6 => false);</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php variable\">$php</code><code class=\"php plain\">[</code><code class=\"php string\">\"Zend\"</code><code class=\"php plain\">]; </code><code class=\"php comments\">// CERTIFICAÇÃO</code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php variable\">$php</code><code class=\"php plain\">[6]; </code><code class=\"php comments\">// 0</code></div>\r\n<div class=\"line number5 index4 alt2\"> </div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\"> </code><code class=\"php comments\">// Zend é nossa chave e CERTIFICAÇÃO nosso valor</code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"php spaces\"> </code><code class=\"php comments\">// 6 é nossa chave e false(0) é nosso valor</code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 7</strong>. Exemplo de arrays</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<p>Note que nossa primeira chave se chama Zend, e a outra chama-se 6, mas quanto a nomeação de chaves de array pode ser tanto string ou um integer. Para o valor pode ser qualquer coisa.</p>\r\n<p> </p>\r\n<h3 id=\"conversao\">Conversão de tipos</h3>\r\n<p>Os tipos de <strong><a title=\"PHP: Declaração e atribuição de variáveis\" href=\"http://www.devmedia.com.br/php-declaracao-e-atribuicao-de-variaveis/38220\" target=\"_blank\" rel=\"noopener\">variáveis no PHP</a></strong> são dinâmicos. Para forçarmos os tipos de nossas variáveis utilizamos uma técnica conhecida como type casting, ou simplesmente troca de tipos. Veja na <strong>Listagem 8</strong> alguns exemplos.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_239477\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$var</code> <code class=\"php plain\">= 100;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php variable\">$type_casting</code> <code class=\"php plain\">= (bool) </code><code class=\"php variable\">$var</code><code class=\"php plain\">; </code><code class=\"php comments\">// torna – se booleano</code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$type_casting</code> <code class=\"php plain\">= (int) </code><code class=\"php variable\">$var</code><code class=\"php plain\">; </code><code class=\"php comments\">// torna – se inteiro</code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php spaces\"> </code><code class=\"php variable\">$type_casting</code> <code class=\"php plain\">= (float) </code><code class=\"php variable\">$var</code><code class=\"php plain\">; </code><code class=\"php comments\">// torna – se float</code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$type_casting</code> <code class=\"php plain\">= (string) </code><code class=\"php variable\">$var</code><code class=\"php plain\">; </code><code class=\"php comments\">// torna – se string</code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"php spaces\"> </code><code class=\"php variable\">$type_casting</code> <code class=\"php plain\">= (</code><code class=\"php keyword\">array</code><code class=\"php plain\">) </code><code class=\"php variable\">$var</code><code class=\"php plain\">; </code><code class=\"php comments\">// torna – se array</code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php variable\">$type_casting</code> <code class=\"php plain\">= (bool)</code><code class=\"php variable\">$var</code><code class=\"php plain\">; </code><code class=\"php comments\">// 1</code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 8</strong>. Exemplo de conversão de tipos</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<p>Veja que transformamos o valor da <span class=\"lf-badge\">$var</span>, que antes era um inteiro, para um valor booleano.</p>\r\n<p>Vamos conhecer agora <strong>operadores</strong>, que permitem que nós manipulemos o conteúdo de uma ou mais variáveis.</p>\r\n<p> </p>\r\n<h3 id=\"aritmeticos\">Operadores Aritméticos no PHP</h3>\r\n<p>Podemos utilizar operadores matemáticos para efetuar cálculos com os valores de variáveis, como mostra a <strong>Listagem 9</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_87647\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$a</code> <code class=\"php plain\">= 3;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php variable\">$b</code> <code class=\"php plain\">= 3;</code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$c</code> <code class=\"php plain\">= </code><code class=\"php variable\">$a</code> <code class=\"php plain\">* </code><code class=\"php variable\">$b</code><code class=\"php plain\">; </code><code class=\"php comments\">// resultado é 9</code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php spaces\"> </code><code class=\"php variable\">$d</code> <code class=\"php plain\">= </code><code class=\"php variable\">$a</code> <code class=\"php plain\">+ </code><code class=\"php variable\">$b</code><code class=\"php plain\">; </code><code class=\"php comments\">// resultado é 6</code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$e</code> <code class=\"php plain\">= </code><code class=\"php variable\">$c</code> <code class=\"php plain\">- </code><code class=\"php variable\">$d</code><code class=\"php plain\">; </code><code class=\"php comments\">// resultado é 3</code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 9</strong>. Exemplo de operadores aritméticos</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<p>Criamos as variáveis <span class=\"lf-badge\">$a</span> e <span class=\"lf-badge\">$b</span> e a partir delas conseguimos fazer vários cálculos matemáticos.</p>\r\n<p>Os operadores matemáticos disponíveis em PHP são:</p>\r\n<ul>\r\n<li>Adição: +</li>\r\n<li>Subtração: -</li>\r\n<li>Multiplicação: *</li>\r\n<li>Divisão: /</li>\r\n<li>Módulo: %</li>\r\n</ul>\r\n<p>Lembrando que não precisamos especificar os tipos de variáveis no PHP, como nos exemplos a seguir:</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_361248\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$a</code> <code class=\"php plain\">= </code><code class=\"php string\">\"5\"</code><code class=\"php plain\">; </code><code class=\"php comments\">// string</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php variable\">$a</code> <code class=\"php plain\">+ 2; </code><code class=\"php comments\">// 7, integer</code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php variable\">$a</code> <code class=\"php plain\">+ </code><code class=\"php string\">\'5 carros\'</code><code class=\"php plain\">; </code><code class=\"php comments\">// 10, integer</code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<p> </p>\r\n<p>Note que <span class=\"lf-badge\">$a</span> é uma string e quando demos um <span class=\"lf-badge\">echo</span> nela somando com 2, que é um inteiro, o resultado retornado foi 7. Isso demonstra que nossos tipos de variáveis em PHP são sempre dinâmicos. E na linha 4 o PHP reconhece dentro das aspas simples um numeral e com isso executa a operação matemática e exibirá o resultado 10 do tipo inteiro mas não exibindo a palavra \"carros\".</p>\r\n<p> </p>\r\n<h3 id=\"atribuicao\">Operadores de Atribuição no PHP</h3>\r\n<p>Utilizamos os operadores de atribuição para definir variáveis e seus valores, além de usá-los juntamente com os operadores matemáticos, como mostra o exemplo da <strong>Listagem 10</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_909572\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$a</code> <code class=\"php plain\">= 1; </code><code class=\"php comments\">// A variável $a é igual a 1</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php variable\">$a</code> <code class=\"php plain\">+= 2; </code><code class=\"php comments\">// Somamos 2 ao valor da $a;</code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php variable\">$a</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 10</strong>. Exemplo de Operadores de Atribuição com Operadores Matemáticos</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<p>O resultado acima é 3, pois somamos 2 ao valor da <span class=\"lf-badge\">$a</span>, que é 1. Na <strong>Listagem 11</strong> temos mais exemplos.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_140752\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$a</code> <code class=\"php plain\">-= 2; </code><code class=\"php comments\">// Subtraímos 2 ao valor da variável $a;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php variable\">$a</code> <code class=\"php plain\">*= 2; </code><code class=\"php comments\">// Multiplicamos o valor da variável $a por 2;</code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$a</code> <code class=\"php plain\">/= 2; </code><code class=\"php comments\">// Dividimos o valor da variável $a por 2.</code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 11</strong>. Exemplo de Operadores de Atribuição com Operadores Matemáticos</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<p>A sintaxe desses operadores é a mesma do exemplo da soma, pois basta dar um echo depois de ter declarado a variável com seu respectivo operador.</p>\r\n<p>Podemos também incrementar ou decrementar variáveis utilizando os operadores de incrementação, herdados da linguagem C, como nos exemplos da <strong>Listagem 12</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_793455\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$a</code> <code class=\"php plain\">= 1;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php plain\">++</code><code class=\"php variable\">$a</code><code class=\"php plain\">; </code><code class=\"php comments\">// Incrementamos 1 e retornamos o valor</code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php variable\">$a</code><code class=\"php plain\">++; </code><code class=\"php comments\">// Retornamos o valor e incrementamos 1</code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php plain\">--</code><code class=\"php variable\">$a</code><code class=\"php plain\">; </code><code class=\"php comments\">// Decrementamos 1 e retornamos o valor</code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php variable\">$a</code><code class=\"php plain\">--; </code><code class=\"php comments\">// Retornamos o valor e decrementamos 1</code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 12</strong>. Exemplo de Operadores de Atribuição - Incremento e decremento</div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<h3 id=\"relacionais\">Operadores Relacionais</h3>\r\n<p>Esses são usados para comparar valores ou expressões, retornando um valor booleano (true ou false):</p>\r\n<ul>\r\n<li>Igual: ==</li>\r\n<li>Idêntico: ===</li>\r\n<li>Diferente: != ou <></li>\r\n<li>Menor que: <</li>\r\n<li>Maior que: ></li>\r\n<li>Menor ou igual: <=</li>\r\n<li>Maior ou igual: >=</li>\r\n</ul>\r\n<p>É importante lembrar que == não checa o tipo da variável, apenas seu valor. Já o <span class=\"lf-badge\">===</span> checa tanto o valor da variável quanto o seu tipo.</p>\r\n<p> </p>\r\n<h3 id=\"logicos\">Operadores Lógicos</h3>\r\n<p>Existem também os operadores lógicos para a criação de testes condicionais:</p>\r\n<ul>\r\n<li>$a and $b: enquanto A e B forem verdadeiros;</li>\r\n<li>$a or $b: enquanto A ou B forem verdadeiros;</li>\r\n<li>$a xor $b: enquanto A ou B forem verdadeiros, mas não os dois;</li>\r\n<li>!$a: verdadeiro se A for falso;</li>\r\n<li>$a && $b: enquanto A e B forem verdadeiros;</li>\r\n<li>$a || $b: enquanto A ou B forem verdadeiros.</li>\r\n</ul>\r\n<h3> </h3>\r\n<h3 id=\"ifelse\">Estrutura de Decisão if/else</h3>\r\n<p>A condição é avaliada para que, caso algo seja verdadeiro, faça isto, senão, faça aquilo, como mostra a <strong>Listagem 13</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_428034\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php spaces\"> </code><code class=\"php variable\">$idade</code> <code class=\"php plain\">= 17;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php spaces\"> </code> </div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\"> </code><code class=\"php keyword\">if</code><code class=\"php plain\">(</code><code class=\"php variable\">$idade</code> <code class=\"php plain\">< 18) {</code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php string\">\'Você não pode entrar aqui!\'</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\"> </code><code class=\"php plain\">} </code><code class=\"php keyword\">else</code> <code class=\"php plain\">{</code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php string\">\'Seja bem – vindo\'</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"php spaces\"> </code><code class=\"php plain\">}</code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 13</strong>. Exemplo do uso das estruturas de decisão <strong>if/else</strong></div>\r\n<div class=\"code-caption\"> </div>\r\n</div>\r\n<ul>\r\n<li>Na linha 1 criamos a variável <span class=\"lf-badge\">$idade</span> que guarda um inteiro.</li>\r\n<li>Na linha 4 utilizamos <span class=\"lf-badge\">IF</span> para verificar se <span class=\"lf-badge\">$idade</span> é menor que 18, e caso seja será impresso: \"Você não pode entra aqui!\"</li>\r\n<li>Na linha 6 criamos um <span class=\"lf-badge\">ELSE,</span> que é o contrário da primeira condição.</li>\r\n</ul>\r\n<p>Podemos também utilizar os operadores lógicos junto dos operadores relacionais, como mostra a <strong>Listagem 14</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_php code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_428657\" class=\"syntaxhighlighter php\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\"><?php</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"php variable\">$idade</code> <code class=\"php plain\">= 21;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"php variable\">$identidade</code> <code class=\"php plain\">= true;</code></div>\r\n<div class=\"line number4 index3 alt1\"> </div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"php keyword\">if</code><code class=\"php plain\">(</code><code class=\"php variable\">$idade</code> <code class=\"php plain\">> 18 && </code><code class=\"php variable\">$identidade</code> <code class=\"php plain\">== true) {</code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\"> </code><code class=\"php functions\">echo</code> <code class=\"php string\">\'Seja bem-vindo!\'</code><code class=\"php plain\">;</code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"php plain\">}</code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"php plain\">?></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 14</strong>. Exemplo do uso de Operadores lógicos com Operadores relacionais</div>\r\n</div>','2020-02-10 16:28:20','2020-02-24 16:52:04',4),(3,'Como instalar o React no Windows','Como-instalar-o-React-no-Windows','<section class=\"action-menu menu-action-top menu-hidden\">\r\n<p><span class=\"titulo_box_lead2\">Por que eu devo ler este artigo: </span><strong>React é a ferramenta de desenvolvimento front-end que mais cresce por ano em número de usuários segundo o Stack Overflow</strong>. Neste artigo iremos aprender como criar a nossa primeira Aplicação de Página Única (SPA) em React utilizando a ferramenta create-react-app do Facebook</p>\r\n</section>\r\n<section class=\"page-content main-content video-conteudo-area top-content\">\r\n<section class=\"page-content-wrapper\">\r\n<div class=\"breadcrumb\"><a title=\"Artigos\" href=\"http://www.devmedia.com.br/artigos/\">Artigos </a></div>\r\n<div class=\"breadcrumb\"><a title=\"Artigos de JavaScript\" href=\"https://www.devmedia.com.br/artigos/javascript\">JavaScript</a><span class=\"bread-artigo\"> </span></div>\r\n<h3>Configurando o Ambiente</h3>\r\n<p><strong>React é uma biblioteca/framework JavaScript</strong> para criar aplicações que rodam no navegador, porém os pacotes que iremos utilizar durante o desenvolvimento serão gerenciados pelo Node Package Manager (NPM), inclusive o próprio React.</p>\r\n<p>Começaremos então indo até o site oficial do <a title=\"Site do Node.js\" href=\"https://nodejs.org/en/\" target=\"_blank\" rel=\"noopener\">Node.js</a> e iremos instalar sua versão LTS, como ilustra a <strong>Figura 1</strong>.</p>\r\n<p> </p>\r\n<figure class=\"lazy-img\" style=\"text-align: center;\"><img class=\"imagem_artigo loaded\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://arquivo.devmedia.com.br/artigos/criando_projeto_react_40329/site_node.png\" alt=\"Site do Node.js\" width=\"738\" height=\"610\" />\r\n<figcaption><strong>Figura 1</strong>. Site do Node.js<br /><br /></figcaption>\r\n</figure>\r\n<p>Quando <strong>instalamos o Node.js o NPM</strong> também é instalado no computador como parte do mesmo pacote, para utilizá-lo basta abrir a ferramenta de linha de comando do seu sistema operacional, por exemplo o cmd do Windows ou o terminal do Linux, e digitar npm, uma lista com os comandos será exibida, como ilustra a <strong>Listagem 1</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_shell code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_844433\" class=\"syntaxhighlighter powershell\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n<div class=\"line number10 index9 alt1\">10</div>\r\n<div class=\"line number11 index10 alt2\">11</div>\r\n<div class=\"line number12 index11 alt1\">12</div>\r\n<div class=\"line number13 index12 alt2\">13</div>\r\n<div class=\"line number14 index13 alt1\">14</div>\r\n<div class=\"line number15 index14 alt2\">15</div>\r\n<div class=\"line number16 index15 alt1\">16</div>\r\n<div class=\"line number17 index16 alt2\">17</div>\r\n<div class=\"line number18 index17 alt1\">18</div>\r\n<div class=\"line number19 index18 alt2\">19</div>\r\n<div class=\"line number20 index19 alt1\">20</div>\r\n<div class=\"line number21 index20 alt2\">21</div>\r\n<div class=\"line number22 index21 alt1\">22</div>\r\n<div class=\"line number23 index22 alt2\">23</div>\r\n<div class=\"line number24 index23 alt1\">24</div>\r\n<div class=\"line number25 index24 alt2\">25</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"powershell plain\">C:\\Users\\Editorial>npm</code></div>\r\n<div class=\"line number2 index1 alt1\"> </div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"powershell plain\">Usage: npm <command></code></div>\r\n<div class=\"line number4 index3 alt1\"> </div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"powershell keyword\">where</code> <code class=\"powershell plain\"><command> is one of:</code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"powershell spaces\"> </code><code class=\"powershell plain\">access, adduser, audit, bin, bugs, c, cache, ci, cit,</code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"powershell spaces\"> </code><code class=\"powershell plain\">completion, config, create, ddp, dedupe, deprecate,</code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"powershell spaces\"> </code><code class=\"powershell plain\">dist</code><code class=\"powershell keyword\">-tag</code><code class=\"powershell plain\">, docs, doctor, edit, explore, get, help,</code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"powershell spaces\"> </code><code class=\"powershell plain\">help</code><code class=\"powershell keyword\">-search</code><code class=\"powershell plain\">, hook, i, init, install, install</code><code class=\"powershell keyword\">-test</code><code class=\"powershell plain\">, it, link,</code></div>\r\n<div class=\"line number10 index9 alt1\"><code class=\"powershell spaces\"> </code><code class=\"powershell plain\">list, ln, login, logout, </code><code class=\"powershell keyword\">ls</code><code class=\"powershell plain\">, outdated, owner, pack, ping,</code></div>\r\n<div class=\"line number11 index10 alt2\"><code class=\"powershell spaces\"> </code><code class=\"powershell plain\">prefix, profile, prune, publish, rb, rebuild, repo, restart,</code></div>\r\n<div class=\"line number12 index11 alt1\"><code class=\"powershell spaces\"> </code><code class=\"powershell plain\">root, run, run</code><code class=\"powershell keyword\">-script</code><code class=\"powershell plain\">, s, se, search, </code><code class=\"powershell keyword\">set</code><code class=\"powershell plain\">, shrinkwrap, star,</code></div>\r\n<div class=\"line number13 index12 alt2\"><code class=\"powershell spaces\"> </code><code class=\"powershell plain\">stars, start, stop, t, team, test, token, tst, un,</code></div>\r\n<div class=\"line number14 index13 alt1\"><code class=\"powershell spaces\"> </code><code class=\"powershell plain\">uninstall, unpublish, unstar, up, update, v, version, view,</code></div>\r\n<div class=\"line number15 index14 alt2\"><code class=\"powershell spaces\"> </code><code class=\"powershell plain\">whoami</code></div>\r\n<div class=\"line number16 index15 alt1\"> </div>\r\n<div class=\"line number17 index16 alt2\"><code class=\"powershell plain\">npm <command> </code><code class=\"powershell keyword\">-h</code> <code class=\"powershell plain\">quick help on <command></code></div>\r\n<div class=\"line number18 index17 alt1\"><code class=\"powershell plain\">npm </code><code class=\"powershell keyword\">-l</code> <code class=\"powershell plain\">display full usage info</code></div>\r\n<div class=\"line number19 index18 alt2\"><code class=\"powershell plain\">npm help <term> search for help on <term></code></div>\r\n<div class=\"line number20 index19 alt1\"><code class=\"powershell plain\">npm help npm involved overview</code></div>\r\n<div class=\"line number21 index20 alt2\"> </div>\r\n<div class=\"line number22 index21 alt1\"><code class=\"powershell plain\">Specify configs in the ini</code><code class=\"powershell keyword\">-formatted</code> <code class=\"powershell plain\">file:</code></div>\r\n<div class=\"line number23 index22 alt2\"><code class=\"powershell spaces\"> </code><code class=\"powershell plain\">C:\\Users\\Editorial\\.npmrc</code></div>\r\n<div class=\"line number24 index23 alt1\"><code class=\"powershell plain\">or on the command line via: npm <command> -</code><code class=\"powershell keyword\">-key</code> <code class=\"powershell plain\">value</code></div>\r\n<div class=\"line number25 index24 alt2\"><code class=\"powershell plain\">Config info can be viewed via: npm help config</code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 1</strong>. Comandos NPM</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"> </div>\r\n</div>\r\n</div>\r\n<p>Através do NPM iremos instalar o gerenciador de dependências do Facebook Yarn, que é mais recomendado para se trabalhar usando o React. Iremos instalar o Yarn globalmente pelo NPM, como ilustra a <strong>Listagem 2</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_js code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_881773\" class=\"syntaxhighlighter js\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"js plain\">npm install -g yarn</code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 2</strong>. Instalando Yarn</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"> </div>\r\n</div>\r\n</div>\r\n<p>Com o Node, o NPM e o Yarn instalados falta apenas um editor de texto para desenvolver a nossa aplicação. Neste tutorial será usado o editor Open Source, Microsoft Visual Studio Code que pode ser baixado <a title=\"Visual Studio Code\" href=\"https://code.visualstudio.com/\" target=\"_blank\" rel=\"noopener\">neste link</a>, porém você pode usar o que preferir.</p>\r\n<p> </p>\r\n<h3>Criando o Projeto</h3>\r\n<p>Agora que nosso ambiente está devidamente configurado, iremos criar o nosso primeiro projeto em React. Para isso primeiro precisamos instalar a ferramenta de linha de comando <span class=\"lf-badge\">create-react-app</span> que também foi desenvolvida pelo Facebook cria para nós um projeto do zero sem nos preocuparmos com bundling, otimização de arquivo e outros detalhes de configuração que podem ser extensos quando realizados manualmente.</p>\r\n<p>Para instalar o create-react-app digite o comando ilustrado na <strong>Listagem 3</strong> em seu terminal:</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_js code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_21160\" class=\"syntaxhighlighter js\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"js plain\">npm install -g create-react-app </code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 3</strong>. Instalando create-react-app</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"> </div>\r\n</div>\r\n</div>\r\n<p>Quando a instalação terminar, o comando create-react-app vai estar disponível em seu terminal e a partir dele podemos criar o projeto da nossa aplicação. Vá então até uma pasta adequada do seu computador pelo terminal e digite o comando da <strong>Listagem 4</strong>;</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_js code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_804600\" class=\"syntaxhighlighter js\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"js plain\">create-react-app meu-app-react </code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 4</strong>. Criando o app React</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"> </div>\r\n</div>\r\n</div>\r\n<p>O processo de criação do projeto pode levar alguns instantes enquanto <span class=\"lf-badge\">create-react-app</span> monta todo o boilerplate mínimo que uma aplicação React para a web precisa ter.</p>\r\n<p> </p>\r\n<h3>Explorando a aplicação</h3>\r\n<p>Agora que o projeto da nossa aplicação foi criado iremos explorar um pouco dos seus arquivos e do código fonte básico que foi gerado pelo <span class=\"lf-badge\">create-react-app</span>.</p>\r\n<p>Antes de qualquer coisa entre com o terminal na pasta que <span class=\"lf-badge\">create-react-app</span> criou e digite o comando contido na <strong>Listagem 5</strong> para executar a aplicação no navegador.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_js code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_289571\" class=\"syntaxhighlighter js\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"js plain\">yarn start </code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 5</strong>. Executando a aplicação</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"> </div>\r\n</div>\r\n</div>\r\n<p>Após terminar de carregar, o projeto será servido localmente em seu computador na porta 3000 e o navegador definido como padrão em seu sistema operacional irá abrir a página da aplicação automaticamente, a <strong>Figura 2</strong> mostra a tela inicial padrão criada pelo <span class=\"lf-badge\">create-react-app</span>.</p>\r\n<figure class=\"lazy-img\" style=\"text-align: center;\"><img class=\"imagem_artigo loaded\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://arquivo.devmedia.com.br/artigos/criando_projeto_react_40329/pagina_aplicacao.png\" alt=\"Página inicial do React\" width=\"589\" height=\"549\" />\r\n<figcaption><strong>Figura 2</strong>. Página inicial do React<br /><br /></figcaption>\r\n</figure>\r\n<p>Dentro do projeto você irá encontrar três pastas, cada qual terá uma série de arquivos que é utilizado de alguma forma pela aplicação React:</p>\r\n<ul>\r\n<li><span class=\"lf-badge\">node_modules</span> - Pasta responsável por guardar todas as dependências do projeto. Essa pasta é criada pelo NPM ou pelo Yarn no momento em que uma biblioteca, como o próprio React, é adicionada ao projeto.</li>\r\n<li><span class=\"lf-badge\">public</span> - Pasta pública da aplicação web. Nela ficam guardados os arquivos iniciais da aplicação, como o index.html que é interpretado pelo navegador, o ícone do site e um arquivo JSON com os parâmetros de configuração do site.</li>\r\n<li><span class=\"lf-badge\">src</span> - Código fonte da aplicação: Aqui ficarão todos os arquivos JavaScript que irão compor a nossa aplicação.</li>\r\n</ul>\r\n<p>O próximo passo será abrir a pasta do projeto com o seu editor de texto favorito em seguida abra a pasta <span class=\"lf-badge\">src</span> que contém todo o Código fonte da nossa aplicação. Nesta pasta abra o arquivo <span class=\"lf-badge\">App.js</span> que irá conter o código descrito na <strong>Listagem 6</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_js code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_918613\" class=\"syntaxhighlighter js\">\r\n<table style=\"width: 633px; height: 802px; margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\" style=\"width: 32.9167px;\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n<div class=\"line number10 index9 alt1\">10</div>\r\n<div class=\"line number11 index10 alt2\">11</div>\r\n<div class=\"line number12 index11 alt1\">12</div>\r\n<div class=\"line number13 index12 alt2\">13</div>\r\n<div class=\"line number14 index13 alt1\">14</div>\r\n<div class=\"line number15 index14 alt2\">15</div>\r\n<div class=\"line number16 index15 alt1\">16</div>\r\n<div class=\"line number17 index16 alt2\">17</div>\r\n<div class=\"line number18 index17 alt1\">18</div>\r\n<div class=\"line number19 index18 alt2\">19</div>\r\n<div class=\"line number20 index19 alt1\">20</div>\r\n<div class=\"line number21 index20 alt2\">21</div>\r\n<div class=\"line number22 index21 alt1\">22</div>\r\n<div class=\"line number23 index22 alt2\">23</div>\r\n<div class=\"line number24 index23 alt1\">24</div>\r\n<div class=\"line number25 index24 alt2\">25</div>\r\n<div class=\"line number26 index25 alt1\">26</div>\r\n<div class=\"line number27 index26 alt2\">27</div>\r\n<div class=\"line number28 index27 alt1\">28</div>\r\n</td>\r\n<td class=\"code\" style=\"width: 564.028px;\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"js plain\">import React, { Component } from </code><code class=\"js string\">\'react\'</code><code class=\"js plain\">;</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"js plain\">import logo from </code><code class=\"js string\">\'./logo.svg\'</code><code class=\"js plain\">;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"js plain\">import </code><code class=\"js string\">\'./App.css\'</code><code class=\"js plain\">;</code></div>\r\n<div class=\"line number4 index3 alt1\"> </div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"js plain\">class App extends Component {</code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\">render() {</code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"js spaces\"> </code><code class=\"js keyword\">return</code> <code class=\"js plain\">(</code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\"><div className=</code><code class=\"js string\">\"App\"</code><code class=\"js plain\">></code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"js spaces\"> </code><code class=\"js plain\"><header className=</code><code class=\"js string\">\"App-header\"</code><code class=\"js plain\">></code></div>\r\n<div class=\"line number10 index9 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\"><img src={logo} className=</code><code class=\"js string\">\"App-logo\"</code> <code class=\"js plain\">alt=</code><code class=\"js string\">\"logo\"</code> <code class=\"js plain\">/></code></div>\r\n<div class=\"line number11 index10 alt2\"><code class=\"js spaces\"> </code><code class=\"js plain\"><p></code></div>\r\n<div class=\"line number12 index11 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\">Edit <code>src/App.js</code> and save to reload.</code></div>\r\n<div class=\"line number13 index12 alt2\"><code class=\"js spaces\"> </code><code class=\"js plain\"></p></code></div>\r\n<div class=\"line number14 index13 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\"><a</code></div>\r\n<div class=\"line number15 index14 alt2\"><code class=\"js spaces\"> </code><code class=\"js plain\">className=</code><code class=\"js string\">\"App-link\"</code></div>\r\n<div class=\"line number16 index15 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\">href=</code><code class=\"js string\">\"<a href=\"https://reactjs.org/\">https://reactjs.org</a>\"</code></div>\r\n<div class=\"line number17 index16 alt2\" style=\"text-align: center;\"><code class=\"js spaces\"> </code><code class=\"js plain\">target=</code><code class=\"js string\">\"_blank\"</code></div>\r\n<div class=\"line number18 index17 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\">rel=</code><code class=\"js string\">\"noopener noreferrer\"</code></div>\r\n<div class=\"line number19 index18 alt2\"><code class=\"js spaces\"> </code><code class=\"js plain\">></code></div>\r\n<div class=\"line number20 index19 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\">Learn React</code></div>\r\n<div class=\"line number21 index20 alt2\"><code class=\"js spaces\"> </code><code class=\"js plain\"></a></code></div>\r\n<div class=\"line number22 index21 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\"></header></code></div>\r\n<div class=\"line number23 index22 alt2\"><code class=\"js spaces\"> </code><code class=\"js plain\"></div></code></div>\r\n<div class=\"line number24 index23 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\">);</code></div>\r\n<div class=\"line number25 index24 alt2\"><code class=\"js spaces\"> </code><code class=\"js plain\">}</code></div>\r\n<div class=\"line number26 index25 alt1\"><code class=\"js plain\">}</code></div>\r\n<div class=\"line number27 index26 alt2\"> </div>\r\n<div class=\"line number28 index27 alt1\"><code class=\"js plain\">export </code><code class=\"js keyword\">default</code> <code class=\"js plain\">App;</code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 6</strong>. App.js criado automaticamente</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"> </div>\r\n</div>\r\n</div>\r\n<p>Em um primeiro momento você pode estranhar o código html sendo retornado pelo método render da classe App. Essa sintaxe é chamada JSX (JavaScript and XML) e permite interagir com a template do nosso site diretamente com o JavaScript sem precisar aprender uma nova linguagem.</p>\r\n<p>Iremos então escrever \"Olá mundo\" neste componente: apague o código sendo retornado pelo método render deixando apenas a <span class=\"lf-badge\">div</span> que possui o <span class=\"lf-badge\">className</span> \"<span class=\"lf-badge\">App</span>\" e o header para manter o estilo. Dentro do header crie um <span class=\"lf-badge\">h1</span> com o nosso Olá mundo, como mostrado na <strong>Listagem 7</strong>;</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_js code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_946643\" class=\"syntaxhighlighter js\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n<div class=\"line number10 index9 alt1\">10</div>\r\n<div class=\"line number11 index10 alt2\">11</div>\r\n<div class=\"line number12 index11 alt1\">12</div>\r\n<div class=\"line number13 index12 alt2\">13</div>\r\n<div class=\"line number14 index13 alt1\">14</div>\r\n<div class=\"line number15 index14 alt2\">15</div>\r\n<div class=\"line number16 index15 alt1\">16</div>\r\n<div class=\"line number17 index16 alt2\">17</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"js plain\">import React, { Component } from </code><code class=\"js string\">\'react\'</code><code class=\"js plain\">;</code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"js plain\">import logo from </code><code class=\"js string\">\'./logo.svg\'</code><code class=\"js plain\">;</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"js plain\">import </code><code class=\"js string\">\'./App.css\'</code><code class=\"js plain\">;</code></div>\r\n<div class=\"line number4 index3 alt1\"> </div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"js plain\">class App extends Component {</code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\">render() {</code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"js spaces\"> </code><code class=\"js keyword\">return</code> <code class=\"js plain\">(</code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\"><div className=</code><code class=\"js string\">\"App\"</code><code class=\"js plain\">></code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"js spaces\"> </code><code class=\"js plain\"><header className=</code><code class=\"js string\">\"App-header\"</code><code class=\"js plain\">></code></div>\r\n<div class=\"line number10 index9 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\"><h1>Olá Mundo!</h1></code></div>\r\n<div class=\"line number11 index10 alt2\"><code class=\"js spaces\"> </code><code class=\"js plain\"></header></code></div>\r\n<div class=\"line number12 index11 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\"></div></code></div>\r\n<div class=\"line number13 index12 alt2\"><code class=\"js spaces\"> </code><code class=\"js plain\">);</code></div>\r\n<div class=\"line number14 index13 alt1\"><code class=\"js spaces\"> </code><code class=\"js plain\">}</code></div>\r\n<div class=\"line number15 index14 alt2\"><code class=\"js plain\">}</code></div>\r\n<div class=\"line number16 index15 alt1\"> </div>\r\n<div class=\"line number17 index16 alt2\"><code class=\"js plain\">export </code><code class=\"js keyword\">default</code> <code class=\"js plain\">App; </code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 7</strong>. Olá Mundo!</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"> </div>\r\n</div>\r\n</div>\r\n<p>Após salvar o arquivo alterado repare que a página no navegador será atualizada automaticamente e você verá uma tela parecida com a da <strong>Figura 3</strong>.</p>\r\n<figure class=\"lazy-img\" style=\"text-align: center;\"><img class=\"imagem_artigo loaded\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://arquivo.devmedia.com.br/artigos/criando_projeto_react_40329/ola_mundo.png\" alt=\"Olá Mundo!\" width=\"459\" height=\"441\" />\r\n<figcaption><strong>Figura 3</strong>. Olá Mundo!<br /><br /></figcaption>\r\n</figure>\r\n<h3>Conclusão</h3>\r\n<p>Você acabou de dar o seu primeiro passo no desenvolvimento web com React, mas a sua jornada está só começando. React é uma ferramenta poderosíssima com a qual diversos sistemas complexos, como o Facebook, Netflix e Spotify, foram criados. A partir daqui você está pronto para criar o seu primeiro componente e aprender como o React trabalha para criar aplicações vastas com uma rica experiência de usuários.</p>\r\n</section>\r\n</section>','2020-02-10 16:43:32','2020-02-22 08:47:46',2),(4,'Como instalar React-Native no Windows','Como-instalar-React-Native-no-Windows','<header class=\"postHeader\">\r\n<h1 class=\"postHeaderTitle\" style=\"text-align: center;\">Windows</h1>\r\n</header>\r\n<article>\r\n<div>\r\n<p><img class=\"img-fluid\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://docs.rocketseat.dev/assets/ambiente-react-native/Windows.png\" alt=\"Windows\" width=\"724\" height=\"301\" /></p>\r\n<ol>\r\n<li>Instale o Chocolatey e as demais dependências: <a href=\"https://docs.rocketseat.dev/ambiente-react-native/android/windows#chocolatey\">Instalando chocolatey</a></li>\r\n<li>Instale e configure a SDK do Android: <a href=\"https://docs.rocketseat.dev/ambiente-react-native/android/windows#configurando-sdk-do-android-no-windows\">Configurando SDK</a></li>\r\n<li>Instale e configure o emulador Genymotion: <a href=\"https://docs.rocketseat.dev/ambiente-react-native/android/emulador\">Configurando Emulador</a></li>\r\n</ol>\r\n<hr />\r\n<h2>Chocolatey</h2>\r\n<blockquote>\r\n<p>Para configurar o ambiente Android no Windows, vamos precisar instalar 4 dependências: <strong>Node, Python2, JDK e a SDK do Android.</strong></p>\r\n</blockquote>\r\n<h3>Instalando Chocolatey</h3>\r\n<p>Para instalar as libs no Windows, vamos utilizar um gerenciador de pacotes do Windows chamado Chocolatey. Essa ferramenta nos possibilita instalar dependências e ferramentas no sistema com poucos comandos e tudo pelo terminal. Execute o prompt de comando ou powershell como administrador utilizando a tecla <kbd>Windows + X</kbd> ou clicando com o botão direito sobre o botão “Iniciar”:</p>\r\n<p><img class=\"img-fluid\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://docs.rocketseat.dev/assets/ambiente-react-native/prompt.png\" alt=\"Prompt\" /></p>\r\n<p>Agora, você deve executar os comandos abaixo de acordo com a <strong>opção que você clicou</strong></p>\r\n<h3>Command Prompt</h3>\r\n<p>Caso a opção que você tenha clicado tenha o nome de <strong>Command Prompt</strong>, execute o comando abaixo na janela aberta para instalar o Chocolatey:</p>\r\n<pre><code class=\"hljs css language-console\"><span class=\"hljs-meta\">$</span><span class=\"bash\"> @<span class=\"hljs-string\">\"%SystemRoot%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\"</span> -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command <span class=\"hljs-string\">\"iex ((New-Object System.Net.WebClient).DownloadString(\'https://chocolatey.org/install.ps1\'))\"</span> && SET <span class=\"hljs-string\">\"PATH=%PATH%;%ALLUSERSPROFILE%\\chocolatey\\bin\"</span></span>\r\n</code></pre>\r\n<h3>Powershell</h3>\r\n<p>Caso a opção tenha sido <strong>Powershell</strong>, execute o comando abaixo para verificar se você possui permissões para instalar dependências com o terminal:</p>\r\n<pre><code class=\"hljs css language-console\"><span class=\"hljs-meta\">$</span><span class=\"bash\"> Get-ExecutionPolicy</span>\r\n</code></pre>\r\n<p><strong>Se</strong> o retorno desse comando for <strong>“Restricted”</strong>, execute o próximo comando em seu terminal, se não, prossiga para o próximo passo:</p>\r\n<pre><code class=\"hljs css language-console\"><span class=\"hljs-meta\">$</span><span class=\"bash\"> Set-ExecutionPolicy AllSigned</span>\r\n</code></pre>\r\n<p>Agora, execute o seguinte comando para instalar o Chocolatey:</p>\r\n<pre><code class=\"hljs css language-console\"><span class=\"hljs-meta\">$</span><span class=\"bash\"> Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(<span class=\"hljs-string\">\'https://chocolatey.org/install.ps1\'</span>))</span>\r\n</code></pre>\r\n<p>Agora, teste se a instalação ocorreu corretamente executando o seguinte comando no seu terminal (nada irá acontecer, mas não deve retornar erros). Nesse passo pode ser necessário reiniciar seu terminal.</p>\r\n<pre><code class=\"hljs css language-console\"><span class=\"hljs-meta\">$</span><span class=\"bash\"> choco</span>\r\n</code></pre>\r\n<p>Agora vamos instalar o Node, Python2 e a JDK8 (Java Development Kit 8).</p>\r\n<pre><code class=\"hljs css language-console\"><span class=\"hljs-meta\">$</span><span class=\"bash\"> choco install -y nodejs.install python2 jdk8</span>\r\n</code></pre>\r\n<blockquote>\r\n<p>Se você tiver o NodeJS já instalado em sua máquina, certifique-se que sua versão é superior à 7 e caso esteja com o JDK instalado em sua máquina, certifique-se que sua versão seja a 8.</p>\r\n</blockquote>\r\n<p>Agora com as dependências instaladas, vamos instalar o CLI (Command Line Interface) do React Native que nos ajudará na criação e teste de novos projetos. Nesse passo você provavelmente deve reiniciar seu terminal para o comando funcionar.</p>\r\n<pre><code class=\"hljs css language-console\"><span class=\"hljs-meta\">$</span><span class=\"bash\"> npm install -g react-native-cli</span>\r\n\r\n// ou yarn global add react-native-cli\r\n</code></pre>\r\n<p>Se tudo ocorreu bem até aqui, você conseguirá executar o seguinte comando:</p>\r\n<pre><code class=\"hljs css language-console\"><span class=\"hljs-meta\">$</span><span class=\"bash\"> react-native -h</span>\r\n</code></pre>\r\n<p>Esse comando deve exibir uma lista de comandos possíveis para serem executados com o React Native CLI.</p>\r\n<hr />\r\n<h2>Configurando SDK do Android no Windows</h2>\r\n<p><img style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://docs.rocketseat.dev/assets/android-studio.png\" alt=\"Android\" /></p>\r\n<p>Crie uma pasta em um local desejado para instalação da SDK. Ex: <code>C:\\Android\\Sdk</code></p>\r\n<p><strong>Anote esse caminho para ser utilizado posteriormente</strong></p>\r\n<p>Acesse <a href=\"https://developer.android.com/studio/#downloads\">https://developer.android.com/studio/#downloads</a>, na opção \"Command line tools only\" baixe a SDK referente ao seu sistema operacional.</p>\r\n<p>Após feito o Download, extraia o conteúdo do pacote para a pasta criada no passo anterior.</p>\r\n<p>Agora, no Painel de Controle do Windows, abra o item “Sistema e Segurança” ou “Sistema”, clique em “Configurações avançadas do sistema”, selecione “Variáveis de ambiente” e clique no botão “Nova variável de ambiente”, indique o nome da variável como ANDROID_HOME, adicione o caminho utilizado acima (Ex: <code>C:\\Android\\Sdk</code>) como segundo parâmetro e clique em OK.</p>\r\n<p><img style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://docs.rocketseat.dev/assets/ambiente-react-native/5.png\" alt=\"Prompt\" /></p>\r\n<p>Na mesma janela de \"Variáveis de ambiente\" no Windows, clique na variável PATH e então em \"Editar\". Haverá uma lista de caminhos e você deve adicionar esses dois novos caminhos no fim da lista:</p>\r\n<ol>\r\n<li><code>%ANDROID_HOME%\\platform-tools</code></li>\r\n<li><code>%ANDROID_HOME%\\tools</code></li>\r\n</ol>\r\n<blockquote>\r\n<p><strong>Se sua versão do Windows for menor que a 10 sempre coloque ponto-e-virgula \";\" no final dos caminhos para eles não se juntarem</strong></p>\r\n</blockquote>\r\n<p>Agora, abra seu Command Prompt ou PowerShell como administrador e execute o seguinte comando:</p>\r\n<p><em>Command Prompt</em></p>\r\n<pre><code class=\"hljs css language-console\"><span class=\"hljs-meta\">$</span><span class=\"bash\"> C:\\Android\\Sdk\\tools\\bin\\sdkmanager <span class=\"hljs-string\">\"platform-tools\"</span> <span class=\"hljs-string\">\"platforms;android-27\"</span> <span class=\"hljs-string\">\"build-tools;27.0.3\"</span></span>\r\n</code></pre>\r\n<p><em>PowerShell</em></p>\r\n<pre><code class=\"hljs css language-console\"><span class=\"hljs-meta\">$</span><span class=\"bash\"> PS C:\\Android\\Sdk\\tools\\bin> .\\sdkmanager.bat <span class=\"hljs-string\">\"platform-tools\"</span> <span class=\"hljs-string\">\"platforms;android-27\"</span> <span class=\"hljs-string\">\"build-tools;27.0.3\"</span></span>\r\n</code></pre>\r\n<p><em>*Aceite todas licenças digitando <kbd>y</kbd> quando necessário.</em></p>\r\n</div>\r\n</article>','2020-02-10 16:46:17','2020-02-28 11:51:11',3),(5,'O que é e como funciona a linguagem JavaScript?','O-que-e-e-como-funciona-a-linguagem-JavaScript','<p style=\"text-align: justify;\">Houve um tempo em que a internet era uma coisa estática, chata e sem vida. Em seus primórdios, a World Wide Web era apenas um grande aglomerado de páginas HTML com links que apontavam uns para os outros e nada mais. Com o passar dos anos, as necessidades de quem navegava na internet foram ficando cada vez mais complexas e exigiam uma forma mais avançada das páginas web interagirem com os navegadores e seus usuários.</p>\r\n<div class=\"continua-apos-publicidade\"> </div>\r\n<p style=\"text-align: justify;\">Hoje, a realidade é completamente diferente. A internet não é mais composta por meros documentos HTML com um punhado de texto e imagens, mas sim por aplicações completas e funcionais que facilitam enormemente o dia-a-dia de todos. E tudo isso graças ao surgimento de uma certa tecnologia que está presente em nossa vida digital, mesmo que sequer nos demos conta disso: o <a class=\"termo\" href=\"https://canaltech.com.br/internet/O-que-e-e-como-funciona-a-linguagem-JavaScript/\">JavaScript</a>.</p>\r\n<p style=\"text-align: justify;\">Essa linguagem de programação não foi projetada para rodar em servidores (como linguagens mais tradicionais), mas no navegador do usuário. Ignorada por alguns e subestimada por outros (houve um tempo em que ela foi considerada uma \"linguagem de brinquedo\"), atualmente não há um site sequer que não a use e os incríveis avanços da WWW (aplicações ricas, atualização dinâmica de conteúdo, etc) seriam impossíveis sem ela.</p>\r\n<p> </p>\r\n<h4>O que é JavaScript?</h4>\r\n<p style=\"text-align: justify;\">JavaScript é uma linguagem de programação criada em 1995 por Brendan Eich enquanto trabalhava na Netscape Communications Corporation. Originalmente projetada para rodar no Netscape Navigator, ela tinha o propósito de oferecer aos desenvolvedores formas de tornar determinados processos de páginas web mais dinâmicos, tornando seu uso mais agradável. Um ano depois de seu lançamento, a <a class=\"linkagem\" title=\"Ir para tudo sobre Microsoft\" href=\"https://canaltech.com.br/empresa/microsoft/\">Microsoft</a> portou a linguagem para seu navegador, o que ajudou a consolidar a linguagem e torná-la uma das tecnologias mais importantes e utilizadas na internet.</p>\r\n<div class=\"player_dynad_tv\"> </div>\r\n<p style=\"text-align: justify;\">Embora ela tenha esse nome, não se deve confundir JavaScript com Java, linguagem de programação desenvolvida pela Sun Microsystems: antes, a linguagem criada pela Netscape recebera nomes como LiveScript e Mocha, mas, para aproveitar o grande sucesso da linguagem da Sun no mercado, os executivos da Netscape resolveram mudar o nome de sua linguagem para o atual. Entretanto, Java e Java Script são completamente diferentes e possuem propósitos diversos.</p>\r\n<p style=\"text-align: center;\"> </p>\r\n<figure class=\"image align-center\" style=\"text-align: center;\"><img style=\"width: 567px; height: 265px;\" title=\"Exemplo de JavaScript\" src=\"https://imagens.canaltech.com.br/78549.122265-Exemplo-de-JavaScript.jpg\" alt=\"Exemplo de JavaScript\" width=\"612\" height=\"285\" />\r\n<figcaption></figcaption>\r\n</figure>\r\n<p style=\"text-align: center;\"> </p>\r\n<p style=\"text-align: justify;\">Mas como o JavaScript funciona? Ao invés de rodar remotamente em servidores na internet, o JavaScript tem como característica rodar programas localmente - do lado do cliente, como se costuma dizer em TI. Assim sendo, o JavaScript fornece às páginas web a possibilidade de programação, transformação e processamento de dados enviados e recebidos, interagindo com a marcação e exibição de conteúdo da linguagem HTML e com a estilização desse conteúdo proporcionada pelo CSS nessas páginas.</p>\r\n<p style=\"text-align: justify;\">Scripts de código escritos nessa linguagem e executados em um navegador permitem, por exemplo, atualizar parte do conteúdo de uma página web sem carregá-la totalmente após preencher um formulário, através de técnicas de programação como o AJAX. Isso permite a criação de uma infinidade de softwares completos e totalmente funcionais para diversas finalidades. O Google Docs jamais funcionaria sem a existência do JavaScript, por exemplo.</p>\r\n<div class=\"continua-apos-publicidade\"> </div>\r\n<h4>JavaScript hoje</h4>\r\n<p style=\"text-align: justify;\">Com o grande sucesso do JavaScript, tal tecnologia evoluiu para atender às mais diversas demandas que surgiam com a evolução da internet. Atualmente, é possível não apenas desenvolver sites e aplicativos ricos, mas também aplicativos para smartphones e até mesmo programas desktop. Conheça agora algumas tecnologias que surgiram com a evolução do JavaScript.</p>\r\n<h4 style=\"text-align: left;\">jQuery</h4>\r\n<p style=\"text-align: center;\"> </p>\r\n<figure class=\"image align-center\" style=\"text-align: center;\"><img style=\"width: 512px; height: 161px;\" title=\"JavaScript - Tecnologias\" src=\"https://imagens.canaltech.com.br/78543.122259-JavaScript-Tecnologias.jpg\" alt=\"JavaScript - Tecnologias\" width=\"630\" height=\"198\" />\r\n<figcaption></figcaption>\r\n</figure>\r\n<p style=\"text-align: center;\"> </p>\r\n<p style=\"text-align: justify;\">A mais famosa biblioteca JavaScript do mercado fornece uma variação dessa linguagem com uma sintaxe mais amigável, o que simplifica a criação de aplicações. Graças ao jQuery, é possível escrever programas em JavaScript mais facilmente, pois a sintaxe original do JavaScript não é tão fácil de aprender.</p>\r\n<p style=\"text-align: justify;\">O jQuery se tornou tão popular que, em muitos casos, desenvolvedores substituem totalmente o JavaScript escrito de forma nativa pelo jQuery para criar suas aplicações. Muitos dos componentes dinâmicos que você está vendo nas páginas do Canaltech foram criados graças a esta biblioteca.</p>\r\n<div class=\"continua-apos-publicidade\">\r\n<div id=\"banner-970x250-area\" class=\"advertisement billboard\"> </div>\r\n</div>\r\n<h4>Node.js</h4>\r\n<p style=\"text-align: center;\"> </p>\r\n<figure class=\"image align-center\" style=\"text-align: center;\"><img style=\"width: 453px; height: 152px;\" title=\"JavaScript - Tecnologias\" src=\"https://imagens.canaltech.com.br/78545.122261-JavaScript-Tecnologias.png\" alt=\"JavaScript - Tecnologias\" width=\"630\" height=\"211\" />\r\n<figcaption></figcaption>\r\n</figure>\r\n<p style=\"text-align: center;\"> </p>\r\n<p style=\"text-align: justify;\">Embora originalmente o JavaScript tenha sido projetado para rodar em navegadores, atualmente também é possível executar aplicações escritos nessa linguagem em servidores web graças ao Node.js.</p>\r\n<p style=\"text-align: justify;\">Criado em 2009, o Node.js é um conjunto de ferramentas opensource que permite criar servidores web para execução remota de aplicações JavaScript. Serviços importantes como <a class=\"linkagem\" title=\"Ir para tudo sobre PayPal\" href=\"https://canaltech.com.br/empresa/paypal/\">PayPal</a>, <a class=\"linkagem\" title=\"Ir para tudo sobre LinkedIn\" href=\"https://canaltech.com.br/empresa/linkedin/\">LinkedIn</a> e Groupon usam Node.js para funcionar.</p>\r\n<p style=\"text-align: justify;\">Graças aos avanços proporcionados pela comunidade de desenvolvedores dessa ferramenta, existem implementações do Node.js até mesmo para dispositivos da chamada Internet das Coisas: o Tessel, computador semelhante ao Arduino, executa aplicações embarcadas rodando em Node.js.</p>\r\n<div class=\"continua-apos-publicidade\"> </div>\r\n<h4>Desenvolvimento mobile</h4>\r\n<p style=\"text-align: center;\"> </p>\r\n<figure class=\"image align-center\" style=\"text-align: center;\"><img style=\"width: 360px; height: 112px;\" title=\"JavaScript - Tecnologias\" src=\"https://imagens.canaltech.com.br/78547.122263-JavaScript-Tecnologias.png\" alt=\"JavaScript - Tecnologias\" width=\"581\" height=\"181\" />\r\n<figcaption></figcaption>\r\n</figure>\r\n<p style=\"text-align: center;\"> </p>\r\n<p style=\"text-align: justify;\">O JavaScript já transcendeu os navegadores e agora permite fazer virtualmente qualquer software que se possa imaginar, inclusive aplicativos para smartphones!</p>\r\n<p style=\"text-align: justify;\">Todos os sistemas operacionais móveis disponíveis no mercado suportam JavaScript, sendo possível construir aplicativos para Android, iOS, Windows Phone. A vantagem aqui é que geralmente é mais fácil desenvolver aplicativos compatíveis com todas as aplicações, ao contrário do desenvolvimento com linguagens nativas, que limita as opções ao SO de origem (Java para Android, Swift para iOS, etc).</p>\r\n<p style=\"text-align: justify;\">Sencha Touch, PhoneGap, Titanium e outras tecnologias são apenas alguns exemplos de ferramentas que permitem a criação de poderosos aplicativos mobile com mais facilidade e flexibilidade.</p>\r\n<p style=\"text-align: justify;\"> </p>\r\n<h4>Possibilidades</h4>\r\n<p style=\"text-align: justify;\">Como se pode observar, há muito tempo que o JavaScript se tornou mais do que uma mera linguagem para fazer truques bobos em páginas HTML e atualmente é praticamente impossível imaginar a internet sem a existência dele. Em conjunto com o HTML e o CSS, o JavaScript - bem como suas bibliotecas, dialetos e tecnologias relacionadas - é um dos alicerces fundamentais da web como a conhecemos.</p>\r\n<div class=\"continua-apos-publicidade\">\r\n<div id=\"banner-970x250-2-area\" class=\"advertisement billboard\"> </div>\r\n</div>\r\n<p style=\"text-align: justify;\">Se você é aspirante a programador e deseja aprender um pouco mais sobre esta linguagem, uma dica bem bacana é participar do curso interativo oferecido pela CodeCademy - que, inclusive, jamais existiria como é hoje sem a existência do JavaScript! A Mozilla Foundation, atual responsável pela linguagem, também fornece um ótimo material de estudo na MDN.</p>','2020-02-25 13:01:44','2020-02-25 13:14:36',5),(6,'Introdução a Bootstrap','Introducao-a-Bootstrap','<p class=\"bd-lead\"><span>Comece com o Bootstrap, a estrutura mais popular do mundo para criar sites responsivos, primeiro para dispositivos móveis, com o BootstrapCDN e uma página inicial de modelos.</span></p>\r\n<div id=\"carbonads\"> </div>\r\n<h2 id=\"quick-start\"><span class=\"bd-content-title\"><span>Começo rápido</span></span></h2>\r\n<p><span>Deseja adicionar rapidamente o Bootstrap ao seu projeto? Use o BootstrapCDN, fornecido gratuitamente pelo pessoal do StackPath. Você está usando um gerenciador de pacotes ou precisa baixar os arquivos de origem? </span><a href=\"https://getbootstrap.com/docs/4.4/getting-started/download/\"><span>Vá para a página de downloads</span></a><span> .</span></p>\r\n<p> </p>\r\n<h3 id=\"css\"><span class=\"bd-content-title\"><span>CSS</span></span></h3>\r\n<p><span>Copie e cole a folha de estilo </span><code class=\"highlighter-rouge\"><link></code><span>no seu </span><code class=\"highlighter-rouge\"><head></code><span>antes de todas as outras folhas de estilo para carregar nosso CSS.</span></p>\r\n<div class=\"bd-clipboard\"><button class=\"btn-clipboard\" title=\"\" type=\"button\" data-original-title=\"Copy to clipboard\"><span>cópia de</span></button></div>\r\n<figure class=\"highlight\">\r\n<pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\"><link</span> <span class=\"na\">rel=</span><span class=\"s\">\"stylesheet\"</span> <span class=\"na\">href=</span><span class=\"s\">\"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css\"</span> <span class=\"na\">integrity=</span><span class=\"s\">\"sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh\"</span> <span class=\"na\">crossorigin=</span><span class=\"s\">\"anonymous\"</span><span class=\"nt\">></span></code></pre>\r\n</figure>\r\n<h3> </h3>\r\n<h3 id=\"js\"><span class=\"bd-content-title\"><span>JS</span></span></h3>\r\n<p><span>Muitos de nossos componentes requerem o uso de JavaScript para funcionar. Especificamente, eles exigem </span><a href=\"https://jquery.com/\"><span>jQuery</span></a><span> , </span><a href=\"https://popper.js.org/\"><span>Popper.js</span></a><span> e nossos próprios plug-ins JavaScript. Coloque os seguintes </span><code class=\"highlighter-rouge\"><script></code><span>s no final das suas páginas, logo antes da </span><code class=\"highlighter-rouge\"></body></code><span>tag de fechamento , para habilitá-los. O jQuery deve vir primeiro, depois o Popper.js e nossos plug-ins JavaScript.</span></p>\r\n<p><span>Usamos </span><a href=\"https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/\"><span>o slim build do jQuery</span></a><span> , mas a versão completa também é suportada.</span></p>\r\n<p> </p>\r\n<div class=\"bd-clipboard\"><button class=\"btn-clipboard\" title=\"\" type=\"button\" data-original-title=\"Copy to clipboard\"><span>cópia de</span></button></div>\r\n<figure class=\"highlight\">\r\n<pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\"><script </span><span class=\"na\">src=</span><span class=\"s\">\"https://code.jquery.com/jquery-3.4.1.slim.min.js\"</span> <span class=\"na\">integrity=</span><span class=\"s\">\"sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n\"</span> <span class=\"na\">crossorigin=</span><span class=\"s\">\"anonymous\"</span><span class=\"nt\">></script></span>\r\n<span class=\"nt\"><script </span><span class=\"na\">src=</span><span class=\"s\">\"https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js\"</span> <span class=\"na\">integrity=</span><span class=\"s\">\"sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo\"</span> <span class=\"na\">crossorigin=</span><span class=\"s\">\"anonymous\"</span><span class=\"nt\">></script></span>\r\n<span class=\"nt\"><script </span><span class=\"na\">src=</span><span class=\"s\">\"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js\"</span> <span class=\"na\">integrity=</span><span class=\"s\">\"sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6\"</span> <span class=\"na\">crossorigin=</span><span class=\"s\">\"anonymous\"</span><span class=\"nt\">></script></span></code></pre>\r\n</figure>\r\n<p><span>Curioso para saber quais componentes requerem explicitamente jQuery, JS e Popper.js? Clique no link show components below. Se você não tiver certeza da estrutura geral da página, continue lendo um exemplo de modelo de página.</span></p>\r\n<p><span>Nosso </span><code class=\"highlighter-rouge\">bootstrap.bundle.js</code><span>e </span><code class=\"highlighter-rouge\">bootstrap.bundle.min.js</code><span>incluem </span><a href=\"https://popper.js.org/\"><span>Popper</span></a><span> , mas não </span><a href=\"https://jquery.com/\"><span>jQuery</span></a><span> . Para mais informações sobre o que está incluído no Bootstrap, consulte nossa seção de </span><a href=\"https://getbootstrap.com/docs/4.4/getting-started/contents/#precompiled-bootstrap\"><span>conteúdo</span></a><span> .</span></p>\r\n<details>\r\n<summary class=\"text-primary mb-3\"><span>Mostrar componentes que requerem JavaScript<br /><br /></span></summary>\r\n</details>\r\n<h2 id=\"starter-template\"><span class=\"bd-content-title\"><span>Modelo inicial</span></span></h2>\r\n<p><span>Certifique-se de ter suas páginas configuradas com os mais recentes padrões de design e desenvolvimento. Isso significa usar um doctype HTML5 e incluir uma metatag de viewport para comportamentos responsivos adequados. Junte tudo e suas páginas devem ficar assim:</span></p>\r\n<p> </p>\r\n<div class=\"bd-clipboard\"><button class=\"btn-clipboard\" title=\"\" type=\"button\" data-original-title=\"Copy to clipboard\"><span>cópia de</span></button></div>\r\n<figure class=\"highlight\">\r\n<pre><code class=\"language-html\" data-lang=\"html\"><span class=\"cp\"><!doctype html></span>\r\n<span class=\"nt\"><html</span> <span class=\"na\">lang=</span><span class=\"s\">\"en\"</span><span class=\"nt\">></span>\r\n <span class=\"nt\"><head></span>\r\n <span class=\"c\"><!-- Required meta tags --></span>\r\n <span class=\"nt\"><meta</span> <span class=\"na\">charset=</span><span class=\"s\">\"utf-8\"</span><span class=\"nt\">></span>\r\n <span class=\"nt\"><meta</span> <span class=\"na\">name=</span><span class=\"s\">\"viewport\"</span> <span class=\"na\">content=</span><span class=\"s\">\"width=device-width, initial-scale=1, shrink-to-fit=no\"</span><span class=\"nt\">></span>\r\n\r\n <span class=\"c\"><!-- Bootstrap CSS --></span>\r\n <span class=\"nt\"><link</span> <span class=\"na\">rel=</span><span class=\"s\">\"stylesheet\"</span> <span class=\"na\">href=</span><span class=\"s\">\"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css\"</span> <span class=\"na\">integrity=</span><span class=\"s\">\"sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh\"</span> <span class=\"na\">crossorigin=</span><span class=\"s\">\"anonymous\"</span><span class=\"nt\">></span>\r\n\r\n <span class=\"nt\"><title></span>Hello, world!<span class=\"nt\"></title></span>\r\n <span class=\"nt\"></head></span>\r\n <span class=\"nt\"><body></span>\r\n <span class=\"nt\"><h1></span>Hello, world!<span class=\"nt\"></h1></span>\r\n\r\n <span class=\"c\"><!-- Optional JavaScript --></span>\r\n <span class=\"c\"><!-- jQuery first, then Popper.js, then Bootstrap JS --></span>\r\n <span class=\"nt\"><script </span><span class=\"na\">src=</span><span class=\"s\">\"https://code.jquery.com/jquery-3.4.1.slim.min.js\"</span> <span class=\"na\">integrity=</span><span class=\"s\">\"sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n\"</span> <span class=\"na\">crossorigin=</span><span class=\"s\">\"anonymous\"</span><span class=\"nt\">></script></span>\r\n <span class=\"nt\"><script </span><span class=\"na\">src=</span><span class=\"s\">\"https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js\"</span> <span class=\"na\">integrity=</span><span class=\"s\">\"sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo\"</span> <span class=\"na\">crossorigin=</span><span class=\"s\">\"anonymous\"</span><span class=\"nt\">></script></span>\r\n <span class=\"nt\"><script </span><span class=\"na\">src=</span><span class=\"s\">\"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js\"</span> <span class=\"na\">integrity=</span><span class=\"s\">\"sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6\"</span> <span class=\"na\">crossorigin=</span><span class=\"s\">\"anonymous\"</span><span class=\"nt\">></script></span>\r\n <span class=\"nt\"></body></span>\r\n<span class=\"nt\"></html><br /></span></code></pre>\r\n</figure>\r\n<p><span>É tudo o que você precisa para os requisitos gerais da página. Visite os </span><a href=\"https://getbootstrap.com/docs/4.4/layout/overview/\"><span>documentos de layout</span></a><span> ou </span><a href=\"https://getbootstrap.com/docs/4.4/examples/\"><span>nossos exemplos oficiais</span></a><span> para começar a definir o conteúdo e os componentes do seu site.</span></p>\r\n<p> </p>\r\n<h2 id=\"important-globals\"><span class=\"bd-content-title\"><span>Globais importantes</span></span></h2>\r\n<p><span>O Bootstrap emprega vários estilos e configurações globais importantes que você precisa conhecer ao usá-lo, todos quase exclusivamente voltados para a </span><em><span>normalização</span></em><span> de estilos entre navegadores. Vamos mergulhar.</span></p>\r\n<p> </p>\r\n<h3 id=\"html5-doctype\"><span class=\"bd-content-title\"><span>Doctype HTML5</span></span></h3>\r\n<p><span>O Bootstrap requer o uso do doctype HTML5. Sem ele, você verá alguns estilos descolados e descolados, mas incluí-lo não deve causar soluços consideráveis.</span></p>\r\n<p> </p>\r\n<div class=\"bd-clipboard\"><button class=\"btn-clipboard\" title=\"\" type=\"button\" data-original-title=\"Copy to clipboard\"><span>cópia de</span></button></div>\r\n<figure class=\"highlight\" style=\"text-align: center;\">\r\n<pre><code class=\"language-html\" data-lang=\"html\"><span class=\"cp\"><!doctype html></span>\r\n<span class=\"nt\"><html</span> <span class=\"na\">lang=</span><span class=\"s\">\"en\"</span><span class=\"nt\">></span>\r\n ...\r\n<span class=\"nt\"></html><br /></span></code></pre>\r\n</figure>\r\n<h3 id=\"responsive-meta-tag\"><span class=\"bd-content-title\"><span>Meta tag responsiva</span></span></h3>\r\n<p><span>O Bootstrap é desenvolvido </span><em><span>primeiro para dispositivos móveis</span></em><span> , uma estratégia na qual otimizamos o código para dispositivos móveis e depois escalamos componentes conforme necessário, usando consultas de mídia CSS. Para garantir a renderização adequada e o zoom de toque em todos os dispositivos, </span><strong><span>adicione a metatag responsiva da viewport</span></strong><span> à sua </span><code class=\"highlighter-rouge\"><head></code><span>.</span></p>\r\n<div class=\"bd-clipboard\"><button class=\"btn-clipboard\" title=\"\" type=\"button\" data-original-title=\"Copy to clipboard\"><span>cópia de</span></button></div>\r\n<figure class=\"highlight\">\r\n<pre><code class=\"language-html\" data-lang=\"html\"><span class=\"nt\"><meta</span> <span class=\"na\">name=</span><span class=\"s\">\"viewport\"</span> <span class=\"na\">content=</span><span class=\"s\">\"width=device-width, initial-scale=1, shrink-to-fit=no\"</span><span class=\"nt\">></span></code></pre>\r\n</figure>\r\n<p><span>Você pode ver um exemplo disso em ação no </span><a href=\"https://getbootstrap.com/docs/4.4/getting-started/introduction/#starter-template\"><span>modelo inicial</span></a><span> .</span></p>\r\n<p> </p>\r\n<h3 id=\"box-sizing\"><span class=\"bd-content-title\"><span>Dimensionamento de caixa</span></span></h3>\r\n<p><span>Para um dimensionamento mais direto em CSS, trocamos o </span><code class=\"highlighter-rouge\">box-sizing</code><span>valor global de </span><code class=\"highlighter-rouge\">content-box</code><span>para </span><code class=\"highlighter-rouge\">border-box</code><span>. Isso garante </span><code class=\"highlighter-rouge\">padding</code><span>que não afeta a largura final calculada de um elemento, mas pode causar problemas com alguns softwares de terceiros, como o Google Maps e o Google Custom Search Engine.</span></p>\r\n<p><span>Nas raras ocasiões em que você precisar substituí-lo, use algo como o seguinte:</span></p>\r\n<p> </p>\r\n<div class=\"bd-clipboard\"><button class=\"btn-clipboard\" title=\"\" type=\"button\" data-original-title=\"Copy to clipboard\"><span>cópia de</span></button></div>\r\n<figure class=\"highlight\">\r\n<pre><code class=\"language-css\" data-lang=\"css\"><span class=\"nc\">.selector-for-some-widget</span> <span class=\"p\">{</span>\r\n <span class=\"nl\">box-sizing</span><span class=\"p\">:</span> <span class=\"n\">content-box</span><span class=\"p\">;</span>\r\n<span class=\"p\">}</span></code></pre>\r\n</figure>\r\n<p><span>Com o snippet acima, os elementos aninhados - incluindo o conteúdo gerado via </span><code class=\"highlighter-rouge\">::before</code><span>e - </span><code class=\"highlighter-rouge\">::after</code><span>herdarão o especificado </span><code class=\"highlighter-rouge\">box-sizing</code><span>para isso </span><code class=\"highlighter-rouge\">.selector-for-some-widget</code><span>.</span></p>\r\n<p><span>Saiba mais sobre o </span><a href=\"https://css-tricks.com/box-sizing/\"><span>modelo e o tamanho da caixa em CSS Tricks</span></a><span> .</span></p>\r\n<p> </p>\r\n<h3 id=\"reboot\"><span class=\"bd-content-title\"><span>Reiniciar</span></span></h3>\r\n<p><span>Para uma renderização aprimorada em vários navegadores, usamos </span><a href=\"https://getbootstrap.com/docs/4.4/content/reboot/\"><span>Reinicialização</span></a><span> para corrigir inconsistências entre navegadores e dispositivos, fornecendo redefinições ligeiramente mais opinativas para elementos HTML comuns.</span></p>\r\n<p> </p>\r\n<h2 id=\"community\"><span class=\"bd-content-title\"><span>Comunidade</span></span></h2>\r\n<p><span>Mantenha-se atualizado sobre o desenvolvimento do Bootstrap e entre em contato com a comunidade com esses recursos úteis.</span></p>\r\n<p> </p>\r\n<ul>\r\n<li><span>Siga </span><a href=\"https://twitter.com/getbootstrap\"><span>@getbootstrap no Twitter</span></a><span> .</span></li>\r\n<li><span>Leia e assine </span><a href=\"https://blog.getbootstrap.com/\"><span>o Blog oficial do Bootstrap</span></a><span> .</span></li>\r\n<li><span>Junte </span><a href=\"https://bootstrap-slack.herokuapp.com/\"><span>o quarto oficial Slack</span></a><span> .</span></li>\r\n<li><span>Converse com outros Bootstrappers no IRC. No </span><code class=\"highlighter-rouge\">irc.freenode.net</code><span>servidor, no </span><code class=\"highlighter-rouge\">##bootstrap</code><span>canal.</span></li>\r\n<li><span>A ajuda para implementação pode ser encontrada em Stack Overflow (marcado </span><a href=\"https://stackoverflow.com/questions/tagged/bootstrap-4\"><code class=\"highlighter-rouge\">bootstrap-4</code></a><span>).</span></li>\r\n<li><span>Os desenvolvedores devem usar a palavra </span><code class=\"highlighter-rouge\">bootstrap</code><span>- chave nos pacotes que modificam ou aumentam a funcionalidade do Bootstrap ao distribuir por </span><a href=\"https://www.npmjs.com/search?q=keywords:bootstrap\"><span>npm</span></a><span> ou mecanismos de entrega semelhantes para obter a máxima descoberta.</span></li>\r\n</ul>\r\n<p><span>Você também pode seguir </span><a href=\"https://twitter.com/getbootstrap\"><span>@getbootstrap no Twitter</span></a><span> para obter as últimas fofocas e vídeos musicais impressionantes.</span></p>','2020-02-25 14:03:55','2020-02-25 14:03:55',14),(7,'jQuery Tutorial','jQuery-Tutorial','<h3 id=\"Introducao\">Introdução ao jQuery</h3>\r\n<p>Nesse artigo vamos falar sobre jQuery, uma <strong><a title=\"Javascript Tutorial\" href=\"http://www.devmedia.com.br/javascript-tutorial/37257\" target=\"_blank\" rel=\"noopener\">biblioteca JavaScript</a></strong> desenvolvida por <a title=\"John Resig\" href=\"https://en.wikipedia.org/wiki/John_Resig\" target=\"_blank\" rel=\"noopener\">John Resig</a>, e que se tornou uma das bibliotecas JavaScript mais populares na internet, de código aberto e disponibilizada sobre as licenças MIT e GPL. Desse modo, é uma biblioteca que podemos utilizar para fins comerciais e pessoais, sem termos que pagar qualquer tipo de licença de uso.</p>\r\n<p>Sua criação teve como foco a simplicidade e o objetivo de facilitar nossa vida no desenvolvimento de aplicações que necessitariam de linhas e mais linhas de código para obtermis um determinado efeito, ou efetuar uma <a title=\"Ajax com jQuery: Trabalhando com requisições assíncronas\" href=\"https://www.devmedia.com.br/ajax-com-jquery-trabalhando-com-requisicoes-assincronas/37141\" target=\"_blank\" rel=\"noopener\">requisição Ajax</a>. Com <strong>jQuery</strong> esse trabalho é substituído por poucas instruções, o que faz da <strong>jQuery</strong> uma ferramenta ideal para aqueles designers e desenvolvedores com pouco conhecimento em <strong>JavaScript</strong>.</p>\r\n<h3 id=\"jQuery\">O que é a jQuery?</h3>\r\n<p>jQuery é uma biblioteca de funções em <a title=\"Guia de JavaScript\r\n\" href=\"https://www.devmedia.com.br/guia/javascript/34372\" target=\"_blank\" rel=\"noopener\">JavaScript</a> que interage com o <a title=\"Guia de HTML\" href=\"https://www.devmedia.com.br/guia/html/38051\" target=\"_blank\" rel=\"noopener\">HTML</a>, desenvolvida para simplificar os scripts interpretados no navegador do usuário (client-side). Criada em dezembro de 2006 no BarCamp de Nova York por <a title=\"John Resig About\" href=\"https://johnresig.com/about/\" target=\"_blank\" rel=\"noopener\">John Resig</a>. Usada por cerca de 77% dos 10 mil sites mais visitados do mundo, jQuery é a mais popular das bibliotecas JavaScript.</p>\r\n<p><strong>jQuery é uma biblioteca de código aberto (open source)</strong> e possui licença dual, fazendo uso da <a title=\"Licença MIT\" href=\"https://pt.wikipedia.org/wiki/Licen%C3%A7a_MIT\" target=\"_blank\" rel=\"noopener\">Licença MIT</a> ou da <a title=\"GNU\" href=\"https://pt.wikipedia.org/wiki/GNU_General_Public_License\" target=\"_blank\" rel=\"noopener\">GNU General Public License</a> versão 2. A sintaxe do jQuery foi desenvolvida para simplificar a navegação em documentos HTML, a seleção de elementos DOM, criar animações, manipular eventos, desenvolver aplicações <a title=\"Introdução ao AJAX\" href=\"http://www.devmedia.com.br/introducao-ao-ajax-revista-easy-java-magazine-19/24797\" target=\"_blank\" rel=\"noopener\">AJAX</a> e criação de plugins sobre ela. Permitindo aos desenvolvedores criarem camadas de abstração para interações de baixo nível de modo simplificado em aplicações web de grande complexidade.</p>\r\n<div class=\"videoWrapper\"><iframe src=\"https://www.youtube.com/embed/FKnkPtEvfws?rel=0\" frameborder=\"0\" data-mce-fragment=\"1\"></iframe></div>\r\n<p class=\"destaque-link-conteudo\" align=\"center\">Saiba mais: <a title=\"Curso de jQuery\" href=\"http://www.devmedia.com.br/curso/o-que-e-jquery/1973\" target=\"_blank\" rel=\"noopener\">Curso de jQuery</a></p>\r\n<p>A jQuery é leve, seu tamanho é em torno de 30kb, extensível, oferece suporte a plug-ins e conta ainda com uma grande equipe de desenvolvedores que vem diariamente adicionando novos recursos e funções a está biblioteca, nos disponibilizando uma grande quantidade de controles para interface.</p>\r\n<h3 id=\"Utilidade\">Utilidade do jQuery</h3>\r\n<p>Podemos utilizar a jQuery para:</p>\r\n<ul>\r\n<li>Adicionarmos efeitos visuais e animações;</li>\r\n<li>Acessarmos e manipularmos o DOM;</li>\r\n<li>Carregarmos componentes Ajax;</li>\r\n<li>Provermos interatividade;</li>\r\n<li>Fazer alteração de conteúdo;</li>\r\n<li>Simplificarmos tarefas JavaScript.</li>\r\n</ul>\r\n<h3 id=\"Suporte\">Suporte ao jQuery</h3>\r\n<p>A jQuery foi desenvolvida para ser uma biblioteca com suporte a qualquer navegador Web. Ela facilita a nós desenvolvedores a muitas vezes difícil tarefa de desenvolvermos aplicações em JavaScript, tendo que atingir a enorme quantidade de navegadores em que nossa programação poderá ser executada. Como sabemos, cada navegador possui seu próprio conjunto de características de implementação que ainda pode dificultar mais ainda, de acordo com a variação de plataforma e sistema operacional onde esteja executando. Já com a <strong>jQuery</strong>, nossa programação é única e transparente.</p>\r\n<p>Com a <strong>jQuery</strong> possuímos suporte também às CSS3, onde podemos <a title=\"CSS3 Selectors: Conhecendo os seletores das CSS3\" href=\"https://www.devmedia.com.br/css3-selectors-conhecendo-os-seletores-das-css3/24782\" target=\"_blank\" rel=\"noopener\">utilizar seletores CSS3</a> mesmo que o navegador não tenha suporte a esta folhas de estilo. Isso é possível porque a própria <strong>jQuery</strong> implementa os seletores CSS3, o que faz com que ela seja independente do navegador em que estiver sendo executada.</p>\r\n<h3 id=\"Instalacao\">Instalação do jQuery</h3>\r\n<p>Podemos estar obtendo a jQuery gratuitamente no <a title=\"jQuery\" href=\"https://jquery.com/\" target=\"_blank\" rel=\"noopener\">site</a>.</p>\r\n<figure class=\"lazy-img\"><img class=\"imagem_artigo loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Ricardo_Teixeira/Introducao_jQuery/Introducao_jQuery1.jpg\" alt=\"Download da jQuery\" /><br />\r\n<figcaption><strong>Figura 1:</strong> Download da jQuery</figcaption>\r\n</figure>\r\n<p>Nessa página inicial clique no botão “download jQuery” localizado no canto direito em laranja, como podemos ver na figura 1, e a seguinte página será aberta.</p>\r\n<figure class=\"lazy-img\"><img class=\"imagem_artigo loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Ricardo_Teixeira/Introducao_jQuery/Introducao_jQuery2.jpg\" alt=\"Escolha da versão para download da jQuery\" />\r\n<figcaption><strong>Figura 2:</strong> Escolha da versão para download da jQuery</figcaption>\r\n</figure>\r\n<p>Agora na página de download ficamos com duas opções para que você escolha a que vai melhor se adequar ao seu projeto. Porém, antes de efetuarmos o download de uma das duas, vamos conhecer a diferença entre elas.</p>\r\n<p><strong>Production:</strong> Esta versão serve para ambientes de produção, é uma versão com o código em formato compactado, sem quebra de linhas e com o código sem comentários, possuindo apenas 15% do tamanho da que veremos a seguir.</p>\r\n<figure class=\"lazy-img\"><img class=\"imagem_artigo loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Ricardo_Teixeira/Introducao_jQuery/Introducao_jQuery3.jpg\" alt=\"Versão production jQuery 1.9.1\" />\r\n<figcaption><strong>Figura 3:</strong> Versão production jQuery 1.9.1</figcaption>\r\n</figure>\r\n<p><strong>Development:</strong> Esta versão é para desenvolvimento, é a versão não compactada da biblioteca e possui o código todo comentado. Sendo ideal para ambientes de desenvolvimento, por se integrar facilmente com as ferramentas e IDEs.</p>\r\n<figure class=\"lazy-img\"><img class=\"imagem_artigo loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Ricardo_Teixeira/Introducao_jQuery/Introducao_jQuery4.jpg\" alt=\"Versão development jQuery 1.9.1\" />\r\n<figcaption><strong>Figura 4:</strong> Versão development jQuery 1.9.1</figcaption>\r\n</figure>\r\n<p>Agora que já conhecemos ambas as versões disponíveis, basta escolher a versão que desejamos usar e clicar nos links mostrados na figura 3 e na figura 4, de acordo com a versão escolhida para o download. A biblioteca vai abrir em formato de código <strong>JavaScript</strong> no próprio navegador. Para salvá-la, podemos ir no meu arquivo < Salvar e salvarmos na pasta de desenvolvimento ou onde preferir. Nomes recomendados para cada versão.</p>\r\n<ul>\r\n<li>Versão production: <span class=\"lf-badge\">jquery.min.js</span>;</li>\r\n<li>Versão Development: <span class=\"lf-badge\">jquery.js</span>.</li>\r\n</ul>\r\n<p>Uma dica para a melhor organização do nosso projeto é criarmos uma pasta <span class=\"lf-badge\">js</span> dentro da pasta principal do projeto e salvar a <strong>jQuery</strong> dentro dessa pasta.</p>\r\n<h3 id=\"Incluindo\">Incluindo arquivo jQuery no HTML</h3>\r\n<p>Agora que já fizemos o download e salvamos a jQuery dentro da pasta do nosso projeto, vamos referenciar a mesma utilizando o parâmetro SRC da tag SCRIPT dentro da tag HEAD.</p>\r\n<p class=\"code-caption\"><strong>Listagem 1:</strong> Fazendo referencia arquivo jQuery.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_966322\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">html</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">head</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">title</code><code class=\"xml plain\">>...</</code><code class=\"xml keyword\">title</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml comments\"><!-- Versão development jQuery --></code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">script</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"text/javascript\"</code> <code class=\"xml color1\">src</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"jquery.js\"</code><code class=\"xml plain\">></</code><code class=\"xml keyword\">script</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">head</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<h3 id=\"Construtor\">Construtor jQuery</h3>\r\n<p>Com a <strong>jQuery</strong> temos que utilizar a função <span class=\"lf-badge\">$()</span> para encontrarmos um elemento HTML dentro da aplicação e utilizarmos as funções da biblioteca. Essa função [e tecnicamente conhecida como construtor ou função construtora e ela estará presente em todas as aplicações que <strong>utilizarmos a jQuery</strong>.</p>\r\n<p>É denominada desse modo para ser fácil de decorar, e o fato de se chamar $ evita a possibilidade de ocorrer conflitos com outras funções da biblioteca do usuário. Ocasionalmente podemos vir a utilizar alguma outra biblioteca que também tenha como uso uma função chamada $. Caso isso acontece podemos usar como alternativa a função <span class=\"lf-badge\">jQuery()</span>.</p>\r\n<p>O construtor faz uso do seguinte parâmetro, onde <span class=\"lf-badge\">alvo</span> é um seletor CSS para TAG, ID ou classe.</p>\r\n<ul>\r\n<li>$ (alvo)</li>\r\n</ul>\r\n<p>Vejamos alguns exemplo de sua utilização.</p>\r\n<ul>\r\n<li>$(‘h1’)</li>\r\n<li>$(‘p’)</li>\r\n<li>$(‘#conteudo’)</li>\r\n<li>$(‘.teste’)</li>\r\n</ul>\r\n<p>Como podemos ver, no exemplo acima estamos fazendo com que a <strong>jQuery</strong> encontre os elementos, H1, P, e os elementos com <span class=\"lf-badge\">id=\"conteúdo\"</span> e a <span class=\"lf-badge\">class=\"teste\"</span>. O requisito mínimo para a utilização da jQuery é saber utilizar os seletores CSS.</p>\r\n<h3 id=\"Funcao\">Função <span class=\"lf-badge\">$(document).ready()</span></h3>\r\n<p>Essa função é uma das primeiras coisas que devemos aprender na <strong>jQuery</strong>. De forma simples podemos dizer que essa função é responsável por executar o conteúdo do método <span class=\"lf-badge\">ready()</span>, tão logo o navegador tenha carregado todos os elementos HTML.</p>\r\n<p>O modo mais comum de utilizarmos ela é em conjunto com uma função anônima, contendo os comandos que desejamos executar. Vejamos um exemplo.</p>\r\n<p class=\"code-caption\"><strong>Listagem 2:</strong> Função anomina dentro da função <span class=\"lf-badge\">$(document).ready()</span></p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_140076\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">script</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"text/javascript\"</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\">$(document).ready(function(){</code></div>\r\n<div class=\"line number3 index2 alt2\"> </div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\">//o nosso código jquery vai aqui. </code></div>\r\n<div class=\"line number5 index4 alt2\"> </div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\">});</code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">script</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<p>Vamos então unir tudo que aprendemos até agora e ver como seria o seu funcionamento na prática. Para isso vamos unir todos os códigos que geramos ate agora em um único arquivo e executarmos para ver se a mensagem de página carregada ira realmente aparecer.</p>\r\n<p class=\"code-caption\"><strong>Listagem 4:</strong> Modelo jQuery completo</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_334556\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n<div class=\"line number10 index9 alt1\">10</div>\r\n<div class=\"line number11 index10 alt2\">11</div>\r\n<div class=\"line number12 index11 alt1\">12</div>\r\n<div class=\"line number13 index12 alt2\">13</div>\r\n<div class=\"line number14 index13 alt1\">14</div>\r\n<div class=\"line number15 index14 alt2\">15</div>\r\n<div class=\"line number16 index15 alt1\">16</div>\r\n<div class=\"line number17 index16 alt2\">17</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">head</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">meta</code> <code class=\"xml color1\">http-equiv</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"Content-Type\"</code> <code class=\"xml color1\">content</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"text/html; charset=iso-8859-1\"</code> <code class=\"xml plain\">/></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">title</code><code class=\"xml plain\">>Introdução jQuery </</code><code class=\"xml keyword\">title</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml comments\"><!-- Referencia a biblioteca jquery (JS) --></code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">script</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"text/javascript\"</code> <code class=\"xml color1\">src</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"jquery.js\"</code><code class=\"xml plain\">></</code><code class=\"xml keyword\">script</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml comments\"><!-- Funcionalidades da página --></code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">script</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"text/javascript\"</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\">$(document).ready(function(){</code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"xml plain\">alert(\"página carregada\")</code></div>\r\n<div class=\"line number10 index9 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\">});</code></div>\r\n<div class=\"line number11 index10 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">script</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number12 index11 alt1\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">head</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number13 index12 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">body</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number14 index13 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">h1</code><code class=\"xml plain\">>Página demonstração</</code><code class=\"xml keyword\">h1</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number15 index14 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">h2</code><code class=\"xml plain\">>jQuery biblioteca javascript.</</code><code class=\"xml keyword\">h2</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number16 index15 alt1\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">body</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number17 index16 alt2\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">html</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<p>Resultado:</p>\r\n<figure class=\"lazy-img\"><img class=\"imagem_artigo loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Ricardo_Teixeira/Introducao_jQuery/Introducao_jQuery5.jpg\" alt=\"Exemplo página usando jQuery\" />\r\n<figcaption><strong>Figura 5:</strong> Exemplo página usando jQuery</figcaption>\r\n</figure>\r\n<p>É importante acessar a página oficial da biblioteca e consultar a documentação, bastante completa.</p>\r\n<p>Assim concluirmos mais esse artigo, espero que tenha sido do agrado e entendimento de todos os leitores. Fiquem à vontade para estar deixando sugestões, dicas e pedidos de novos artigos.</p>\r\n<p>Um abraço a todos.</p>\r\n</div>','2020-02-25 14:06:18','2020-02-25 14:06:18',15),(8,'HTML básico - Códigos HTML','HTML-basico-Codigos-HTML','<p style=\"text-align: justify;\">Ao acessar uma página web através de um navegador, ele é capaz de interpretar o código HTML e renderizá-lo de forma compreensível para o usuário final, exibindo textos, botões etc. com as configurações definidas por meio das diversas tags que essa linguagem dispõe.</p>\r\n<hr />\r\n<p style=\"text-align: justify;\">Atualmente a <strong>HTML</strong> encontra-se na versão 5 e é padronizada pelo W3C (World Wide Web Consortium), uma organização internacional responsável por estabelecer padrões para a internet, como a linguagem XML, CSS e o SOAP.</p>\r\n<h3 id=\"estrutura\" style=\"text-align: justify;\">Estrutura básica de uma página HTML</h3>\r\n<p style=\"text-align: justify;\">A <strong>estrutura básica de uma página HTML</strong> pode ser vista na <strong>Listagem 1</strong>, na qual podemos ver as principais tags que são necessárias para que o documento seja corretamente interpretado pelos browsers.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_784951\" class=\"syntaxhighlighter xml\">\r\n<table style=\"margin-left: auto; margin-right: auto;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n<div class=\"line number10 index9 alt1\">10</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><!DOCTYPE html></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">html</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">head</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">meta</code> <code class=\"xml color1\">charset</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"UTF-8\"</code><code class=\"xml plain\">/></code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">title</code><code class=\"xml plain\">>Document</</code><code class=\"xml keyword\">title</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">head</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">body</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml comments\"><!-- Conteúdo --></code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">body</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number10 index9 alt1\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">html</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\" style=\"text-align: center;\"><strong>Listagem 1</strong>. Estrutura básica de uma página HTML</div>\r\n</div>\r\n<p style=\"text-align: justify;\"><strong>Linha 1</strong>: a instrução <span class=\"lf-badge\">DOCTYPE</span> deve ser sempre a primeira a aparecer em uma página HTML para indicar ao browser qual versão da linguagem usada. Nesse caso, estamos trabalhando com a HTML5, versão na qual a declaração do DOCTYPE é bastante simples, como podemos ver na listagem;</p>\r\n<p style=\"text-align: justify;\"><strong>Linhas 2</strong> e <strong>10</strong>: abertura e fechamento da tag <span class=\"lf-badge\">html</span>, que delimita o documento. Sendo assim, todas as demais tags da página devem estar nesse espaço;</p>\r\n<p style=\"text-align: justify;\"><strong>Linhas 3</strong> e <strong>6</strong>: abertura e fechamento da tag <span class=\"lf-badge\">head</span>, que define o cabeçalho do documento. O conteúdo nesse espaço não é visível no browser, mas contém instruções sobre seu conteúdo e comportamento. Dentro dessa tag, por exemplo, podem ser inseridas folhas de estilo e scripts;</p>\r\n<p style=\"text-align: justify;\"><strong>Linha 4</strong>: a tag <span class=\"lf-badge\">meta</span>, nesse caso, especifica qual conjunto de caracteres (character set ou charset) será usado para renderizar o texto da página. O UTF-8 contém todos os caracteres dos padrões Unicode e ASCII, sendo, portanto, o mais utilizado em páginas web. A mesma tag <span class=\"lf-badge\">meta</span>, porém com outros atributos, pode ser utilizada para outros fins, como na SEO (Search Engine Optimization);</p>\r\n<p style=\"text-align: justify;\"><strong>Linha 5</strong>: a tag <span class=\"lf-badge\">title</span> define o título da página, aquele que aparece na janela/aba do navegador;</p>\r\n<p style=\"text-align: justify;\"><strong>Linhas 7</strong> e <strong>9</strong>: abertura e fechamento da tag <span class=\"lf-badge\">body</span>, marcando o espaço no qual deve estar contido o conteúdo visual da página. As demais tags que representam texto, botões etc. devem ser adicionadas nesse intervalo;</p>\r\n<p style=\"text-align: justify;\"><strong>Linha 8</strong>: nessa linha podemos observar a sintaxe para adição de comentários em HTML. Esse trecho não é renderizado pelo browser.</p>\r\n<p style=\"text-align: justify;\">Para <strong>desenvolver páginas com HTML</strong> basicamente precisamos de um editor de texto, como o Bloco de Notas do Windows, Nano e Emacs no Linux, entre vários outros. Há, ainda, editores com opções avançadas, como recursos de syntax hilghligt e autocomplete, como Sublime Text, Atom, Brackets e Visual Studio Code, que podem ser usados para <strong>editar documentos HTML</strong>.</p>\r\n<p style=\"text-align: justify;\">Independentemente do editor utilizado, podemos simplesmente copiar o código da <strong>Listagem 1</strong> para um deles e salvar o arquivo com extensão <span class=\"code-tag\">.html</span>. Em seguida, podemos abrir esse arquivo em um browser.</p>\r\n<p> </p>\r\n<p> </p>\r\n<hr />\r\n<h3 id=\"tags\">Tags do HTML</h3>\r\n<p>Um documento HTML é composto por tags, as quais possuem um nome e aparecem entre os sinais <span class=\"lf-badge\"><</span> e <span class=\"lf-badge\">></span>, como vimos na <strong>Listagem 1</strong>, por exemplo, em <span class=\"lf-badge\"><html></span> e <span class=\"lf-badge\"><head></span>. Naquele exemplo também vimos que algumas tags precisam ser abertas e fechadas, como em <span class=\"lf-badge\"><body></span> <span class=\"lf-badge\"></body></span>. Nesse caso, a tag de fechamento deve conter a barra <span class=\"lf-badge\">/</span> antes do nome. Outras, porém, não precisam ser fechadas, como a tag <span class=\"lf-badge\"><meta></span>. Nesses casos, a adição da barra <span class=\"lf-badge\">/</span> no final da própria tag, como vemos na <strong>Linha 4</strong> da <strong>Listagem 1</strong> é opcional.</p>\r\n<p> </p>\r\n<hr />\r\n<p>Outro aspecto importante da linguagem é que ela é case insensitive, ou seja, não leva em consideração a diferença entre letras maiúsculas e minúsculas. No entanto, o uso apenas de letras minúsculas tem sido utilizado como padrão pelos desenvolvedores.</p>\r\n<p>Além dessas características, as tags também possuem atributos, como vemos na <strong>Linha 4</strong> da <strong>Listagem 1</strong>, na qual a tag meta possui o atributo <span class=\"lf-badge\">charset=”UTF-8”</span>. Essas propriedades definem algumas características adicionais de cada tag e em alguns casos são obrigatórias. Seus valores devem aparecer entre aspas duplas, como no exemplo acima, ou em aspas simples, caso o próprio valor contenha aspas duplas.</p>\r\n<h3 id=\"cabecalhos\">Cabeçalhos do HTML</h3>\r\n<p>Cabeçalhos são normalmente utilizados para identificar páginas e seções e possuem aparência diferenciada do restante do texto. No HTML há seis níveis de cabeçalhos/títulos que podem ser utilizados por meio das tags <span class=\"lf-badge\">h1</span>, <span class=\"lf-badge\">h2</span>, <span class=\"lf-badge\">h3</span>, <span class=\"lf-badge\">h4</span>, <span class=\"lf-badge\">h5</span> e <span class=\"lf-badge\">h6</span>, sendo <span class=\"lf-badge\">h1</span> o maior/mais relevante e <span class=\"lf-badge\">h6</span> o menor/menos relevante.</p>\r\n<div class=\"lf-nota\">De acordo com as regras de SEO, é recomendado que uma página possua apenas uma tag <span class=\"lf-badge\"><h1></span> que indique seu assunto, pois essa tag informa aos motores de busca qual sua principal palavra-chave.</div>\r\n<p>Na <strong>Listagem 2</strong> podemos ver como utilizar essas tags, e na <strong>Figura 1</strong> temos o resultado desse código. Para testar esse código, basta copiá-lo para o espaço indicado na <strong>Linha 8</strong> da <strong>Listagem 1</strong> e salvar o documento com a extensão .html.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_271674\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">h1</code><code class=\"xml plain\">>Título de nível 1</</code><code class=\"xml keyword\">h1</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">h2</code><code class=\"xml plain\">>Título de nível 2</</code><code class=\"xml keyword\">h2</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">h3</code><code class=\"xml plain\">>Título de nível 3</</code><code class=\"xml keyword\">h3</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">h4</code><code class=\"xml plain\">>Título de nível 4</</code><code class=\"xml keyword\">h4</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">h5</code><code class=\"xml plain\">>Título de nível 5</</code><code class=\"xml keyword\">h5</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">h6</code><code class=\"xml plain\">>Título de nível 6</</code><code class=\"xml keyword\">h6</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 2</strong>. Diferentes níveis de cabeçalho</div>\r\n<p align=\"center\"><a class=\"btn-run\" title=\"Show me the code\" href=\"https://jsfiddle.net/a67mo21L/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Execute o código</a></p>\r\n</div>\r\n<figure class=\"lazy-img\"><img class=\"loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Joel_Rodrigues/HTMLBasico/compactado/htmlbasico1.png\" alt=\"Diferentes níveis de cabeçalho\" />\r\n<figcaption><strong>Figura 1</strong>. Diferentes níveis de cabeçalho</figcaption>\r\n</figure>\r\n<h3 id=\"paragrafos\">Parágrafos no HTML</h3>\r\n<p>Parágrafos de texto são gerados na HTML por meio das tags <span class=\"lf-badge\"><p></span> <span class=\"lf-badge\"></p></span>. Esse é um exemplo de tag cuja disposição na tela se dá em forma de bloco, ou seja, um parágrafo é posto sempre abaixo do outro.</p>\r\n<p>O código da <strong>Listagem 3</strong> adiciona três parágrafos, que podem ser visualizados na <strong>Figura 2</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_730074\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">p</code><code class=\"xml plain\">>Primeiro parágrafo do texto.</</code><code class=\"xml keyword\">p</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">p</code><code class=\"xml plain\">>Segundo parágrafo do texto.</</code><code class=\"xml keyword\">p</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">p</code><code class=\"xml plain\">>Terceiro parágrafo do texto.</</code><code class=\"xml keyword\">p</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 3</strong>. Adicionando parágrafos</div>\r\n<p align=\"center\"><a class=\"btn-run\" title=\"Show me the code\" href=\"https://jsfiddle.net/gdugd0ce/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Execute o código</a></p>\r\n</div>\r\n<figure class=\"lazy-img\"><img class=\"loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Joel_Rodrigues/HTMLBasico/compactado/htmlbasico2.png\" alt=\"Parágrafos visualizados na página\" />\r\n<figcaption><strong>Figura 2</strong>. Parágrafos visualizados na página</figcaption>\r\n</figure>\r\n<h3 id=\"imagens\">Imagens no HTML</h3>\r\n<p>A inserção de imagens em uma <strong>página HTML</strong> pode ser feita por meio da tag <span class=\"lf-badge\">img</span>, que recebe no atributo <span class=\"lf-badge\">src</span> o endereço do arquivo a ser carregado. Além desse, outros dois atributos importantes são o <span class=\"lf-badge\">alt</span>, que indica um texto alternativo que será exibido caso o arquivo não possa ser carregado, e <span class=\"lf-badge\">title</span>, que indica o texto que aparecerá como tooltip ao passar o mouse sobre a figura.</p>\r\n<p>O código da <strong>Listagem 4</strong> insere uma imagem a partir do arquivo <span class=\"lf-badge\">perfil.png</span>, localizado na mesma pasta do arquivo HTML, e uma tag <span class=\"lf-badge\">img</span> apontando para um arquivo inexistente. Observe na <strong>Figura 3</strong> que enquanto a primeira aparece corretamente, a segunda é exibida com um ícone de erro o texto alternativo que informamos. Note, ainda, que sobre a primeira figura está sendo exibido o tooltip definido no atributo <span class=\"lf-badge\">title</span>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_593096\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">img</code> <code class=\"xml color1\">src</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"avatar.png\"</code> <code class=\"xml color1\">alt</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"Texto alternativo\"</code> <code class=\"xml color1\">title</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"Avatar\"</code> <code class=\"xml plain\">/></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">img</code> <code class=\"xml color1\">src</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"arquivo_inexistente.jpg\"</code> <code class=\"xml color1\">alt</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"Texto alternativo\"</code> <code class=\"xml color1\">title</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"Outra figura\"</code><code class=\"xml plain\">/></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 4</strong>. Inserindo imagem</div>\r\n<p align=\"center\"><a class=\"btn-run\" title=\"Show me the code\" href=\"https://jsfiddle.net/qem4rfcv/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Execute o código</a></p>\r\n</div>\r\n<figure class=\"lazy-img\"><img class=\"loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Joel_Rodrigues/HTMLBasico/compactado/htmlbasico3.png\" alt=\"Exemplos de uso da tag img\" />\r\n<figcaption><strong>Figura 3</strong>. Exemplos de uso da tag img</figcaption>\r\n</figure>\r\n<h3 id=\"links\">Links no HTML</h3>\r\n<p>Links são normalmente utilizados para direcionar o usuário para outras páginas, ou para outras partes da mesma página. Nos dois casos, utilizamos a tag <span class=\"lf-badge\">a</span>, que possui o atributo <span class=\"lf-badge\">href</span> no qual indicamos o destino daquele link.</p>\r\n<p>A <strong>Listagem 5</strong> mostra como adicionar um link para outra página, neste caso, indicada pelo arquivo pagina2.html.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_583796\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">a</code> <code class=\"xml color1\">href</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"pagina2.html\"</code><code class=\"xml plain\">>Página 2</</code><code class=\"xml keyword\">a</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 5</strong>. Inserindo link</div>\r\n</div>\r\n<p>Já a <strong>Listagem 6</strong> mostra como adicionar um link para um elemento na mesma página. Nesse caso, ao clicar no link o browser mudará o foco para o elemento que possui o atributo <span class=\"lf-badge\">id</span> igual àquele indicado no <span class=\"lf-badge\">href</span>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_811392\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">a</code> <code class=\"xml color1\">href</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"#paragrafo3\"</code><code class=\"xml plain\">>Ir para o parágrafo 3</</code><code class=\"xml keyword\">a</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml comments\"><!--outros elementos--></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">p</code> <code class=\"xml color1\">id</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"rodape\"</code><code class=\"xml plain\">>Parágrafo no rodapé.</p</code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 6</strong>. Inserindo link com id</div>\r\n</div>\r\n<p>Note também que nesse caso o <span class=\"lf-badge\">href</span> requer ainda o sinal de cerquilha (<span class=\"lf-badge\">#</span>) antes do <span class=\"lf-badge\">id</span> do elemento que será o foco do link.</p>\r\n<h3 id=\"tabelas\">Tabelas no HTML</h3>\r\n<p>Tabelas são elementos utilizados com frequência para exibir dados de forma organizada em linhas e colunas. No HTML, elas são formadas por três tags básicas: <span class=\"lf-badge\">table</span>, para delimitar a tabela; <span class=\"lf-badge\">tr</span>, para indicar as linhas; e <span class=\"lf-badge\">td</span> para formar as colunas. A <strong>Listagem 7</strong> mostra um exemplo simples de tabela com três linhas e duas colunas, e seu resultado pode ser visto na <strong>Figura 4</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_399284\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n<div class=\"line number10 index9 alt1\">10</div>\r\n<div class=\"line number11 index10 alt2\">11</div>\r\n<div class=\"line number12 index11 alt1\">12</div>\r\n<div class=\"line number13 index12 alt2\">13</div>\r\n<div class=\"line number14 index13 alt1\">14</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">table</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>Linha 1, Coluna 1</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>Linha 1, Coluna 2</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>Linha 2, Coluna 1</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>Linha 2, Coluna 2</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number10 index9 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number11 index10 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>Linha 3, Coluna 1</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number12 index11 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>Linha 3, Coluna 2</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number13 index12 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number14 index13 alt1\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">table</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 7</strong>. Exemplo de uso de tabelas</div>\r\n<p align=\"center\"><a class=\"btn-run\" title=\"Show me the code\" href=\"https://jsfiddle.net/r52ud9nf/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Execute o código</a></p>\r\n</div>\r\n<figure class=\"lazy-img\"><img class=\"loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Joel_Rodrigues/HTMLBasico/compactado/htmlbasico4.png\" alt=\"Exemplo de tabela com três linhas e duas colunas\" />\r\n<figcaption><strong>Figura 4</strong>. Exemplo de tabela com três linhas e duas colunas</figcaption>\r\n</figure>\r\n<p>Existem ainda outras três tags utilizadas para delimitar, de forma mais organizada, as partes da tabela: <span class=\"lf-badge\">thead</span> para o cabeçalho; <span class=\"lf-badge\">tbody</span> para o corpo; e <span class=\"lf-badge\">tfoot</span> para o rodapé. A <strong>Listagem 8</strong> traz um exemplo de tabela mais complexa, utilizando todas as tags. Seu resultado é apresentado na <strong>Figura 5</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_472955\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n<div class=\"line number9 index8 alt2\">9</div>\r\n<div class=\"line number10 index9 alt1\">10</div>\r\n<div class=\"line number11 index10 alt2\">11</div>\r\n<div class=\"line number12 index11 alt1\">12</div>\r\n<div class=\"line number13 index12 alt2\">13</div>\r\n<div class=\"line number14 index13 alt1\">14</div>\r\n<div class=\"line number15 index14 alt2\">15</div>\r\n<div class=\"line number16 index15 alt1\">16</div>\r\n<div class=\"line number17 index16 alt2\">17</div>\r\n<div class=\"line number18 index17 alt1\">18</div>\r\n<div class=\"line number19 index18 alt2\">19</div>\r\n<div class=\"line number20 index19 alt1\">20</div>\r\n<div class=\"line number21 index20 alt2\">21</div>\r\n<div class=\"line number22 index21 alt1\">22</div>\r\n<div class=\"line number23 index22 alt2\">23</div>\r\n<div class=\"line number24 index23 alt1\">24</div>\r\n<div class=\"line number25 index24 alt2\">25</div>\r\n<div class=\"line number26 index25 alt1\">26</div>\r\n<div class=\"line number27 index26 alt2\">27</div>\r\n<div class=\"line number28 index27 alt1\">28</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">table</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">thead</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">th</code><code class=\"xml plain\">>Produto</</code><code class=\"xml keyword\">th</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">th</code><code class=\"xml plain\">>Preço</</code><code class=\"xml keyword\">th</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">th</code><code class=\"xml plain\">>Quantidade</</code><code class=\"xml keyword\">th</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">thead</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number9 index8 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">tbody</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number10 index9 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number11 index10 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>Feijão</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number12 index11 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>R$ 8,75</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number13 index12 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>1</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number14 index13 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number15 index14 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number16 index15 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>Arroz</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number17 index16 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>R$ 4,99</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number18 index17 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>2</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number19 index18 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number20 index19 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">tbody</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number21 index20 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">tfoot</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number22 index21 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number23 index22 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>Total</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number24 index23 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number25 index24 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">>R$ 18,73</</code><code class=\"xml keyword\">td</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number26 index25 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">tr</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number27 index26 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"></</code><code class=\"xml keyword\">tfoot</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number28 index27 alt1\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">table</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 8</strong>. Tabela com cabeçalho e rodapé</div>\r\n<p align=\"center\"><a class=\"btn-run\" title=\"Show me the code\" href=\"https://jsfiddle.net/2dyrLpL9/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Execute o código</a></p>\r\n</div>\r\n<figure class=\"lazy-img\"><img class=\"loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Joel_Rodrigues/HTMLBasico/compactado/htmlbasico5.png\" alt=\"Tabela com cabeçalho e rodapé\" />\r\n<figcaption><strong>Figura 5</strong>. Tabela com cabeçalho e rodapé</figcaption>\r\n</figure>\r\n<div class=\"lf-nota\">Por padrão, as tabelas não possuem bordas. Isso deve ser adicionado por meio das CSS.</div>\r\n<h3 id=\"listas\">Listas no HTML</h3>\r\n<p>Listas são elementos úteis para organizar e ordenar itens que estão relacionados de alguma forma. No HTML é possível criar três tipos de listas: ordenadas (com a tag <span class=\"lf-badge\">ol</span>), não ordenadas (com a tag <span class=\"lf-badge\">ul</span>), e de definição (por meio da tag <span class=\"lf-badge\">dl</span>).</p>\r\n<p>Na <strong>Listagem 9</strong> temos um exemplo de lista ordenada, enquanto a <strong>Listagem 10</strong> traz um exemplo de lista não ordenada. Em seguida, a <strong>Figura 6</strong> mostra o resultado dos dois códigos. Observe que cada item das primeiras listas é definido pela tag <span class=\"lf-badge\">li</span>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_738488\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">ol</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">>Item 1</</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">>Item 2</</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">>Item 3</</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">ol</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 9</strong>. Lista ordenada</div>\r\n<p align=\"center\"><a class=\"btn-run\" title=\"Show me the code\" href=\"https://jsfiddle.net/vs41kusf/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Execute o código</a></p>\r\n</div>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_339429\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">ul</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">>Item 1</</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">>Item 2</</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">>Item 3</</code><code class=\"xml keyword\">li</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">ul</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 10</strong>. Lista não ordenada</div>\r\n<p align=\"center\"><a class=\"btn-run\" title=\"Show me the code\" href=\"https://jsfiddle.net/oa4pftkh/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Execute o código</a></p>\r\n</div>\r\n<figure class=\"lazy-img\"><img class=\"loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Joel_Rodrigues/HTMLBasico/compactado/htmlbasico6.png\" alt=\"Listas ordenada e não ordenada\" />\r\n<figcaption><strong>Figura 6</strong>. Listas ordenada e não ordenada</figcaption>\r\n</figure>\r\n<p>As listas de definição têm um comportamento um pouco diferente, uma vez que cada item é composto por um título (<span class=\"lf-badge\">dt</span>) e uma definição (<span class=\"lf-badge\">dd</span>), semelhante ao que ocorre em dicionários, nos quais temos os verbetes e suas definições. Na <strong>Listagem 11</strong> temos um exemplo desse tipo de lista, com seu resultado ilustrado na <strong>Figura 7</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_943128\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n<div class=\"line number8 index7 alt1\">8</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">dl</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">dt</code><code class=\"xml plain\">>Título 1</</code><code class=\"xml keyword\">dt</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">dd</code><code class=\"xml plain\">>Definição 1</</code><code class=\"xml keyword\">dd</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">dt</code><code class=\"xml plain\">>Título 2</</code><code class=\"xml keyword\">dt</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">dd</code><code class=\"xml plain\">>Definição 2</</code><code class=\"xml keyword\">dd</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">dt</code><code class=\"xml plain\">>Título 3</</code><code class=\"xml keyword\">dt</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">dd</code><code class=\"xml plain\">>Definição 3</</code><code class=\"xml keyword\">dd</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number8 index7 alt1\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">dl</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 11</strong>. Exemplo de lista de definição</div>\r\n<p align=\"center\"><a class=\"btn-run\" title=\"Show me the code\" href=\"https://jsfiddle.net/Lv7vy6kk/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Execute o código</a></p>\r\n</div>\r\n<h3 id=\"formularios\">Formulários no HTML</h3>\r\n<p>Formulários são normalmente utilizados para integrar a página HTML a algum processamento no lado servidor. Nesses casos, a página envia dados para uma aplicação (Java, PHP, .NET etc.), que os recebe, trata e retorna algum resultado.</p>\r\n<p>No HTML, geralmente usamos a tag <span class=\"lf-badge\">form</span> para delimitar a área na qual se encontram os campos a serem preenchidos pelo usuário, a fim de serem enviados para processamento no back-end (enquanto a página HTML é chamada de front-end da aplicação).</p>\r\n<p>A <strong>Listagem 12</strong> mostra um exemplo de formulário com vários tipos de campos para entrada de dados e um botão para submetê-los ao servidor. Na <strong>Figura 8</strong> vemos seu resultado.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_914573\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n<div class=\"line number5 index4 alt2\">5</div>\r\n<div class=\"line number6 index5 alt1\">6</div>\r\n<div class=\"line number7 index6 alt2\">7</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">form</code> <code class=\"xml color1\">action</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"salvar_dados.php\"</code> <code class=\"xml color1\">method</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"post\"</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">input</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"text\"</code> <code class=\"xml color1\">placeholder</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"Digite aqui\"</code><code class=\"xml plain\">> <</code><code class=\"xml keyword\">br</code><code class=\"xml plain\">/></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">input</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"checkbox\"</code><code class=\"xml plain\">>Checkbox <</code><code class=\"xml keyword\">br</code><code class=\"xml plain\">/></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">input</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"radio\"</code><code class=\"xml plain\">>Radio button <</code><code class=\"xml keyword\">br</code><code class=\"xml plain\">/></code></div>\r\n<div class=\"line number5 index4 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">input</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"range\"</code><code class=\"xml plain\">> <</code><code class=\"xml keyword\">br</code><code class=\"xml plain\">/></code></div>\r\n<div class=\"line number6 index5 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">input</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"submit\"</code> <code class=\"xml color1\">value</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"Enviar\"</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number7 index6 alt2\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">form</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 12</strong>. Formulário com campos</div>\r\n<p align=\"center\"><a class=\"btn-run\" title=\"Show me the code\" href=\"https://jsfiddle.net/s9jtkoL4/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Execute o código</a></p>\r\n</div>\r\n<figure class=\"lazy-img\"><img class=\"loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Joel_Rodrigues/HTMLBasico/compactado/htmlbasico8.png\" alt=\"HTML básico - códigos HTML\" />\r\n<figcaption><strong>Figura 8</strong>. Formulário para envio de dados</figcaption>\r\n</figure>\r\n<h3 id=\"audio\">Áudio no HTML</h3>\r\n<p>Com HTML também é possível inserir áudio e vídeo nas páginas com facilidade. Para áudio, podemos utilizar a tag <span class=\"lf-badge\">audio</span>, da mesma forma que apresentada na <strong>Listagem 14</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_674383\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">audio</code> <code class=\"xml plain\">controls </code><code class=\"xml color1\">src</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"musica.mp3\"</code> <code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\">Seu browser não suporta áudio.</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">audio</code><code class=\"xml plain\">> </code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 14</strong>. Inserindo áudio</div>\r\n</div>\r\n<p>Na tag audio, o atributo <span class=\"lf-badge\">src</span> aponta para o arquivo de áudio que será executado (MP3, OGG ou WAV). Já o atributo <span class=\"lf-badge\">controls</span> indica que devem ser exibidos os controles de gerenciamento do áudio (botões play, pause etc.). Além dele, outros também merecem destaque: <span class=\"lf-badge\">autoplay</span>, para fazer com que o áudio seja executado assim que for carregado; <span class=\"lf-badge\">loop</span>, para que o áudio seja executado repetidas vezes.</p>\r\n<div class=\"lf-nota\">Caso o browser não ofereça suporte a essa tag, o texto contido eu seu interior será exibido.</div>\r\n<p>Também podemos informar mais de um arquivo de áudio (opções alternativas de formato, por exemplo). Nesse caso, precisamos utilizar a tag <span class=\"lf-badge\">source</span>, como no exemplo da <strong>Listagem 15</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_181690\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">audio</code> <code class=\"xml plain\">controls </code><code class=\"xml color1\">src</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"musica.mp3\"</code> <code class=\"xml plain\">></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">source</code> <code class=\"xml color1\">src</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"musica.ogg\"</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"audio/ogg\"</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">source</code> <code class=\"xml color1\">src</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"musica.mp3\"</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"audio/mpeg\"</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">audio</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 15</strong>. Inserindo áudio com a tag source</div>\r\n</div>\r\n<p>Dessa vez, os arquivos serão buscados na ordem em que aparecem na lista. Caso um não seja localizado ou não possa ser carregado, o browser buscará imediatamente o próximo.</p>\r\n<p>A <strong>Figura 10</strong> ilustra o resultado desses códigos, com o controle de áudio exibido no browser. Note também que no topo da janela (na aba do navegador) é exibido um ícone informando ao usuário que essa página está executando um áudio.</p>\r\n<figure class=\"lazy-img\"><img class=\"loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Joel_Rodrigues/HTMLBasico/compactado/htmlbasico10.png\" alt=\"HTML básico - códigos HTML\" /><br />\r\n<figcaption><strong>Figura 10</strong>. Áudio em execução na página</figcaption>\r\n</figure>\r\n<hr />\r\n<p>Saiba mais sobre <a title=\"video em HTML5\" href=\"https://www.devmedia.com.br/html-video-como-adicionar-e-reproduzir-videos-em-html-utilizando-dom/28790\" target=\"_blank\" rel=\"noopener\">como adicionar áudio e vídeo com HTML5</a></p>\r\n<hr />\r\n<h3 id=\"video\">Vídeo no HTML</h3>\r\n<p>Semelhante ao áudio, também podemos inserir vídeos nas páginas HTML utilizando a tag <span class=\"lf-badge\">video</span>, adicionada na HTML5, como na <strong>Listagem 16</strong>.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_139377\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">video</code> <code class=\"xml color1\">src</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"video.mp4\"</code> <code class=\"xml color1\">width</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"640\"</code> <code class=\"xml color1\">height</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"480\"</code> <code class=\"xml plain\">controls></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\">Seu browser não suporta vídeo HTML5.</code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">video</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 16</strong>. Inserindo vídeo</div>\r\n</div>\r\n<p>Dessa vez, além dos atributos já vistos no áudio, também precisamos informar a largura (<span class=\"lf-badge\">width</span>) e a altura (<span class=\"lf-badge\">height</span>) do vídeo, a fim de mantê-lo adequado ao layout.</p>\r\n<p>O código da <strong>Listagem 17</strong> pode ser utilizado quando desejarmos informar mais de um arquivo de vídeo como opções de carregamento, da mesma forma que vimos na tag <span class=\"lf-badge\">audio</span>. Nesse caso, os formatos suportados são MP4, WebM e Ogg.</p>\r\n<div class=\"code-area\">\r\n<div class=\"pre_xml code-sample\">\r\n<div><code class=\"code-sample\"></code>\r\n<div>\r\n<div id=\"highlighter_870960\" class=\"syntaxhighlighter xml\">\r\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n<tbody>\r\n<tr>\r\n<td class=\"gutter\">\r\n<div class=\"line number1 index0 alt2\">1</div>\r\n<div class=\"line number2 index1 alt1\">2</div>\r\n<div class=\"line number3 index2 alt2\">3</div>\r\n<div class=\"line number4 index3 alt1\">4</div>\r\n</td>\r\n<td class=\"code\">\r\n<div class=\"container\">\r\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\"><</code><code class=\"xml keyword\">video</code> <code class=\"xml color1\">width</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"640\"</code> <code class=\"xml color1\">height</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"480\"</code> <code class=\"xml plain\">controls></code></div>\r\n<div class=\"line number2 index1 alt1\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">source</code> <code class=\"xml color1\">src</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"video.webm\"</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"video/webm\"</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number3 index2 alt2\"><code class=\"xml spaces\"> </code><code class=\"xml plain\"><</code><code class=\"xml keyword\">source</code> <code class=\"xml color1\">src</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"video.mp4\"</code> <code class=\"xml color1\">type</code><code class=\"xml plain\">=</code><code class=\"xml string\">\"video/mp4\"</code><code class=\"xml plain\">></code></div>\r\n<div class=\"line number4 index3 alt1\"><code class=\"xml plain\"></</code><code class=\"xml keyword\">video</code><code class=\"xml plain\">></code></div>\r\n</div>\r\n</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"code-caption\"><strong>Listagem 17</strong>. Inserindo vídeo</div>\r\n</div>\r\n<p>O resultado agora pode ser visto na <strong>Figura 11</strong>.</p>\r\n<figure class=\"lazy-img\"><img class=\"loaded\" src=\"https://arquivo.devmedia.com.br/artigos/Joel_Rodrigues/HTMLBasico/compactado/htmlbasico11.png\" alt=\"Vídeo em execução na página\" />\r\n<figcaption><strong>Figura 11</strong>. Vídeo em execução na página</figcaption>\r\n</figure>\r\n<p> </p>\r\n<hr />','2020-02-25 14:44:26','2020-02-25 14:44:26',8),(9,'Flutter: porque você deveria apostar nesta tecnologia','Flutter:-porque-voce-deveria-apostar-nesta-tecnologia','<p>Primeiro começarei contando o motivo de ter escolhido aprender e especializar em desenvolvimento híbrido com Flutter invés de virar especialista React Native e o motivo é bem simples: <strong>Fluidez</strong></p>\r\n<p> </p>\r\n<h2 id=\"react-native\">React Native</h2>\r\n<p>Para quem já desenvolveu aplicativos nativos sabe a dificuldade de manter o código atualizado caso o aplicativo tiver obrigatoriedade de funcionar nas duas plataformas <em>Android</em> e <em>iOS</em>. Enxergando essa deficiência a equipe do <em>Facebook</em> criou o <strong>React Native</strong> e disponibilizou-o como framework open source no ano de 2015 para o público.</p>\r\n<p> </p>\r\n<h3 id=\"o-que-é-esse-tal-de-react-native\">O que é esse tal de React Native?</h3>\r\n<p>React Native é um framework de desenvolvimento híbrido utilizando Javascript como base para criar aplicativos nativos utilizando apenas um código fonte padrão. Diferente do <strong>ionic</strong> que também servia para criar aplicativos híbridos, o React Native não funciona sobre uma WebView, ele possui uma <em>engine</em> (bridge) que ao emular o aplicativo no aparelho essa bridge faz um mapeamento dos componentes criados usando javascript com os componentes nativos do SO, aumentando assim o desempenho do aplicativo.</p>\r\n<p> </p>\r\n<h3 id=\"problemas-ao-utilizar-react-native\">Problemas ao utilizar React Native</h3>\r\n<p>Embora React Native seja uma das melhores soluções para construir aplicativos híbridos, ele ainda não possui a mesma fluidez de um aplicativo construído utilizando apenas recursos nativo, e mesmo que ainda haja muitas empresas utilizando-o em seus aplicativos a sociedade não é mais a mesma do ano de lançamento (2015), as pessoas estão cada vez mais impacientes e qualquer gargalo durante o uso é motivo para desinstalar o aplicativo.</p>\r\n<hr />\r\n<p style=\"text-align: center;\"><img style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://cdn-images-1.medium.com/max/800/1*k_aQA6TG9rrqu8gz0drG9g.png\" alt=\"\" width=\"733\" height=\"253\" /><span class=\"figcaption_hack\">Analisando os gráficos acima referentes a pesquisas realizadas durante o ano de <sup>2018</sup>⁄<sub>2019</sub> percebe-se a crescente busca por flutter</span></p>\r\n<h3 id=\"flutter-uma-nova-solução\">Flutter: uma nova solução</h3>\r\n<p><img style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://cdn-images-1.medium.com/max/600/1*42zsz13tv08yERlHsZCdOw.gif\" alt=\"\" /><span class=\"figcaption_hack\">Demonstração aplicativo em <a href=\"https://flutter.dev/\">Flutter</a></span></p>\r\n<p> </p>\r\n<p>Com a mesma proposta do React Native de criar aplicativos híbridos utilizando apenas uma base de código surgiu o Flutter, desenvolvido e atualizado pela equipe da Google.</p>\r\n<p> </p>\r\n<h2 id=\"o-que-é-flutter\">O que é Flutter?</h2>\r\n<p>Como dito anteriormente, o Flutter é um framework para desenvolvimento híbrido de aplicativos utilizando a linguagem <a href=\"https://www.dartlang.org/\">Dart</a> como base de criação dos aplicativos.</p>\r\n<p> </p>\r\n<h2 id=\"porque-usar-flutter\">Porque usar Flutter?</h2>\r\n<p>Diferente do React Native que possui um intermediário (bridge) entre a UI e o dispositivo, o Flutter fica na camada do UI e não chama os componentes nativos do SO, ele é <strong>desenhado diretamente</strong> em um canvas que aumenta a performance e fluidez a nível de um aplicativo desenvolvido exclusivamente nativo. Além do ganho com performance o Flutter é uma tecnologia recente de fácil aprendizado e já possui algumas features sendo desenvolvidas, dentre elas:</p>\r\n<ul>\r\n<li>Flutter para Web</li>\r\n<li>Flutter para Desktop</li>\r\n<li> </li>\r\n</ul>\r\n<p>Ou seja, você irá construir um aplicativo que poderá ser reaproveitado para suas web applications e também desktop. Esse é um sonho para muitos desenvolvedores, ter apenas uma base de código para toda a camada de apresentação.</p>\r\n<p>Além dos benefícios de performance nativa, o Flutter possui muita flexibilidade para a criação de UI personalizadas, animações e facilidade em acessar os recursos do aparelho (geolocalização, galeria, etc…).</p>\r\n<p> </p>\r\n<h2 id=\"como-funciona-o-flutter\">Como funciona o flutter?</h2>\r\n<p>Se você está habituado com o termo “componente” vai se identificar rápido. O Flutter possui os “widgets” que seria a mesma coisa de um componente. Um widget é uma árvore que pode conter um ou mais filhos(widgets), e esses filhos são renderizados conforme a construção desta árvore. Muito parecido com o DOM do html.</p>\r\n<p><img style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://cdn-images-1.medium.com/max/800/1*j49HIY0az28VWMDrmUu9eg.png\" alt=\"\" width=\"609\" height=\"431\" /></p>\r\n<p>Abaixo um exemplo de widget na prática</p>\r\n<div id=\"gist95576224\" class=\"gist\">\r\n<div class=\"gist-file\">\r\n<div class=\"gist-data\">\r\n<div class=\"js-gist-file-update-container js-task-list-container file-box\">\r\n<div id=\"file-widget-dart\" class=\"file\">\r\n<div class=\"Box-body p-0 blob-wrapper data type-dart \">\r\n<table class=\"highlight tab-size js-file-line-container\" style=\"margin-left: auto; margin-right: auto;\" data-tab-size=\"8\">\r\n<tbody>\r\n<tr>\r\n<td id=\"file-widget-dart-L1\" class=\"blob-num js-line-number\" data-line-number=\"1\"> </td>\r\n<td id=\"file-widget-dart-LC1\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-c1\">Widget</span> <span class=\"pl-en\">build</span>(<span class=\"pl-c1\">BuildContext</span> context) {</td>\r\n</tr>\r\n<tr>\r\n<td id=\"file-widget-dart-L2\" class=\"blob-num js-line-number\" data-line-number=\"2\"> </td>\r\n<td id=\"file-widget-dart-LC2\" class=\"blob-code blob-code-inner js-file-line\"><span class=\"pl-k\">return</span> <span class=\"pl-c1\">Container</span>(</td>\r\n</tr>\r\n<tr>\r\n<td id=\"file-widget-dart-L3\" class=\"blob-num js-line-number\" data-line-number=\"3\"> </td>\r\n<td id=\"file-widget-dart-LC3\" class=\"blob-code blob-code-inner js-file-line\">color<span class=\"pl-k\">:</span> <span class=\"pl-c1\">Colors</span>.amber,</td>\r\n</tr>\r\n<tr>\r\n<td id=\"file-widget-dart-L4\" class=\"blob-num js-line-number\" data-line-number=\"4\"> </td>\r\n<td id=\"file-widget-dart-LC4\" class=\"blob-code blob-code-inner js-file-line\">child<span class=\"pl-k\">:</span> <span class=\"pl-c1\">Center</span>(</td>\r\n</tr>\r\n<tr>\r\n<td id=\"file-widget-dart-L5\" class=\"blob-num js-line-number\" data-line-number=\"5\"> </td>\r\n<td id=\"file-widget-dart-LC5\" class=\"blob-code blob-code-inner js-file-line\">child<span class=\"pl-k\">:</span> <span class=\"pl-c1\">Text</span>(<span class=\"pl-s\">\'Exemplo de widget com flutter\'</span>, style<span class=\"pl-k\">:</span> <span class=\"pl-c1\">TextStyle</span>(color<span class=\"pl-k\">:</span> <span class=\"pl-c1\">Colors</span>.black))</td>\r\n</tr>\r\n<tr>\r\n<td id=\"file-widget-dart-L6\" class=\"blob-num js-line-number\" data-line-number=\"6\"> </td>\r\n<td id=\"file-widget-dart-LC6\" class=\"blob-code blob-code-inner js-file-line\">),</td>\r\n</tr>\r\n<tr>\r\n<td id=\"file-widget-dart-L7\" class=\"blob-num js-line-number\" data-line-number=\"7\"> </td>\r\n<td id=\"file-widget-dart-LC7\" class=\"blob-code blob-code-inner js-file-line\">);</td>\r\n</tr>\r\n<tr>\r\n<td id=\"file-widget-dart-L8\" class=\"blob-num js-line-number\" data-line-number=\"8\"> </td>\r\n<td id=\"file-widget-dart-LC8\" class=\"blob-code blob-code-inner js-file-line\">}</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n<div class=\"gist-meta\" style=\"text-align: center;\"><a href=\"https://gist.github.com/fabianosanttana/dade0549cbcbfaf1b5ce0351f9f5cb4d/raw/a6b109ead8b432f89d56c31c09af43947767df99/widget.dart\">view raw</a><a href=\"https://gist.github.com/fabianosanttana/dade0549cbcbfaf1b5ce0351f9f5cb4d#file-widget-dart\">widget.dart</a> hosted with ❤ by <a href=\"https://github.com/\">GitHub</a></div>\r\n<div class=\"gist-meta\"> </div>\r\n</div>\r\n</div>\r\n<p>Observe acima, temos <strong>Container</strong> que possui uma propriedade <strong>child</strong> que pode receber outro widget, no exemplo utilizei <strong>Center</strong> que por sua vez possui suas propriedades e também tem uma propriedade **child <strong>que pode receber outro widget</strong>.**</p>\r\n<p> </p>\r\n<h2 id=\"fuchsia-o-novo-os-do-google\">Fuchsia: O novo OS do google</h2>\r\n<p><img style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"https://cdn-images-1.medium.com/max/800/1*2af3pcH8Ue-uTLkJoEElAw.jpeg\" alt=\"\" width=\"487\" height=\"221\" /></p>\r\n<p>Se você é um profissional que quer estar na frente, vai uma dica para você. O Google está lançando um novo sistema para mobile, ainda não se sabe se esse sistema substituirá Android, se o React Native dará suporte porém o que se sabe é que <strong>Flutter</strong> será usado para criar aplicativos para esse novo sistema.</p>\r\n<p> </p>\r\n<h2 id=\"conclusão\">Conclusão</h2>\r\n<p>Mesmo sendo uma tecnologia recente e sem mercado, aprender Flutter é uma aposta que pode dar muito certo. Algumas grandes empresas (Alibaba, Groupon, Google, etc…) notaram isso e estão migrando para Flutter.</p>\r\n<p>Quando comecei a aprender eu achei realmente muito divertido a construção de aplicativos usando Dart. Outra coisa, conhecimento nunca é demais, se você já desenvolve em React Native como eu, aprender mais uma tecnologia não irá te diminuir como profissional.</p>','2020-02-25 14:50:03','2020-02-25 14:50:03',10);
/*!40000 ALTER TABLE `articles` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2020-02-28 12:46:23