You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A built-in `<template>`element serves as a storage for HTML markup templates. The browser ignores its contents, only checks for syntax validity, but we can access and use it in JavaScript, to create other elements.
4
+
O elemento nativo `<template>`atua como um armazenamento para modelos de marcação HTML. O navegador ignora seu conteúdo, apenas verifica a validade da sintaxe, mas podemos acessá-lo e usá-lo em JavaScript para criar outros elementos.
5
5
6
-
In theory, we could create any invisible element somewhere in HTML for HTML markup storage purposes. What's special about`<template>`?
6
+
Em teoria, poderíamos criar qualquer elemento invisível em algum lugar do HTML para fins de armazenamento de marcação HTML. O que há de especial no`<template>`?
7
7
8
-
First, its content can be any valid HTML, even if it normally requires a proper enclosing tag.
8
+
Primeiro, seu conteúdo pode ser qualquer HTML válido, mesmo que normalmente exija uma tag de fechamento apropriada.
9
9
10
-
For example, we can put there a table row`<tr>`:
10
+
Por exemplo, podemos colocar lá uma linha de tabela`<tr>`:
11
11
```html
12
12
<template>
13
13
<tr>
14
-
<td>Contents</td>
14
+
<td>Conteúdo</td>
15
15
</tr>
16
16
</template>
17
17
```
18
18
19
-
Usually, if we try to put `<tr>`inside, say, a `<div>`, the browser detects the invalid DOM structure and "fixes" it, adds`<table>` around. That's not what we want. On the other hand, `<template>`keeps exactly what we place there.
19
+
Geralmente, se tentarmos colocar `<tr>`dentro, digamos, de um `<div>`, o navegador detecta a estrutura DOM inválida e a "corrige", adicionando`<table>`ao redor. Isso não é o que queremos. Por outro lado, `<template>`mantém exatamente o que colocamos lá.
20
20
21
-
We can put styles and scripts into `<template>` as well:
21
+
Também podemos incluir estilos e scripts dentro do `<template>`:
22
22
23
23
```html
24
24
<template>
@@ -31,48 +31,48 @@ We can put styles and scripts into `<template>` as well:
31
31
</template>
32
32
```
33
33
34
-
The browser considers `<template>`content "out of the document": styles are not applied, scripts are not executed, `<video autoplay>`is not run, etc.
34
+
O navegador considera o conteúdo dentro de `<template>`"fora do documento": estilos não são aplicados, scripts não são executados, `<video autoplay>`não é iniciado, etc.
35
35
36
-
The content becomes live (styles apply, scripts run etc) when we insert it into the document.
36
+
O conteúdo se torna ativo (estilos são aplicados, scripts são executados, etc.) quando o inserimos no documento.
37
37
38
-
## Inserting template
38
+
## Inserindo um modelo
39
39
40
-
The template content is available in its `content`property as a [DocumentFragment](info:modifying-document#document-fragment) -- a special type of DOM node.
40
+
O conteúdo do modelo está disponível em sua propriedade `content`como um [DocumentFragment](info:modifying-document#document-fragment) -- um tipo especial de nó DOM.
41
41
42
-
We can treat it as any other DOM node, except one special property: when we insert it somewhere, its children are inserted instead.
42
+
Podemos tratá-lo como qualquer outro nó DOM, exceto por uma propriedade especial: quando o inserimos em algum lugar, seus filhos são inseridos no lugar dele.
43
43
44
-
For example:
44
+
Por exemplo:
45
45
46
46
```html run
47
47
<templateid="tmpl">
48
48
<script>
49
49
alert("Hello");
50
50
</script>
51
-
<divclass="message">Hello, world!</div>
51
+
<divclass="message">Olá, mundo!</div>
52
52
</template>
53
53
54
54
<script>
55
55
let elem =document.createElement('div');
56
56
57
57
*!*
58
-
//Clone the template content to reuse it multiple times
58
+
//Clona o conteúdo do modelo para reutilizá-lo várias vezes
59
59
elem.append(tmpl.content.cloneNode(true));
60
60
*/!*
61
61
62
62
document.body.append(elem);
63
-
//Now the script from <template> runs
63
+
//Agora, o script dentro de <template> é executado.
64
64
</script>
65
65
```
66
66
67
-
Let's rewrite a Shadow DOM example from the previous chapter using`<template>`:
67
+
Vamos reescrever um exemplo de Shadow DOM do capítulo anterior usando`<template>`:
68
68
69
69
```html run untrusted autorun="no-epub" height=60
70
70
<templateid="tmpl">
71
71
<style>p { font-weight: bold; } </style>
72
72
<pid="message"></p>
73
73
</template>
74
74
75
-
<divid="elem">Click me</div>
75
+
<divid="elem">Clique em mim</div>
76
76
77
77
<script>
78
78
elem.onclick=function() {
@@ -82,14 +82,14 @@ Let's rewrite a Shadow DOM example from the previous chapter using `<template>`:
elem.shadowRoot.getElementById('message').innerHTML="Hello from the shadows!";
85
+
elem.shadowRoot.getElementById('message').innerHTML="Olá das sombras!";
86
86
};
87
87
</script>
88
88
```
89
89
90
-
In the line `(*)`when we clone and insert `tmpl.content`, as its`DocumentFragment`, its children (`<style>`, `<p>`) are inserted instead.
90
+
Na linha `(*)`ao clonar e inserir `tmpl.content`, como um`DocumentFragment`, seus filhos (`<style>`, `<p>`) são inseridos no lugar.
91
91
92
-
They form the shadow DOM:
92
+
Eles formam o DOM sombra:
93
93
94
94
```html
95
95
<divid="elem">
@@ -99,18 +99,18 @@ They form the shadow DOM:
99
99
</div>
100
100
```
101
101
102
-
## Summary
102
+
## Resumo
103
103
104
-
To summarize:
104
+
Para resumir:
105
105
106
-
-`<template>`content can be any syntactically correct HTML.
107
-
-`<template>`content is considered "out of the document", so it doesn't affect anything.
108
-
-We can access `template.content`from JavaScript, clone it to reuse in a new component.
106
+
-O conteúdo de `<template>`pode ser qualquer HTML sintaticamente correto.
107
+
-O conteúdo de `<template>`é considerado "fora do documento", portanto, não afeta nada.
108
+
-Podemos acessar `template.content`via JavaScript, cloná-lo para reutilizar em um novo componente.
109
109
110
-
The `<template>`tag is quite unique, because:
110
+
A tag `<template>`é única, pois:
111
111
112
-
-The browser checks HTML syntax inside it (as opposed to using a template string inside a script).
113
-
- ...But still allows use of any top-level HTML tags, even those that don't make sense without proper wrappers (e.g.`<tr>`).
114
-
-The content becomes interactive: scripts run, `<video autoplay>`plays etc, when inserted into the document.
112
+
-O navegador verifica a sintaxe HTML dentro dela (ao contrário de usar uma string de modelo dentro de um script).
113
+
- ...Mas ainda permite o uso de quaisquer tags HTML de nível superior, mesmo aquelas que não fazem sentido sem envoltórios apropriados (por exemplo,`<tr>`).
114
+
-O conteúdo se torna interativo: scripts são executados, `<video autoplay>`é reproduzido etc., quando inserido no documento.
115
115
116
-
The `<template>`element does not feature any iteration mechanisms, data binding or variable substitutions, but we can implement those on top of it.
116
+
O elemento `<template>`não apresenta mecanismos de iteração, vinculação de dados ou substituição de variáveis, mas podemos implementar esses recursos em cima dele.
0 commit comments