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
Copy file name to clipboardExpand all lines: 8-web-components/4-template-element/article.md
+29-28Lines changed: 29 additions & 28 deletions
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,14 @@
1
1
2
-
# Template element
2
+
# L'élément Template
3
3
4
-
A built-in`<template>`element serves as a storage for HTML markup templates. The browser ignores it contents, only checks for syntax validity, but we can access and use it in JavaScript, to create other elements.
4
+
L'élément intégré`<template>`sert de stockage pour les modèles de balisage HTML. Le navigateur ignore son contenu et vérifie uniquement la validité de la syntaxe, mais nous pouvons y accéder et l'utiliser dans JavaScript, pour créer d'autres éléments.
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
+
En théorie, nous pourrions créer n'importe quel élément invisible quelque part dans le code HTML à des fins de stockage de balises HTML. Quelle est la particularité de `<template>`?
7
7
8
-
First, its content can be any valid HTML, even if it normally requires a proper enclosing tag.
8
+
Tout d'abord, son contenu peut être n'importe quel HTML valide, même s'il nécessite normalement une balise d'entourage appropriée.
9
+
10
+
Par exemple, nous pouvons y placer une ligne de tableau `<tr>` :
9
11
10
-
For example, we can put there a table row `<tr>`:
11
12
```html
12
13
<template>
13
14
<tr>
@@ -16,9 +17,9 @@ For example, we can put there a table row `<tr>`:
16
17
</template>
17
18
```
18
19
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.
20
+
Habituellement, si nous essayons de mettre`<tr>`à l'intérieur, disons, d'un`<div>`, le navigateur détecte la structure DOM invalide et la "corrige", en ajoutant `<table>`autour. Ce n'est pas ce que nous voulons. D'un autre côté, `<template>`conserve exactement ce que nous y plaçons.
20
21
21
-
We can put styles and scripts into`<template>`as well:
22
+
Nous pouvons également placer des styles et des scripts dans`<template>` :
22
23
23
24
```html
24
25
<template>
@@ -31,17 +32,17 @@ We can put styles and scripts into `<template>` as well:
31
32
</template>
32
33
```
33
34
34
-
The browser considers `<template>`content "out of the document": styles are not applied, scripts are not executed, `<video autoplay>`is not run, etc.
35
+
Le navigateur considère que le contenu `<template>`est "hors du document" : les styles ne sont pas appliqués, les scripts ne sont pas exécutés, `<video autoplay>`n'est pas lancée, etc.
35
36
36
-
The content becomes live (styles apply, scripts run etc) when we insert it into the document.
37
+
Le contenu devient actif (les styles s'appliquent, les scripts s'exécutent, etc.) lorsque nous l'insérons dans le document.
37
38
38
-
## Inserting template
39
+
## Insertion d'un modèle
39
40
40
-
The template content is available in its `content`property as a [DocumentFragment](info:modifying-document#document-fragment) -- a special type of DOM node.
41
+
Le contenu du modèle est disponible dans sa propriété `content`comme un [DocumentFragment](info:modifying-document#document-fragment) -- un type spécial de noeud DOM.
41
42
42
-
We can treat it as any other DOM node, except one special property: when we insert it somewhere, its children are inserted instead.
43
+
Nous pouvons le traiter comme n'importe quel autre noeud DOM, à l'exception d'une propriété spéciale : lorsque nous l'insérons quelque part, ses enfants sont insérés à la place.
43
44
44
-
For example:
45
+
Par exemple :
45
46
46
47
```html run
47
48
<templateid="tmpl">
@@ -55,16 +56,16 @@ For example:
55
56
let elem =document.createElement('div');
56
57
57
58
*!*
58
-
//Clone the template content to reuse it multiple times
59
+
//Cloner le contenu du modèle pour le réutiliser plusieurs fois
59
60
elem.append(tmpl.content.cloneNode(true));
60
61
*/!*
61
62
62
63
document.body.append(elem);
63
-
//Now the script from <template> runs
64
+
//Maintenant le script de <template> s'exécute
64
65
</script>
65
66
```
66
67
67
-
Let's rewrite a Shadow DOM example from the previous chapter using `<template>`:
68
+
Réécrivons un exemple de Shadow DOM du chapitre précédent en utilisant `<template>`:
68
69
69
70
```html run untrusted autorun="no-epub" height=60
70
71
<templateid="tmpl">
@@ -87,9 +88,9 @@ Let's rewrite a Shadow DOM example from the previous chapter using `<template>`:
87
88
</script>
88
89
```
89
90
90
-
In the line`(*)` when we clone and insert`tmpl.content`, as its`DocumentFragment`, its children (`<style>`, `<p>`) are inserted instead.
91
+
Dans la ligne`(*)`, lorsque nous clonons et insérons`tmpl.content`, comme son`DocumentFragment`, ses enfants (`<style>`, `<p>`) sont insérés à la place.
91
92
92
-
They form the shadow DOM:
93
+
Ils forment le shadow DOM:
93
94
94
95
```html
95
96
<divid="elem">
@@ -99,18 +100,18 @@ They form the shadow DOM:
99
100
</div>
100
101
```
101
102
102
-
## Summary
103
+
## Résumé
103
104
104
-
To summarize:
105
+
Pour résumer :
105
106
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.
107
+
-Le contenu de `<template>`peut être n'importe quel HTML syntaxiquement correct.
108
+
-Le contenu de `<template>`est considéré comme "hors du document", donc il n'affecte rien.
109
+
-Nous pouvons accéder à `template.content`depuis JavaScript, le cloner pour le réutiliser dans un nouveau composant.
109
110
110
-
The `<template>`tag is quite unique, because:
111
+
La balise `<template>`est assez unique, car :
111
112
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.
113
+
-Le navigateur vérifie la syntaxe HTML à l'intérieur de celle-ci (par opposition à l'utilisation d'une chaîne de modèle à l'intérieur d'un script).
114
+
- ...Mais il permet toujours l'utilisation de n'importe quelle balise HTML de niveau supérieur, même celles qui n'ont pas de sens sans les wrappers appropriées (par exemple,`<tr>`).
115
+
-Le contenu devient interactif : les scripts s'exécutent, la vidéo se joue en autoplay, etc.
115
116
116
-
The`<template>`element does not feature any iteration mechanisms, data binding or variable substitutions, but we can implement those on top of it.
117
+
L'élément`<template>`ne comporte aucun mécanisme d'itération, de liaison de données ou de substitution de variables, mais nous pouvons les mettre en œuvre par-dessus.
0 commit comments