`](/fr/docs/Web/HTML/Element/div) selon leur contenu. Cet exemple permet de trier le contenu à plusieurs reprises, d'alterner entre un ordre croissant ou décroissant. Le code JavaScript charge le fichier XSL pour le premier tri puis marque la variable `xslloaded` avec `true` lorsque le chargement du fichier est terminé. Grâce à la méthode [`XSLTProcessor.getParameter()`](/fr/docs/Web/API/XSLTProcessor/getParameter), on peut savoir si on souhaite un tri croissant ou décroissant. La valeur par défaut correspond à un tri croissant. L'ordre du tri peut être fixé à l'aide de la méthode [`XSLTProcessor.setParameter()`](/fr/docs/Web/API/XSLTProcessor/setParameter).
+
+Le fichier XSLT contient un paramètre `myOrder` que le code JavaScript fixe pour changer la méthode de tri. L'attribut `order` de l'élément `xsl:sort` peut accéder à la valeur du paramètre avec `$myOrder`. Toutefois, il faut que la valeur soit une expression XPath et pas une chaîne de caractères, c'est pour cela qu'on écrit `{$myOrder}`. Les accolades (`{}`) permettent d'évaluer le contenu dans une expression XPath.
+
+Une fois la transformation terminée, on ajoute le résultat au document.
+
+#### XHTML
+
+```html
+
+```
+
+#### JavaScript
+
+```js
+let xslRef;
+let xslloaded = false;
+const xsltProcessor = new XSLTProcessor();
+let myDOM;
+
+let xmlRef = document.implementation.createDocument("", "", null);
+
+function sort() {
+ if (!xslloaded) {
+ const p = new XMLHttpRequest();
+ p.open("GET", "example2.xsl", false);
+ p.send(null);
+
+ xslRef = p.responseXML;
+ xsltProcessor.importStylesheet(xslRef);
+ xslloaded = true;
+ }
+
+ // On crée un nouveau document XML en mémoire
+ xmlRef = document.implementation.createDocument("", "", null);
+
+ // On veut transférer une partie du DOM du document HTML à un document
+ // XML. importNode() est utilisée pour cloner les nœuds à traiter avec
+ // XSLT. Le deuxième argument à true permet d'avoir un clone profond
+ const myNode = document.getElementById("example");
+ const clonedNode = xmlRef.importNode(myNode, true);
+
+ // Après le clonage, on ajoute le contenu à la suite
+ xmlRef.appendChild(clonedNode);
+
+ // On définit le paramètre de tri dans le fichier XSL
+ const sortVal = xsltProcessor.getParameter(null, "myOrder");
+
+ if (sortVal === "" || sortVal === "descending") {
+ xsltProcessor.setParameter(null, "myOrder", "ascending");
+ } else {
+ xsltProcessor.setParameter(null, "myOrder", "descending");
+ }
+
+ // On lance la transformation
+ const fragment = xsltProcessor.transformToFragment(xmlRef, document);
+
+ // On réinitialise le contenu
+ document.getElementById("example").textContent = "";
+
+ myDOM = fragment;
+
+ // On ajoute le nouveau contenu transformé
+ document.getElementById("example").appendChild(fragment);
+}
+```
+
+#### XSLT
+
+```xml
+
+
+```
## Spécifications
-_Ne fait partie d'aucune spécification._ Il s'agit d'une interface propriétaire qui provient de Gecko.
+{{Specifications}}
## Compatibilité des navigateurs
@@ -60,4 +327,4 @@ _Ne fait partie d'aucune spécification._ Il s'agit d'une interface propriétair
## Voir aussi
-- [Utilisation de l'interface JavaScript de Mozilla pour les transformations XML](/fr/docs/Web/XSLT/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations)
+- [XSLT](/fr/docs/Web/XSLT)
diff --git a/files/fr/web/css/@document/index.md b/files/fr/web/css/@document/index.md
index 52fe22b317f858..fa8e40789645bf 100644
--- a/files/fr/web/css/@document/index.md
+++ b/files/fr/web/css/@document/index.md
@@ -24,7 +24,7 @@ Une règle `@document` peut définir une ou plusieurs fonctions de correspondanc
- `url-prefix()`, qui établit une correspondance si l'URL du document commence par la valeur fournie ;
- `domain()`, qui établit une correspondance si l'URL du document se trouve sur le domaine indiqué (ou l'un de ses sous-domaines) ;
- `media-document()` qui caractérise le type de document : vidéo, image, plugin, tout ;
-- `regexp()`, qui établit une correspondance avec si l'URL du document vérifie une [expression rationnelle](/fr-FR/docs/Web/JavaScript/Guide/Regular_Expressions). L'expression doit correspondre à l'URL entière.
+- `regexp()`, qui établit une correspondance avec si l'URL du document vérifie une [expression rationnelle](/fr/docs/Web/JavaScript/Guide/Regular_Expressions). L'expression doit correspondre à l'URL entière.
Les valeurs fournies aux fonctions `url()`, `url-prefix()`, `media-document()` et `domain()` peuvent être éventuellement délimitées par des apostrophes, simples ou doubles. Les valeurs fournies à la fonction `regexp()` _doivent_ être délimitées par des apostrophes.
diff --git a/files/fr/web/css/_colon_nth-col/index.md b/files/fr/web/css/_colon_nth-col/index.md
deleted file mode 100644
index aeeb14dcb3f1bd..00000000000000
--- a/files/fr/web/css/_colon_nth-col/index.md
+++ /dev/null
@@ -1,78 +0,0 @@
----
-title: ":nth-col"
-slug: Web/CSS/:nth-col
----
-
-{{CSSRef}}{{SeeCompatTable}}
-
-La [pseudo-classe](/fr/docs/Web/CSS/Pseudo-classes) [CSS](/fr/docs/Web/CSS) **`:nth-col()`** est conçue pour les tableaux et les grilles. Elle accepte les notations de type `An+B` telles qu'utilisées avec le sélecteur {{Cssxref(":nth-child")}}, ce qui permet de cibler un jeu de colonnes. Les valeurs _odd_ et _even_ sont aussi valides.
-
-```css
-/* Sélectionne toutes les valeurs impaires du tableau */
-:nth-col(odd) {
- background-color: pink;
-}
-```
-
-## Syntaxe
-
-La pseudo-classe `nth-col` est spécifiée avec un argument unique qui représente le motif utilisé pour faire la correspondance des éléments.
-
-Voir {{Cssxref(":nth-child")}} pour une explication plus détaillée de cette syntaxe.
-
-### Syntaxe formelle
-
-{{csssyntax}}
-
-## Exemples
-
-### Exemple basique
-
-#### HTML
-
-```html
-
-```
-
-#### CSS
-
-```css
-td {
- border: 1px solid #ccc;
- padding: 0.2em;
-}
-
-/* Colonnes impaires */
-:nth-col(2n + 1) {
- background-color: pink;
-}
-```
-
-#### Résultat
-
-{{EmbedLiveSample('Exemples', 250, 200)}}
-
-## Spécifications
-
-{{Specifications}}
-
-## Compatibilité des navigateurs
-
-{{Compat}}
-
-## Voir aussi
-
-- {{Cssxref(":nth-child")}}, {{Cssxref(":nth-last-of-type")}}
diff --git a/files/fr/web/css/_colon_nth-last-col/index.md b/files/fr/web/css/_colon_nth-last-col/index.md
deleted file mode 100644
index e6978c683e7e03..00000000000000
--- a/files/fr/web/css/_colon_nth-last-col/index.md
+++ /dev/null
@@ -1,78 +0,0 @@
----
-title: ":nth-last-col"
-slug: Web/CSS/:nth-last-col
----
-
-{{CSSRef}}{{SeeCompatTable}}
-
-La [pseudo-classe](/fr/docs/Web/CSS/Pseudo-classes) [CSS](/fr/docs/Web/CSS) **`:nth-last-col()`** est conçue pour les tableaux et les grilles. Elle accepte les notations de type `An+B` telles qu'utilisées avec le sélecteur {{Cssxref(":nth-child")}}, ce qui permet de cibler plusieurs colonnes en comptant à partir de la fin du jeu de colonnes. Les valeurs _odd_ et _even_ sont aussi valides.
-
-```css
-/* Sélectionne toutes les valeurs impaires du tableau */
-:nth-last-col(odd) {
- background-color: pink;
-}
-```
-
-## Syntaxe
-
-La pseudo-classe `nth-last-col` est spécifiée avec un argument unique qui représente le motif utilisé pour faire la correspondance des éléments.
-
-Voir {{Cssxref(":nth-child")}} pour une explication plus détaillée de cette syntaxe.
-
-### Syntaxe formelle
-
-{{csssyntax}}
-
-## Exemples
-
-### Exemple basique
-
-#### HTML
-
-```html
-
-```
-
-#### CSS
-
-```css
-td {
- border: 1px solid #ccc;
- padding: 0.2em;
-}
-
-/* Colonnes impaires, en commençant par la colonne finale du tableau */
-:nth-last-col(2n + 1) {
- background-color: pink;
-}
-```
-
-#### Résultat
-
-{{EmbedLiveSample('Exemple_basique', 250, 200)}}
-
-## Spécifications
-
-{{Specifications}}
-
-## Compatibilité des navigateurs
-
-{{Compat}}
-
-## Voir aussi
-
-- {{Cssxref(":nth-child")}}, {{Cssxref(":nth-last-of-type")}}
diff --git a/files/fr/web/css/_colon_nth-last-of-type/index.md b/files/fr/web/css/_colon_nth-last-of-type/index.md
index fbdefab707b6f9..095a9557ec240d 100644
--- a/files/fr/web/css/_colon_nth-last-of-type/index.md
+++ b/files/fr/web/css/_colon_nth-last-of-type/index.md
@@ -1,42 +1,31 @@
---
title: ":nth-last-of-type"
slug: Web/CSS/:nth-last-of-type
+l10n:
+ sourceCommit: f22e72998f4e8f48b18ef358521bfc9ad1ae9446
---
{{CSSRef}}
-La [pseudo-classe](/fr/docs/CSS/Pseudo-classes) **`:nth-last-of-type`** permet de cibler des éléments qui possèdent `an+b-1` nœud frères étant les mêmes éléments à partir de la fin de l'arbre et qui ont le même élément parent (l'indice `n` sera incrémenté à partir de 0). Autrement dit, la pseudo-classe parcourra les éléments d'un type donné en partant de la fin de l'élément parent, selon le motif passé en argument.
+La [pseudo-classe](/fr/docs/Web/CSS/Pseudo-classes) [CSS](/fr/docs/Web/CSS) **`:nth-last-of-type`** permet de cibler les éléments selon leur position parmi les voisins qui sont du même type (les mêmes balises) en partant de la fin.
-```css
-/* Cible les éléments
qui sont les 4e */
-/* 8e, 16e, 20e, à partir du dernier élément */
-/*
d'un élément parent */
-div:nth-last-of-type(4n) {
- background-color: lime;
-}
-```
-
-Pour plus de détails sur les arguments passés à cette pseudo-classe, voir {{cssxref(":nth-child")}}.
+{{EmbedInteractiveExample("pages/tabbed/pseudo-class-nth-last-of-type.html", "tabbed-shorter")}}
## Syntaxe
La pseudo-classe `nth-last-of-type` prend un seul argument qui représente le motif de répétition des éléments correspondants, comptés à partir de la fin.
-### Syntaxe formelle
+Voir [`:nth-last-child`](/fr/docs/Web/CSS/:nth-last-child) pour une explication plus détaillée de sa syntaxe.
-{{csssyntax}}
+```css-nolint
+:nth-last-of-type(
| even | odd) {
+ /* ... */
+}
+```
## Exemples
-Ici, on souhaite mettre en avant le deuxième élément {{HTMLElement("span")}} en partant de la fin :
-
-### CSS
-
-```css
-span:nth-last-of-type(2) {
- background-color: lime;
-}
-```
+Ici, on souhaite mettre en avant le deuxième élément [``](/fr/docs/Web/HTML/Element/span) en partant de la fin :
### HTML
@@ -51,9 +40,17 @@ span:nth-last-of-type(2) {
```
+### CSS
+
+```css
+span:nth-last-of-type(2) {
+ background-color: lime;
+}
+```
+
### Résultat
-{{EmbedLiveSample('Exemples')}}
+{{EmbedLiveSample('')}}
## Spécifications
@@ -65,5 +62,5 @@ span:nth-last-of-type(2) {
## Voir aussi
-- {{cssxref(":last-of-type")}}
-- {{cssxref(":nth-of-type")}}
+- [`:nth-last-child`](/fr/docs/Web/CSS/:nth-last-child)
+- [`:nth-of-type`](/fr/docs/Web/CSS/:nth-of-type)
diff --git a/files/fr/web/css/_colon_nth-of-type/index.md b/files/fr/web/css/_colon_nth-of-type/index.md
index 76ae25bb7760b0..8f0f377e631678 100644
--- a/files/fr/web/css/_colon_nth-of-type/index.md
+++ b/files/fr/web/css/_colon_nth-of-type/index.md
@@ -1,45 +1,43 @@
---
title: ":nth-of-type"
slug: Web/CSS/:nth-of-type
+l10n:
+ sourceCommit: f22e72998f4e8f48b18ef358521bfc9ad1ae9446
---
{{CSSRef}}
-La [pseudo-classe](/fr/docs/Web/CSS/Pseudo-classes) **`:nth-of-type()`** correspond à des éléments d'un type donné, en fonction de leur position au sein d'un groupe de frères et sœurs.
+La [pseudo-classe](/fr/docs/Web/CSS/Pseudo-classes) [CSS](/fr/docs/Web/CSS) **`:nth-of-type()`** permet de cibler les éléments selon leur position parmi les voisins du même type (les mêmes noms de balise).
-```css
-/* Sélectionne chaque élément de type
dont
-la position parmi l'ensemble des éléments de type
-descendants directement du même élément parent,
-est un multiple de 4. */
-p:nth-of-type(4n) {
- color: lime;
-}
-```
+{{EmbedInteractiveExample("pages/tabbed/pseudo-class-nth-of-type.html", "tabbed-shorter")}}
## Syntaxe
La pseudo-classe `nth-of-type` ne prend qu'un argument qui représente le motif de répétition pour les éléments ciblés.
-Pour une explication plus détaillée de sa syntaxe voir {{Cssxref(":nth-child")}}
+Voir [`:nth-child`](/fr/docs/Web/CSS/:nth-child) pour une explication plus détaillée de sa syntaxe.
-### Syntaxe formelle
-
-{{csssyntax}}
+```css-nolint
+:nth-of-type( | even | odd) {
+ /* ... */
+}
+```
## Exemples
-Dans cet exemple nous allons colorer un paragrapher sur deux avec des couleurs différentes et mettre le premier paragraphe en gras
+### Exemple simple
+
+Dans cet exemple nous allons colorer un paragraphe sur deux avec des couleurs différentes et mettre le premier paragraphe en gras.
-### HTML
+#### HTML
```html
Cet élément n'est pas compté.
1er paragraphe.
-
2e paragraphe.
+
2e paragraphe.
Cet élément n'est pas compté.
-
3e paragraphe.
+
3e paragraphe.
4e paragraphe.
```
@@ -61,11 +59,17 @@ p:nth-of-type(2n) {
p:nth-of-type(1) {
font-weight: bold;
}
+
+/* Cela ciblera le 3e paragraphe, car on cible les éléments impairs (2n+1) et qui ont la classe fancy.
+Le deuxième paragraphe a bien la classe fancy, mais n'est pas ciblé, car pair (et non :nth-of-type(2n+1)) */
+p.fancy:nth-of-type(2n + 1) {
+ text-decoration: underline;
+}
```
### Résultat
-{{EmbedLiveSample('Exemples','250','200')}}
+{{EmbedLiveSample('','250','250')}}
## Spécifications
@@ -77,5 +81,5 @@ p:nth-of-type(1) {
## Voir aussi
-- {{cssxref(":nth-child")}}
-- {{cssxref(":nth-last-of-type")}}
+- [`:nth-child`](/fr/docs/Web/CSS/:nth-child)
+- [`:nth-last-of-type`](/fr/docs/Web/CSS/:nth-last-of-type)
diff --git a/files/fr/web/css/_doublecolon_after/index.md b/files/fr/web/css/_doublecolon_after/index.md
index 4106f06f5fde30..6f2dbafd553f8a 100644
--- a/files/fr/web/css/_doublecolon_after/index.md
+++ b/files/fr/web/css/_doublecolon_after/index.md
@@ -89,7 +89,7 @@ On peut mettre en forme du texte ou des images avec la propriété {{cssxref("co
### Bulles d'information
-Dans l'exemple suivant, on illustre le [pseudo-élément](/fr-FR/docs/Web/CSS/Pseudo-elements) `::after` avec l'expression CSS {{cssxref("attr()")}} et un attribut de données personnalisé `data-descr` afin de créer une _bulle d'information_ de type glossaire en CSS pur.
+Dans l'exemple suivant, on illustre le [pseudo-élément](/fr/docs/Web/CSS/Pseudo-elements) `::after` avec l'expression CSS {{cssxref("attr()")}} et un attribut de données personnalisé `data-descr` afin de créer une _bulle d'information_ de type glossaire en CSS pur.
On peut également aider les utilisateurs de clavier avec cette technique, en ajoutant un `tabindex` de `0` pour faire un `span` focusable, et en utilisant la sélection `:focus`. Cela montre à quel point les options `::before` and `::after` peuvent être flexibles, bien que, pour l'expérience la plus accessible, un widget de divulgation sémantique créé d'une autre manière serait probablement plus approprié..
diff --git a/files/fr/web/css/background-position/index.md b/files/fr/web/css/background-position/index.md
index 077d699c528cd6..96b29da0138b7d 100644
--- a/files/fr/web/css/background-position/index.md
+++ b/files/fr/web/css/background-position/index.md
@@ -1,11 +1,13 @@
---
title: background-position
slug: Web/CSS/background-position
+l10n:
+ sourceCommit: 70b1b8ac18d3e3346645d4ee5155f654c83d96e0
---
{{CSSRef}}
-La propriété **`background-position`** permet de définir la position initiale, relative à l'origine définie par [`background-origin`](/fr/docs/Web/CSS/background-origin), pour chaque image d'arrière-plan.
+La propriété [CSS](/fr/docs/Web/CSS) **`background-position`** permet de définir la position initiale, relative à l'origine définie par [`background-origin`](/fr/docs/Web/CSS/background-origin), pour chaque image d'arrière-plan.
{{EmbedInteractiveExample("pages/css/background-position.html")}}
@@ -44,6 +46,7 @@ background-position: top right 10px;
background-position: inherit;
background-position: initial;
background-position: revert;
+background-position: revert-layer;
background-position: unset;
```
@@ -53,12 +56,12 @@ La propriété `background-position` peut être définie grâce à une ou plusie
- ``
- - : Une valeur [``](/fr/docs/Web/CSS/position). Une position définit un couple de coordonnées XY qui permet de placer un objet par rapport aux bords de la boîte d'un élément. Une position peut être définie avec une ou deux valeurs. La première correspond à la position horizontale et la seconde à la position verticale.
+ - : Une valeur [``](/fr/docs/Web/CSS/position). Une position définit un couple de coordonnées XY qui permet de placer un objet par rapport aux bords de la boîte d'un élément. Une position peut être définie avec une à quatre valeurs. Si deux valeurs qui ne sont pas des mots-clés sont utilisées, la première représente la position horizontale et la seconde la position verticale. Si une seule valeur est indiquée, la deuxième sera `center` par défaut. Si trois ou quatre valeurs sont utilisées, les valeurs de longueur-pourcentage sont des décalages relatifs au(x) mot(s)-clé(s) précédent(s).
**Définition avec une valeur :** la valeur peut être :
- Le mot-clé `center` qui centre l'image.
- - Un mot-clé parmi `top`, `left`, `bottom`, `right`. Ce mot-clé indique le bord par rapport auquel placer l'élément. Pour l'autre dimension, on utilisera la moitié de la boîte (50%).
+ - Un mot-clé parmi `top`, `left`, `bottom`, `right`. Ce mot-clé indique le bord par rapport auquel placer l'élément. Pour l'autre dimension, on utilisera la moitié de la boîte (50%) et l'élément sera placé au milieu de cet axe.
- Une longueur ([``](/fr/docs/Web/CSS/length)) ou un pourcentage ([``](/fr/docs/Web/CSS/percentage)). Cette valeur définit l'abscisse du point par rapport au bord gauche. L'ordonnée est fixée à 50%.
**Définition avec deux valeurs :** la première valeur définit l'abscisse (la coordonnée horizontale X) et la seconde définit l'ordonnée (la coordonnée verticale Y). Chaque valeur peut être :
@@ -66,7 +69,11 @@ La propriété `background-position` peut être définie grâce à une ou plusie
- Un des mots-clés parmi `top`, `left`, `bottom`, `right`. Si `left` ou `right` est utilisé, la valeur définit l'abscisse et l'autre définira l'ordonnée. Si `top` ou `bottom` est indiqué, cette valeur définira l'ordonnée et l'autre valeur définira X.
- Une valeur de longueur ([``](/fr/docs/Web/CSS/length)) ou un pourcentage ([``](/fr/docs/Web/CSS/percentage)). Si l'autre valeur vaut `left` ou `right`, cette valeur définira l'ordonnée par rapport au bord haut. Si l'autre valeur est `top` ou `bottom`, cette valeur définira l'abscisse relativement au bord gauche. Si les deux valeurs sont des longueurs ou des pourcentages, la première définira l'abscisse et la seconde l'ordonnée.
- > **Note :** Si une valeur est `top` ou `bottom`, la seconde ne peut pas être `top` ou `bottom`. Si une valeur est `left` ou `right`, la seconde ne peut pas être `left` ou `right`. Autrement dit `top top` ou `left right` seront considérées comme invalides.
+ > **Note :** Si une valeur est `top` ou `bottom`, la seconde ne peut pas être `top` ou `bottom`. Si une valeur est `left` ou `right`, la seconde ne peut pas être `left` ou `right`. Autrement dit, les combinaisons `top top`, `bottom bottom`, `top bottom`, `bottom top`, `right right`, `left left`, `left right` et `right left` seront considérées comme invalides.
+
+ - L'ordre des mots-clés n'est pas important, le navigateur pourra les réarranger si besoin. Ainsi, `top left` et `left top` auront le même effet. En revanche, si on associe une longueur ([``](/fr/docs/Web/CSS/length)) ou un pourcentage ([``](/fr/docs/Web/CSS/percentage)) avec un mot-clé, l'ordre est important et la valeur définissant l'abscisse doit arriver avant l'ordonnée : `right 20px` ne sera pas équivalent à `20px right` et cette dernière forme sera invalide. Les valeurs `left 20%` ou `20% bottom` sont valides car les abscisses et ordonnées sont bien rangées.
+
+ - La valeur par défaut est `left top` ou `0% 0%`.
**Définition avec 3 valeurs :** Deux valeurs sont des mots-clés et la troisième est le décalage appliqué à la valeur qui précède.
@@ -85,20 +92,20 @@ Lorsqu'on exprime un décalage en pourcentage, ce dernier est relatif au contene
Autrement dit, lorsqu'on utilise un pourcentage, celui-ci s'inscrit dans la formule suivante :
-```
+```plain
(largeur conteneur - largeur image) * (position en %) = (décalage horizontal)
(hauteur conteneur - hauteur image) * (position en %) = (décalage vertical)
```
En utilisant l'axe horizontal pour un exemple, prenons une image dont la largeur mesure 300px, qu'on utilise celle-ci dans un conteneur dont la largeur mesure 100px et que `background-size` vaut `auto` :
-```
+```plain
100px - 300px = -200px (différence entre le conteneur et l'image)
```
Voici donc les décalages, exprimés en pixels, qu'on obtient avec les pourcentages -25%, 0%, 50%, 100% et 125% :
-```
+```plain
-200px * -25% = 50px
-200px * 0% = 0px
-200px * 50% = -100px
@@ -114,7 +121,7 @@ Traduisons l'effet obtenu avec ces valeurs. Le **bord gauche** de **l'image** es
- \-200px (le bord gauche de l'image est situé à 200px du bord gauche du conteneur, ce qui signifie pour notre exemple que le bord droit de l'image coïncide avec le bord droit du conteneur)
- \-250px (le bord gauche de l'image est situé à 250px du bord gauche du conteneur, ce qui signifie pour notre exemple que le bord droit de l'image de 300px est au centre du conteneur).
-On notera donc que si l'image d'arrière-plan a les mêmes dimensions que le conteneur, les valeurs en pourcentage pour `background-position` n'auront aucun effet. Il faudra utiliser des valeurs absolues pour décaler l'image.
+On notera donc que si l'image d'arrière-plan a les mêmes dimensions que le conteneur, les valeurs en pourcentage pour `background-position` n'auront aucun effet (car la différence entre l'image et le conteneur est alors nulle). Il faudra utiliser des valeurs absolues pour décaler l'image.
## Définition formelle
@@ -154,7 +161,7 @@ div {
background: url("startransparent.gif") #ffee99 2.5cm bottom no-repeat;
}
.exemple_deux {
- background: url("startransparent.gif") #ffee99 3em 50% no-repeat;
+ background: url("startransparent.gif") #ffee99 left 4em bottom 1em no-repeat;
}
/*
@@ -166,7 +173,7 @@ L'ordre est le même entre background-image et -position.
background-image: url("startransparent.gif"), url("catfront.png");
background-position:
0px 0px,
- center;
+ right 3em bottom 2em;
}
```
@@ -184,7 +191,7 @@ L'ordre est le même entre background-image et -position.
## Voir aussi
-- [Gérer plusieurs arrières-plans](/fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds)
+- [Gérer plusieurs arrières-plans](/fr/docs/Web/CSS/CSS_backgrounds_and_borders/Using_multiple_backgrounds)
- [`background-position-x`](/fr/docs/Web/CSS/background-position-x)
- [`background-position-y`](/fr/docs/Web/CSS/background-position-y)
- [`background-position-inline`](/fr/docs/Web/CSS/background-position-inline)
diff --git a/files/fr/web/css/css_backgrounds_and_borders/index.md b/files/fr/web/css/css_backgrounds_and_borders/index.md
index 278e2ee77f6e4b..d7f89f63057ac5 100644
--- a/files/fr/web/css/css_backgrounds_and_borders/index.md
+++ b/files/fr/web/css/css_backgrounds_and_borders/index.md
@@ -1,79 +1,147 @@
---
-title: CSS Backgrounds and Borders
+title: Arrière-plans et bordures CSS (CSS backgrounds and borders)
slug: Web/CSS/CSS_backgrounds_and_borders
+l10n:
+ sourceCommit: 856b52f634b889084869d2ee0b8bb62c084be04d
---
{{CSSRef}}
-**_CSS Backgrounds and Borders_** est un module CSS qui permet de mettre en forme les bordures et arrière-plans des éléments. Les arrière-plans peuvent être dessinés avec une couleur ou une image, rognés, redimensionnés voire modifiés. Les bordures peuvent être décorées avec des lignes, des images, former des angles droits ou des angles courbes. Il est également possible de décorer les boîtes des éléments avec des ombres.
+Le module de spécification **Arrière-plans et bordures CSS** (CSS backgrounds and borders en anglais) fournit des propriétés permettant d'ajouter des bordures, des coins arrondis et des ombres aux éléments.
+
+Vous pouvez ajouter différents types de styles de bordures, y compris des bordures composées d'images de tous types, que ce soit [des images matricielles](https://fr.wikipedia.org/wiki/Image_matricielle) ou des dégradés CSS. Les bordures peuvent être carrées ou arrondies, et un rayon de courbure différent peut être défini pour chaque coin. Les éléments peuvent être arrondis, qu'ils aient ou non une bordure visible.
+
+Les ombres des boîtes comprennent les ombres intérieures et extérieures, les ombres simples ou multiples, et les ombres opaques ou transparentes. Une ombre extérieure projette une ombre comme si la bordure de l'élément était opaque. Une ombre intérieure projette une ombre comme si tout ce qui se trouvait à l'extérieur du bord de remplissage était opaque. L'ombre peut être unie et opaque ou inclure une distance d'étalement avec une transition de la couleur de l'ombre vers la transparence.
+
+Les propriétés de ce module vous permettent également de définir si les cellules à l'intérieur d'un élément [``](/fr/docs/Web/HTML/Element/table) doivent avoir des bordures communes ou séparées.
+
+### Arrière-plans, bordures et ombres de boîtes en action
+
+Cet exemple de bordures, d'arrière-plans et d'ombres en boîte se compose d'images d'arrière-plan centrées composées de dégradés linéaires et radiaux. Une série d'ombres en boîte fait ressortir la bordure. L'élément de gauche a une image de bordure définie. L'élément de droite a une bordure arrondie en pointillés.
+
+{{EmbedGHLiveSample("css-examples/modules/backgrounds.html", '100%', 430)}}
+
+Les images d'arrière-plan sont définies avec la propriété CSS [`background-image`](/fr/docs/Web/CSS/background-image). Les images sont centrées avec la propriété [`background-position`](/fr/docs/Web/CSS/background-position). Différentes valeurs de la propriété [`background-clip`](/fr/docs/Web/CSS/background-clip) pour les images d'arrière-plan multiples sont utilisées pour faire en sorte que les images d'arrière-plan restent à l'intérieur de la boîte de contenu. La couleur d'arrière-plan est découpée dans le cadre de remplissage, ce qui empêche l'arrière-plan d'apparaître à travers les sections transparentes pour les propriétés [`border-image`](/fr/docs/Web/CSS/border-image) et [`border`](/fr/docs/Web/CSS/border). Les coins arrondis de l'élément de droite sont créés à l'aide de la propriété [`border-radius`](/fr/docs/Web/CSS/border-radius). Une seule déclaration [`box-shadow`](/fr/docs/Web/CSS/box-shadow) est utilisée pour définir toutes les ombres, tant à l'intérieur qu'à l'extérieur.
+
+Pour voir le code de cet exemple, [regardez le code source sur GitHub](https://github.com/mdn/css-examples/blob/main/modules/backgrounds.html).
## Référence
### Propriétés CSS
-- {{cssxref("background")}}
-- {{cssxref("background-attachment")}}
-- {{cssxref("background-clip")}}
-- {{cssxref("background-color")}}
-- {{cssxref("background-image")}}
-- {{cssxref("background-origin")}}
-- {{cssxref("background-position")}}
-- {{cssxref("background-position-x")}}
-- {{cssxref("background-position-y")}}
-- {{cssxref("background-repeat")}}
-- {{cssxref("background-size")}}
-- {{cssxref("border")}}
-- {{cssxref("border-bottom")}}
-- {{cssxref("border-bottom-color")}}
-- {{cssxref("border-bottom-left-radius")}}
-- {{cssxref("border-bottom-right-radius")}}
-- {{cssxref("border-bottom-style")}}
-- {{cssxref("border-bottom-width")}}
-- {{cssxref("border-collapse")}}
-- {{cssxref("border-color")}}
-- {{cssxref("border-image")}}
-- {{cssxref("border-image-outset")}}
-- {{cssxref("border-image-repeat")}}
-- {{cssxref("border-image-slice")}}
-- {{cssxref("border-image-source")}}
-- {{cssxref("border-image-width")}}
-- {{cssxref("border-left")}}
-- {{cssxref("border-left-color")}}
-- {{cssxref("border-left-style")}}
-- {{cssxref("border-left-width")}}
-- {{cssxref("border-radius")}}
-- {{cssxref("border-right")}}
-- {{cssxref("border-right-color")}}
-- {{cssxref("border-right-style")}}
-- {{cssxref("border-right-width")}}
-- {{cssxref("border-style")}}
-- {{cssxref("border-top")}}
-- {{cssxref("border-top-color")}}
-- {{cssxref("border-top-left-radius")}}
-- {{cssxref("border-top-right-radius")}}
-- {{cssxref("border-top-style")}}
-- {{cssxref("border-top-width")}}
-- {{cssxref("border-width")}}
-- {{cssxref("box-shadow")}}
+- [`background-attachment`](/fr/docs/Web/CSS/background-attachment)
+- [`background-clip`](/fr/docs/Web/CSS/background-clip)
+- [`background-color`](/fr/docs/Web/CSS/background-color)
+- [`background-image`](/fr/docs/Web/CSS/background-image)
+- [`background-origin`](/fr/docs/Web/CSS/background-origin)
+- [`background-position`](/fr/docs/Web/CSS/background-position)
+- [`background-repeat`](/fr/docs/Web/CSS/background-repeat)
+- [`background-size`](/fr/docs/Web/CSS/background-size)
+- La propriété raccourcie [`background`](/fr/docs/Web/CSS/background)
+- [`background-position-x`](/fr/docs/Web/CSS/background-position-x) {{experimental_inline}}
+- [`background-position-y`](/fr/docs/Web/CSS/background-position-y) {{experimental_inline}}
+- [`background-position-inline`](/fr/docs/Web/CSS/background-position-inline) {{experimental_inline}}
+- [`background-position-block`](/fr/docs/Web/CSS/background-position-block) {{experimental_inline}}
+
+- [`border-bottom-color`](/fr/docs/Web/CSS/border-bottom-color)
+- [`border-bottom-style`](/fr/docs/Web/CSS/border-bottom-style)
+- [`border-bottom-width`](/fr/docs/Web/CSS/border-bottom-width)
+- La propriété raccourcie [`border-bottom`](/fr/docs/Web/CSS/border-bottom)
+- [`border-left-color`](/fr/docs/Web/CSS/border-left-color)
+- [`border-left-style`](/fr/docs/Web/CSS/border-left-style)
+- [`border-left-width`](/fr/docs/Web/CSS/border-left-width)
+- La propriété raccourcie [`border-left`](/fr/docs/Web/CSS/border-left)
+- [`border-right-color`](/fr/docs/Web/CSS/border-right-color)
+- [`border-right-style`](/fr/docs/Web/CSS/border-right-style)
+- [`border-right-width`](/fr/docs/Web/CSS/border-right-width)
+- La propriété raccourcie [`border-right`](/fr/docs/Web/CSS/border-right)
+- [`border-top-color`](/fr/docs/Web/CSS/border-top-color)
+- [`border-top-style`](/fr/docs/Web/CSS/border-top-style)
+- [`border-top-width`](/fr/docs/Web/CSS/border-top-width)
+- La propriété raccourcie [`border-top`](/fr/docs/Web/CSS/border-top)
+- La propriété raccourcie [`border-color`](/fr/docs/Web/CSS/border-color)
+- La propriété raccourcie [`border-style`](/fr/docs/Web/CSS/border-style)
+- La propriété raccourcie [`border-width`](/fr/docs/Web/CSS/border-width)
+- La propriété raccourcie [`border`](/fr/docs/Web/CSS/border)
+
+- [`border-collapse`](/fr/docs/Web/CSS/border-collapse)
+
+- [`border-bottom-left-radius`](/fr/docs/Web/CSS/border-bottom-left-radius)
+- [`border-bottom-right-radius`](/fr/docs/Web/CSS/border-bottom-right-radius)
+- [`border-top-left-radius`](/fr/docs/Web/CSS/border-top-left-radius)
+- [`border-top-right-radius`](/fr/docs/Web/CSS/border-top-right-radius)
+- La propriété raccourcie [`border-radius`](/fr/docs/Web/CSS/border-radius)
+
+- [`border-image-outset`](/fr/docs/Web/CSS/border-image-outset)
+- [`border-image-repeat`](/fr/docs/Web/CSS/border-image-repeat)
+- [`border-image-slice`](/fr/docs/Web/CSS/border-image-slice)
+- [`border-image-source`](/fr/docs/Web/CSS/border-image-source)
+- [`border-image-width`](/fr/docs/Web/CSS/border-image-width)
+- La propriété raccourcie [`border-image`](/fr/docs/Web/CSS/border-image)
+
+- [`box-shadow`](/fr/docs/Web/CSS/box-shadow)
+
+### Types de données
+
+- Le type énuméré [`line-type`](/fr/docs/Web/CSS/line-type")
## Guides
-- [Manipuler plusieurs arrière-plans](/fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds)
+- [Apprendre CSS: Arrière-plans et bordures](/fr/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders)
+ - : Dans cet article, on voit comment implémenter des images décoratives à l'aide d'images d'arrière-plan CSS.
+- [Utiliser plusieurs arrière-plans](/fr/docs/Web/CSS/CSS_backgrounds_and_borders/Using_multiple_backgrounds)
- : Dans cet article, on voit comment paramétrer un ou plusieurs arrière-plans pour un élément.
-- [Mettre à l'échelle les images utilisées pour un arrière-plan](/fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Scaling_background_images)
+- [Redimensionner les images d'arrière-plan avec background-size](/fr/docs/Web/CSS/CSS_backgrounds_and_borders/Resizing_background_images)
- : Dans cet article, on voit comment modifier la taille et paramétrer la répétition d'une image d'arrière-plan.
-- [Appliquer des couleurs sur des éléments HTML grâce à CSS](/fr/docs/Web/HTML/Applying_color)
- - : Dans cet article, on voit comment utiliser CSS pour ajouter de la couleur sur des éléments HTML, y compris sur les bordures.
+- [Apprendre CSS: Le modèle de boîte](/fr/docs/Learn/CSS/Building_blocks/The_box_model)
+ - : Dans cet article, on voit comment les bordures, ainsi que d'autres propriétés du modèle de boîte, affectent le modèle de boîte CSS.
+- [Utilisation de dégradés CSS](/fr/docs/Web/CSS/CSS_images/Using_CSS_gradients)
+ - : Dans cet article, on voit comment créer des images d'arrière-plan dégradées CSS.
+
+## Notions associées
+
+### Propriétés
+
+- [`border-block-end-color`](/fr/docs/Web/CSS/border-block-end-color)
+- [`border-block-start-color`](/fr/docs/Web/CSS/border-block-start-color)
+- [`border-inline-end-color`](/fr/docs/Web/CSS/border-inline-end-color)
+- [`border-inline-start-color`](/fr/docs/Web/CSS/border-inline-start-color)
+- [`border-block-end-style`](/fr/docs/Web/CSS/border-block-end-style)
+- [`border-block-start-style`](/fr/docs/Web/CSS/border-block-start-style)
+- [`border-inline-end-style`](/fr/docs/Web/CSS/border-inline-end-style)
+- [`border-inline-start-style`](/fr/docs/Web/CSS/border-inline-start-style)
+- [`border-block-end-width`](/fr/docs/Web/CSS/border-block-end-width)
+- [`border-block-start-width`](/fr/docs/Web/CSS/border-block-start-width)
+- [`border-inline-end-width`](/fr/docs/Web/CSS/border-inline-end-width)
+- [`border-inline-start-width`](/fr/docs/Web/CSS/border-inline-start-width)
-## Outils
+- [`border-start-start-radius`](/fr/docs/Web/CSS/border-start-start-radius)
+- [`border-start-end-radius`](/fr/docs/Web/CSS/border-start-end-radius)
+- [`border-end-start-radius`](/fr/docs/Web/CSS/border-end-start-radius)
+- [`border-end-end-radius`](/fr/docs/Web/CSS/border-end-end-radius)
-- [Générateur pour `border-image`](/fr/docs/Web/CSS/Arrière-plans_et_bordures_CSS/Générateur_border-image)
- - : Un outil interactif pour créer visuellement des images de bordure (cf. la propriété {{cssxref("border-image")}}).
-- [Générateur pour `border-radius`](/fr/docs/Web/CSS/Arrière-plans_et_bordures_CSS/Générateur_border-radius)
- - : Un outil interactif pour créer visuellement des angles arrondies (cf. la propriété {{cssxref("border-radius")}}).
-- [Générateur pour `box-shadow`](/fr/docs/Web/CSS/Modèle_de_boîte_CSS/Générateur_box-shadow)
- - : Un outil interactif pour créer visuellement des ombres derrière les éléments (cf. la propriété {{cssxref("box-shadow")}}).
+- [`box-sizing`](/fr/docs/Web/CSS/box-sizing)
+- [`box-decoration-break`](/fr/docs/Web/CSS/box-decoration-break)
+- [`text-shadow`](/fr/docs/Web/CSS/text-shadow)
+
+### Autres
+
+- La fonction CSS [`url()`](/fr/docs/Web/CSS/url)
+- Le type de donnée [``](/fr/docs/Web/CSS/color)
+- Le type de donnée [``](/fr/docs/Web/CSS/image)
+- Le type de donnée[``](/fr/docs/Web/CSS/position)
+
+- Le mot-clé [`currentcolor`](/fr/docs/Web/CSS/color_value#currentcolor_keyword)
## Spécifications
{{Specifications}}
+
+## Voir aussi
+
+- Des outils interactifs qui vous permettent de créer visuellement des bordures, des coins arrondis et des ombres :
+ - [Générateur pour `border-image`](/fr/docs/Web/CSS/CSS_backgrounds_and_borders/Border-image_generator)
+ - [Générateur pour `border-radius`](/fr/docs/Web/CSS/CSS_backgrounds_and_borders/Border-radius_generator)
+ - [Générateur pour `box-shadow`](/fr/docs/Web/CSS/CSS_backgrounds_and_borders/Box-shadow_generator)
+- [Appliquer des couleurs sur des éléments HTML grâce à CSS](/fr/docs/Web/CSS/CSS_colors/Applying_color), incluant les bordures.
+- Le filtre de fonction [`drop-shadow()`](/fr/docs/Web/CSS/filter-function/drop-shadow) qui applique un effet d'ombre portée à une image en entrée. Cette fonction est utilisée par les propriétés [`filter`](/fr/docs/Web/CSS/filter) et [`backdrop-filter`](/fr/docs/Web/CSS/backdrop-filter).
diff --git a/files/fr/web/css/css_backgrounds_and_borders/resizing_background_images/index.md b/files/fr/web/css/css_backgrounds_and_borders/resizing_background_images/index.md
index bbd12c99587bf1..8e5acec07c50c2 100644
--- a/files/fr/web/css/css_backgrounds_and_borders/resizing_background_images/index.md
+++ b/files/fr/web/css/css_backgrounds_and_borders/resizing_background_images/index.md
@@ -1,119 +1,145 @@
---
-title: Mettre à l'échelle des images en arrière-plan
+title: Redimensionner les images d'arrière-plan avec background-size
slug: Web/CSS/CSS_backgrounds_and_borders/Resizing_background_images
+l10n:
+ sourceCommit: 70b1b8ac18d3e3346645d4ee5155f654c83d96e0
---
{{CSSRef}}
-La propriété CSS {{cssxref("background-size")}} permet d'ajuster la taille des images utilisées en arrière-plan et de remplacer le comportement par défaut qui consiste à créer un carrelage de l'image à sa pleine grandeur. Il est ainsi possible d'agrandir ou de rapetisser l'image.
+La propriété [CSS](/fr/docs/Web/CSS) [`background-size`](/fr/docs/Web/CSS/background-size) permet d'ajuster la taille des images utilisées en arrière-plan et de remplacer le comportement par défaut qui consiste à créer une mosaïque répétant l'image à sa taille normale en indiquant une hauteur et/ou une largeur pour l'image. Il est ainsi possible d'agrandir ou de rapetisser l'image.
-## Carreler une image de grande taille
+## Répéter une grande image
-Prenons une image de grande taille (par exemple l'ancien logo de Firefox en 2485x2340px). On souhaite la carreler en quatre copies de 300x300 px, comme dans l'image suivante.
+Prenons une grande image, ici le logo de Firefox aux dimensions 2982x2808 pixels. Imaginons qu'on veuille (pour de mauvaises raisons), obtenir une mosaïque avec quatre exemplaires de cette image dans un élément de 300x300 pixels. Pour cela, on pourra fixer la propriété `background-size` à 150 pixels.
-![](logo-quantum.9c5e96634f92.png)
+### HTML
-On peut utiliser la feuille de style CSS suivante pour obtenir l'effet voulu :
+```html
+
+```
+
+### CSS
```css
-.square {
- width: 300px;
- height: 300px;
+.tiledBackground {
background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
- border: solid 2px;
- text-shadow: white 0px 0px 2px;
- font-size: 16px;
background-size: 150px;
+ width: 300px;
+ height: 300px;
+ border: 2px solid;
+ color: pink;
}
```
-On notera que, dans l'exemple précédent, une seule valeur avait été précisée pour {{cssxref("background-size")}} : 150 px. Dans ce cas, cette valeur est utilisée pour la largeur et la hauteur est alors fixée à `auto`.
+### Résultat
+
+{{EmbedLiveSample("", 340, 340)}}
## Étirer une image
-Il est aussi possible de spécifier, respectivement, la largeur et la hauteur de l'image, comme dans l'exemple suivant, où la taille de l'image est imposée à 300x150 px.
+On peut aussi indiquer les dimensions horizontale et verticale de l'image, comme ceci :
+
+### CSS
```css
background-size: 300px 150px;
```
-L'image suivante montre le résultat obtenu.
+### Résultat
-![Logo de Firefox étité](s.codepen.io_richienb_debug_lonxgp_pnkvygvggyxa.png)
+![Le logo étiré](stretched_firefox_logo.png)
## Agrandir une image
-On peut agrandir une image en arrière-plan. À l'image suivante, une favicône de 32x32 px est agrandie à 300x300 px.
+À l'inverse, on peut vouloir agrandir une image en arrière-plan. Ici, on passe d'une icône de 32x32 pixels à 300x300 pixels :
-![Logo MDN à l'échelle](favicon57.de33179910ae.1.1.png)
+### CSS
```css
.square2 {
- width: 300px;
- height: 300px;
background-image: url(favicon.png);
background-size: 300px;
- border: solid 2px;
+ width: 300px;
+ height: 300px;
+ border: 2px solid;
text-shadow: white 0px 0px 2px;
font-size: 16px;
}
```
-On remarque que la feuille de style utilisée est identique à la précédente, sauf en ce qui concerne le nom de l'image.
+### Résultat
-## Valeurs spéciales : `contain` et `cover`
+![Logo de MDN agrandi](scaled_mdn_logo.png)
-En plus de {{cssxref("<length>")}}, la propriété CSS {{cssxref("background-size")}} permet d'employer deux autres valeurs : `contain` et `cover`.
+Comme vous pouvez le voir, le CSS est quasi-identique, seul le nom du fichier a été modifié.
-### `contain`
+## Les valeurs spéciales `contain` et `cover`
-La valeur `contain` spécifie les dimensions de l'image d'arrière-plan de manière à ce que sa largeur et sa hauteur soient aussi grandes que possible, tout en conservant l'image à l'intérieur de son élément conteneur. Ainsi, l'image ne peut déborder de son élément conteneur.
+En plus des valeurs de longueur (type [``](/fr/docs/Web/CSS/length)), la propriété [`background-size`](/fr/docs/Web/CSS/background-size) permet d'utiliser valeurs spéciales `contain` et `cover`. Voyons ce qu'ils offrent.
-Essayez de redimensionner la fenêtre de votre navigateur afin de voir la valeur `contain` en action (Votre navigateur doit supporter la mise à l'échelle d'images d'arrière-plan).
+### `contain`
-{{EmbedLiveSample("contain", "100%", "220")}}
+La valeur `contain` indique que, quelle que soit la taille de la boîte englobante, l'image d'arrière-plan devrait être redimensionnée afin que chaque côté soit aussi grand que possible, sans dépasser la taille du conteneur. Redimensionnez l'exemple qui suit pour observer l'effet obtenu.
+
+#### HTML
```html
-
Redimensionnez la fenêtre de votre navigateur.
+
Essayez de redimensionner cet élément !
```
+#### CSS
+
```css
.bgSizeContain {
- height: 200px;
background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
background-size: contain;
- border: 2px solid darkgray;
- color: #000;
- text-shadow: 1px 1px 0 #fff;
+ width: 160px;
+ height: 160px;
+ border: 2px solid;
+ resize: both;
+ overflow: scroll;
}
```
-### `cover`
+#### Résultat
-La valeur `cover` assure que l'image d'arrière-plan soit aussi petite que possible, tout en maintenant ses dimensions plus grandes ou égales à la taille de l'élément conteneur. L'échelle entre la largeur et la hauteur est maintenue.
+{{EmbedLiveSample('', 250, 250)}}
-{{EmbedLiveSample("cover", "100%", "220")}}
+### `cover`
+
+La valeur `cover` indique que l'image d'arrière-plan devrait être aussi petite que possible tout en ayant ses deux dimensions supérieures ou égales à celles du conteneur. Vous pouvez redimensionner l'exemple qui suit pour observer l'effet obtenu.
-Cet exemple utilise le document HTML et la feuille de style suivants :
+#### HTML
```html
-
Redimensionnez la fenêtre de votre navigateur.
+
Essayez de redimensionner cet élément !
```
+#### CSS
+
```css
.bgSizeCover {
- height: 200px;
background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
background-size: cover;
- border: 2px solid darkgray;
- color: #000; text-shadow: 1px 1px 0 #fff;
+ width: 160px;
+ height: 160px;
+ border: 2px solid;
+ resize: both;
+ overflow: scroll;
+}
```
+#### Résultat
+
+{{EmbedLiveSample('', 250, 250)}}
+
## Voir aussi
-- {{cssxref("background-size")}}
-- {{cssxref("background")}}
+- [`background-size`](/fr/docs/Web/CSS/background-size)
+- [`background`](/fr/docs/Web/CSS/background)
+- [Redimensionnement des arrières-plans SVG](/fr/docs/Web/CSS/Scaling_of_SVG_backgrounds)
diff --git a/files/fr/web/css/css_grid_layout/auto-placement_in_grid_layout/index.md b/files/fr/web/css/css_grid_layout/auto-placement_in_grid_layout/index.md
index 100eddbb3fe2fa..2f629ee192cc2a 100644
--- a/files/fr/web/css/css_grid_layout/auto-placement_in_grid_layout/index.md
+++ b/files/fr/web/css/css_grid_layout/auto-placement_in_grid_layout/index.md
@@ -1,16 +1,18 @@
---
title: Le placement automatique sur une grille CSS
slug: Web/CSS/CSS_grid_layout/Auto-placement_in_grid_layout
+l10n:
+ sourceCommit: b906098e63b1eb3512b4381fe7c105b67037aff1
---
{{CSSRef}}
-{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille", "Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS","Web/CSS/CSS_Grid_Layout")}}
-
-En plus de pouvoir placer des objets de façon précise sur une grille, la spécification pour les grilles CSS définit le comportement obtenu lorsque certains des objets ne sont pas placés sur la grille (voire aucun). Pour voir comment fonctionne le placement automatique, il suffit de créer une grille avec un ensemble d'objets. Sans fournir aucune information de placement, ces objets se placeront chacun sur une cellule de la grille.
+En plus de pouvoir placer des objets de façon précise sur une grille, la spécification pour les grilles CSS définit le comportement obtenu lorsque certains (voire aucun) des objets ne sont pas placés sur la grille. Pour voir comment fonctionne le placement automatique, il suffit de créer une grille avec un ensemble d'objets.
## Placement automatique
+Sans fournir aucune information de placement, ces objets se placeront chacun sur une cellule de la grille.
+
```css hidden
* {
box-sizing: border-box;
@@ -49,17 +51,17 @@ En plus de pouvoir placer des objets de façon précise sur une grille, la spéc
```
-{{EmbedLiveSample('Placement_automatique', '500', '230')}}
+{{EmbedLiveSample('', '500', '230')}}
-## Définir des règles pour le placement automatique
+## Les règles par défaut pour le placement automatique
-Comme on peut le voir dans l'exemple précédent, si on crée une grille sans définir de placement, tous les objets occuperont chacun une cellule de la grille. Par défaut, les objets sont placés au fur et à mesure sur les lignes horizontales de la grille. Si on a créé des lignes supplémentaires avec `grid-template-rows`, les objets suivants seront placés sur ces lignes. En revanche, si la grille ne possède pas suffisamment de lignes sur la grille explicite, de nouvelles lignes, implicites, seront créées.
+Comme on peut le voir dans l'exemple précédent, si on crée une grille sans définir de placement, tous les objets se placeront chacun sur une cellule de la grille. Par défaut, les objets sont placés au fur et à mesure sur les lignes horizontales de la grille. Si on a créé des lignes supplémentaires avec `grid-template-rows`, les objets suivants seront placés sur ces lignes. En revanche, si la grille ne possède pas suffisamment de lignes sur la grille explicite, de nouvelles lignes, _implicites_, seront créées.
### Dimensionner les lignes de la grille implicite
Par défaut, les lignes implicites créées automatiquement ont une taille automatique. Autrement dit, elles seront dimensionnées pour contenir les éléments qu'elles doivent placer sans que ceux-ci dépassent.
-Il est toutefois possible de contrôler la taille de ces lignes grâce à la propriété `grid-auto-rows`. Ainsi, si on veut que les lignes créées automatiquement mesurent 100 pixels de haut, on utilisera :
+Il est toutefois possible de contrôler la taille de ces lignes grâce à la propriété `grid-auto-rows`. Ainsi, si on veut que les lignes créées automatiquement mesurent 100 pixels de haut, on utilisera :
```css hidden
* {
@@ -100,11 +102,11 @@ Il est toutefois possible de contrôler la taille de ces lignes grâce à la pro
}
```
-{{EmbedLiveSample('Dimensionner_les_lignes_de_la_grille_implicite', '500', '330')}}
+{{EmbedLiveSample('', '500', '330')}}
-### Dimensionner les lignes avec minmax()
+### Dimensionner les lignes avec `minmax()`
-On peut utiliser la fonction {{cssxref("minmax","minmax()")}} pour la valeur de {{cssxref("grid-auto-rows")}} afin de créer des lignes avec une taille minimale mais qui puissent être plus grandes si le contenu est plus grand que cette taille minimale.
+On peut utiliser la fonction [`minmax()`](/fr/docs/Web/CSS/minmax) pour la valeur de [`grid-auto-rows`](/fr/docs/Web/CSS/grid-auto-rows) afin de créer des lignes avec une taille minimale mais qui puissent être plus grandes si le contenu est plus grand que cette taille minimale.
```css hidden
* {
@@ -148,11 +150,11 @@ On peut utiliser la fonction {{cssxref("minmax","minmax()")}} pour la valeur de
}
```
-{{EmbedLiveSample('Dimensionner_les_lignes_avec_minmax', '500', '330')}}
+{{EmbedLiveSample('', '500', '330')}}
### Dimensionner les lignes avec une liste de pistes
-On peut aussi passer en argument une liste de pistes qui se répèteront. Dans l'exemple ci-après, on crée une piste implicite pour une ligne de 100 pixels et une seconde de `200px`. Ce motif sera utilisé tant que du contenu sera ajouté à la grille implicite.
+On peut aussi passer en argument une liste de pistes qui se répèteront. Dans l'exemple ci-après, on crée une piste implicite pour une ligne de 100 pixels et une seconde de 200 pixels. Ce motif sera utilisé tant que du contenu sera ajouté à la grille implicite.
```css hidden
* {
@@ -196,11 +198,11 @@ On peut aussi passer en argument une liste de pistes qui se répèteront. Dans l
}
```
-{{EmbedLiveSample('Dimensionner_les_lignes_avec_une_liste_de_pistes', '500', '330')}}
+{{EmbedLiveSample('', '500', '480')}}
-### Utiliser le placement automatique pour les colonnes
+### Utiliser le placement automatique avec les colonnes
-On peut également paramétrer la grille pour que les objets soient placés automatiquement en suivant les colonnes de la grille. Pour obtenir ce résultat, on utilisera la propriété {{cssxref("grid-auto-flow")}} avec la valeur `column`. Dans ce cas, la grille ajoutera les objets dans les lignes verticales définies avec {{cssxref("grid-template-rows")}}. Lorsqu'une colonne sera pleine, les prochains objets seront placés dans la colonne explicite suivante ou dans une colonne implicite créée automatiquement s'il n'y a plus assez de colonnes explicites. La taille des pistes pour les colonnes implicites peut être définie avec {{cssxref("grid-auto-columns")}}, cette dernière fonctionne de façon analogue à {{cssxref("grid-auto-rows")}}.
+On peut également paramétrer la grille pour que les objets soient placés automatiquement en suivant les colonnes de la grille. Pour obtenir ce résultat, on utilisera la propriété [`grid-auto-flow`](/fr/docs/Web/CSS/grid-auto-flow) avec la valeur `column`. Dans ce cas, la grille ajoutera les objets dans les lignes verticales définies avec [`grid-template-rows`](/fr/docs/Web/CSS/grid-template-rows). Lorsqu'une colonne sera pleine, les prochains objets seront placés dans la colonne explicite suivante ou dans une colonne implicite créée automatiquement s'il n'y a plus assez de colonnes explicites. La taille des pistes pour les colonnes implicites peut être définie avec [`grid-auto-columns`](/fr/docs/Web/CSS/grid-auto-columns), cette dernière fonctionne de façon analogue à [`grid-auto-rows`](/fr/docs/Web/CSS/grid-auto-rows).
Dans le prochain exemple, on crée une grille avec trois lignes qui mesurent chacune 200 pixels de haut. On utilise le placement automatique en colonne. La première colonne qui sera créée mesurera 300 pixels de large, ensuite on aura une colonne de 100 pixels de large et ainsi de suite jusqu'à ce que tous les éléments puissent être placés.
@@ -247,19 +249,19 @@ Dans le prochain exemple, on crée une grille avec trois lignes qui mesurent cha
```
-{{EmbedLiveSample('Utiliser_le_placement_automatique_pour_les_colonnes', '500', '640')}}
+{{EmbedLiveSample('', '500', '640')}}
## L'ordre des éléments placés automatiquement
-Une grille peut contenir un mélange d'éléments. Certains éléments peuvent avoir une position définie et d'autres être placés automatiquement. Ce placement automatique peut s'avérer utile lorsque l'ordre des éléments dans le document est celui qu'on veut utiliser pour organiser la grille : il n'y a alors pas besoin d'écrire de règles CSS pour positionner les éléments un par un. La spécification détaille exhaustivement [l'algorithme de placement des objets sur la grille](https://drafts.csswg.org/css-grid/#auto-placement-algo), mais voyons ici les quelques règles simples qu'il faut principalement retenir.
+Une grille peut contenir un mélange d'éléments. Certains éléments peuvent avoir une position définie et d'autres être placés automatiquement. Ce placement automatique peut s'avérer utile lorsque l'ordre des éléments dans le document est celui qu'on veut utiliser pour organiser la grille : il n'y a alors pas besoin d'écrire de règles CSS pour positionner les éléments un par un. La spécification détaille exhaustivement [l'algorithme de placement des objets sur la grille](https://drafts.csswg.org/css-grid/#auto-placement-algo), mais voyons ici les quelques règles simples qu'il faut principalement retenir.
### Modification de l'ordre du document
-Le placement des éléments qui n'ont pas eu d'ordre défini sont placés selon l'algorithme décrit dans la section _"order modified document order"_. Cela signifie que si on utilise uniquement la propriété `order`, les éléments seront placés selon cet ordre plutôt que selon l'ordre indiqué par le DOM. Sinon, l'ordre des éléments sera celui décrit par le document source.
+Le placement des éléments qui n'ont pas eu d'ordre défini sont placés selon l'algorithme décrit dans la section _« order modified document order »_. Cela signifie que si on utilise uniquement la propriété `order`, les éléments seront placés selon cet ordre plutôt que selon l'ordre indiqué par le DOM. Sinon, l'ordre des éléments sera celui décrit par le document source.
### Les éléments avec des propriétés de placement
-La grille commencera par placer les éléments pour lesquels on a défini une position. Dans l'exemple qui suit, on a une grille avec 12 éléments, l'élément 2 et l'élément 5 sont placés en utilisant les lignes. On put voir comment ces deux éléments sont placés et comment les autres sont placés automatiquement dans les espaces restants. Les objets placés automatiquement seront placés avant les éléments qui sont placés, dans l'ordre du DOM.
+La grille commencera par placer les éléments pour lesquels on a défini une position. Dans l'exemple qui suit, on a une grille avec 12 éléments, l'élément 2 et l'élément 5 sont placés en utilisant les lignes. On peut voir comment ces deux éléments sont placés et comment les autres sont placés automatiquement dans les espaces restants. Les objets placés automatiquement seront placés avant les éléments qui sont placés, dans l'ordre du DOM, ils ne commencent pas après la position d'un élément placé qui les précède.
```css hidden
* {
@@ -315,13 +317,13 @@ La grille commencera par placer les éléments pour lesquels on a défini une po
}
```
-{{EmbedLiveSample('Les_éléments_avec_des_propriétés_de_placement', '500', '450')}}
+{{EmbedLiveSample('', '500', '450')}}
### Gérer les éléments qui s'étalent sur plusieurs pistes
-On peut utiliser les propriétés de placement tout en tirant parti du placement automatique. Dans le prochain exemple, on complète la disposition en indiquant que les éléments 1, 4 et 9 (4n+1) doivent occuper deux pistes, pour les colonnes et pour les lignes. Pour obtenir ce résultat, on utilise les propriétés {{cssxref("grid-column-end")}} et {{cssxref("grid-row-end")}} avec la valeur `span 2`. La ligne de début sera déterminée automatiquement et la ligne de fin sera deux pistes plus loin.
+On peut utiliser les propriétés de placement tout en tirant parti du placement automatique. Dans le prochain exemple, on complète la disposition en indiquant que les éléments 1, 5 et 9 (4n+1) doivent occuper deux pistes, pour les colonnes et pour les lignes. Pour obtenir ce résultat, on utilise les propriétés [`grid-column-end`](/fr/docs/Web/CSS/grid-column-end) et [`grid-row-end`](/fr/docs/Web/CSS/grid-row-end) avec la valeur `span 2`. La ligne de début sera déterminée automatiquement et la ligne de fin sera deux pistes plus loin.
-On peut voir coment cela laisse des espaces dans la grille car lorsqu'un élément placé automatiquement n'a pas suffisamment de place sur une piste, une nouvelle ligne sera créée jusqu'à ce que l'élément ait la place.
+On peut voir comment cela laisse des espaces dans la grille, car lorsqu'un élément placé automatiquement n'a pas suffisamment de place sur une piste, une nouvelle ligne sera créée jusqu'à ce que l'élément ait la place.
```css hidden
* {
@@ -381,15 +383,15 @@ On peut voir coment cela laisse des espaces dans la grille car lorsqu'un éléme
}
```
-{{EmbedLiveSample('Gérer_les_éléments_qui_sétalent_sur_plusieurs_pistes', '500', '770')}}
+{{EmbedLiveSample('', '500', '770')}}
### Combler les espaces
-En dehors des éléments placés explicitement, la grille place les éléments automatiques en respectant l'ordre du DOM. C'est généralement le résultat qu'on souhaite lorsqu'on met en forme un document comme un formulaire. Toutefois on veut parfois obtenir une disposition plus dense, sans vide entre les différents éléments.
+En dehors des éléments placés explicitement, la grille place les éléments automatiques en respectant l'ordre du DOM. C'est généralement le résultat qu'on souhaite lorsqu'on met en forme un document comme un formulaire (on ne voudrait pas que les libellés et les champs soient mélangés pour combler certains trous). Toutefois, on dispose parfois des éléments pour lesquels l'ordre logique n'a pas d'importance et où on veut obtenir une disposition plus dense, sans vide entre les différents éléments.
-Pour cela, sur le conteneur, on ajoute la propriété {{cssxref("grid-auto-flow")}} avec la valeur `dense`. C'est la même propriété qu'on utilise pour modifier l'ordre du flux avec `column`. On peut aussi obtenir une disposition dense, rangée par colonne en utilisant les deux valeurs pour la propriété : `grid-auto-flow: column dense`.
+Pour cela, sur le conteneur, on ajoute la propriété [`grid-auto-flow`](/fr/docs/Web/CSS/grid-auto-flow) avec la valeur `dense`. C'est la même propriété qu'on utilise pour modifier l'ordre du flux avec `column`. On peut aussi obtenir une disposition dense, rangée par colonne en utilisant les deux valeurs pour la propriété : `grid-auto-flow: column dense`.
-Avec cette valeur, la grille cherchera donc à combler les espaces qu'elle a laissés quitte à ne pas respecter l'ordre du DOM. En revanche, l'ordre de la navigation au clavier (_tab order_) suivra toujours l'ordre du document. Nous étudierons cet aspect plus en détails dans [un article sur l'accessibilité](/fr/docs/Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité).
+Avec cette valeur, la grille cherchera donc à combler les espaces qu'elle a laissés, quitte à ne pas respecter l'ordre du DOM. Cela ne modifiera pas l'ordre logique des éléments. Par exemple, l'ordre de la navigation au clavier suivra toujours l'ordre du document. Nous étudierons cet aspect plus en détails dans [un article sur l'accessibilité](/fr/docs/Web/CSS/CSS_grid_layout/Grid_layout_and_accessibility). Pour résumer, il faut faire attention quand on détache l'ordre visuel de l'ordre d'affichage.
```css hidden
* {
@@ -450,80 +452,34 @@ Avec cette valeur, la grille cherchera donc à combler les espaces qu'elle a lai
}
```
-{{EmbedLiveSample('Combler_les_espaces', '500', '730')}}
+{{EmbedLiveSample('', '500', '730')}}
### Les éléments anonymes de la grille
-Dans la spécification, on utilise le concept d'élément anonyme. Ces éléments sont ceux qui sont créés lorsqu'on a une chaîne de caractères dans le conteneur de la grille et que celle-ci n'est pas contenue dans un autre élément. Dans l'exemple ci-après, on a trois éléments sur la grille : le premier est un élément anonyme car il n'est placé dans aucun élément, il sera alors placé automatiquement. Les deux éléments suivants sont placés dans des `div` et peuvent être placés automatiquement ou grâce à une autre méthode de positionnement.
+Dans la spécification, on utilise le concept d'élément anonyme. Ces éléments sont ceux qui sont créés lorsqu'on a une chaîne de caractères dans le conteneur de la grille et que celle-ci n'est pas contenue dans un autre élément. Dans l'exemple ci-après, on a trois éléments sur la grille :
-```css
+- Le premier est un élément anonyme, car il n'est placé dans aucun élément, il sera alors placé automatiquement.
+- Les deux éléments suivants sont placés dans des `div` et peuvent être placés automatiquement ou grâce à une autre méthode de positionnement.
+
+```html
- Je suis une chaîne de caractères et je serai placé
- automatiquement.
+ Je suis une chaîne de caractères et je serai placée automatiquement.
Un élément de la grille
Un élément de la grille
```
-Les éléments anonymes sont toujours placés automatiquement car on ne peut pas les cibler autrement. Aussi, si on a du texte sans balise dans la grille, il faut se rappeler que celui-ci peut être placé à un endroit imprévu du fait des règles de placement automatique.
+Les éléments anonymes sont toujours placés automatiquement, car on ne peut pas les cibler autrement. Aussi, si on a du texte sans balise dans la grille, il faut se rappeler que celui-ci peut être placé à un endroit imprévu du fait des règles de placement automatique.
### Les cas d'utilisation pour le placement automatique
-Le placement automatique peut être utile lorsqu'on a un ensemble d'objets qui se ressemblent. Ce peut être des éléments qui n'ont pas d'ordre logique particulier : une galerie de photos, une liste de produits. Dans ces cas de figure, on peut choisir d'utiliser une disposition dense afin de combler les trous de la grille. Dans l'exemple qui représente la galerie d'images, on a certaines images en paysage et d'autres en portrait (lorsqu'on utilise la classe `landscape` l'élément s'étend sur deux colonnes). On utilise ensuite `grid-auto-flow: dense` afin de créer une grille dense.
-
-```css
-.wrapper {
- display: grid;
- grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
- grid-gap: 10px;
- grid-auto-flow: dense;
- list-style: none;
- margin: 1em auto;
- padding: 0;
- max-width: 800px;
-}
-.wrapper li {
- border: 1px solid #ccc;
-}
-.wrapper li.landscape {
- grid-column-end: span 2;
-}
-.wrapper li img {
- display: block;
- object-fit: cover;
- width: 100%;
- height: 100%;
-}
-```
-
-```html
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
+Le placement automatique peut être utile lorsqu'on a un ensemble d'objets qui se ressemblent. Ce peut être des éléments qui n'ont pas d'ordre logique particulier : une galerie de photos, une liste de produits. Dans ces cas de figure, on peut choisir d'utiliser une disposition dense afin de combler les trous de la grille. Dans l'exemple qui représente la galerie d'images, on a certaines images en paysage et d'autres en portrait (lorsqu'on utilise la classe `landscape` l'élément s'étend sur deux colonnes). On utilise ensuite `grid-auto-flow: dense` afin de créer une grille dense.
-{{EmbedLiveSample('Les_cas_dutilisation_pour_le_placement_automatique', '500', '1300')}}
+Dans l'exemple qui suit, retirez la ligne `grid-auto-flow: dense` pour voir la réorganisation du contenu et les espaces que cela crée.
-Le placement automatique peut également aider à disposer des éléments d'interface utilisateur qui ont un ordre logique. Dans l'exemple suivant, on voit comment manipuler les listes de définition. Les listes de définition sont intéressantes car il n'y a pas de niveau de regroupement pour regrouper un terme et ses définitions. Dans cet exemple, on autorise le placement automatique mais on a une classe pour qu'un élément `dt` démarre sur la première ligne et que l'élément `dd` sur la ligne 2. On s'assure ainsi que les termes sont bien en face de chaque définition, peu importe le nombre de définitions qu'on a pour un terme.
+{{EmbedGHLiveSample("css-examples/grid/docs/autoplacement.html", '100%', 1200)}}
-### Autre exemple
+Le placement automatique peut également aider lorsqu'on dispose des éléments d'interface sans ordre logique. Dans l'exemple qui suit, on a une liste de définitions. Dans une telle liste, rien ne regroupe particulièrement plusieurs éléments `` et ` `. Ici, on autorise le placement automatique tout en utilisant des classes pour que les ` ` soient dans la colonne 1 et les ` ` dans la colonne 2. On s'assure ainsi que les termes et leurs définitions seront bien l'un en face de l'autre, quel que soit le nombre de définitions pour un terme.
```css hidden
* {
@@ -540,15 +496,15 @@ Le placement automatique peut également aider à disposer des éléments d'inte
```html
- Mammals
- Cat
- Dog
- Mouse
- Fish
- Guppy
- Birds
- Pied Wagtail
- Owl
+ Mammifères
+ Chat
+ Chien
+ Souris
+ Poisson
+ Poisson rouge
+ Oiseaux
+ Bergeronnette
+ Hiboux
```
@@ -570,14 +526,10 @@ dd {
}
```
-{{EmbedLiveSample('Autre_exemple', '500', '230')}}
-
-> **Note :** Voir [cet article de SitePoint](https://www.sitepoint.com/understanding-masonry-layout/) à propos de la disposition en briques pour d'autres cas d'utilisation.
-
-## Qu'est-ce que le placement automatique ne permet pas de réaliser (actuellement) ?
+{{EmbedLiveSample('', '500', '230')}}
-Certaines questions se posent encore. Actuellement on ne peut pas cibler toutes les autres cellules de la grille. On ne peut pas non plus définir une règle pour « placer tous les éléments automatiquement après la prochaine ligne intitulée `n` » (pour que certaines lignes soient sautées). Cette question [est décrite sur le dépôt GitHub du CSSWG](https://github.com/w3c/csswg-drafts/issues/796), n'hésitez pas à ajouter vos exemples de scénarios.
+## Qu'est-ce que le placement automatique ne permet pas de réaliser (actuellement) ?
-Si vous rencontrez des cas d'utilisation problématiques avec le placement automatique et les grilles, vous pouvez consulter les _issues_ existantes et les compléter ou ajouter les vôtres. Cela permettra que les prochaines versions de la spécification soient meilleures.
+Certaines questions se posent encore. Actuellement on ne peut pas cibler toutes les autres cellules de la grille. On ne peut pas non plus définir une règle pour « placer tous les éléments automatiquement après la prochaine ligne intitulée `n` » (pour que certaines lignes soient sautées). Cette question [est décrite sur le dépôt GitHub du CSSWG](https://github.com/w3c/csswg-drafts/issues/796), n'hésitez pas à ajouter vos exemples de scénarios.
-{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille", "Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS","Web/CSS/CSS_Grid_Layout")}}
+Si vous rencontrez des cas d'utilisation problématiques avec le placement automatique et les grilles, vous pouvez consulter les issues existantes et les compléter ou ajouter les vôtres. Cela permettra que les prochaines versions de la spécification soient meilleures.
diff --git a/files/fr/web/css/css_grid_layout/grids_logical_values_and_writing_modes/8-horizontal-tb.png b/files/fr/web/css/css_grid_layout/grids_logical_values_and_writing_modes/8-horizontal-tb.png
new file mode 100644
index 00000000000000..4b833aa98e54b4
Binary files /dev/null and b/files/fr/web/css/css_grid_layout/grids_logical_values_and_writing_modes/8-horizontal-tb.png differ
diff --git a/files/fr/web/css/css_grid_layout/grids_logical_values_and_writing_modes/index.md b/files/fr/web/css/css_grid_layout/grids_logical_values_and_writing_modes/index.md
index e44b4acf2fcb58..6d44345c2ae61a 100644
--- a/files/fr/web/css/css_grid_layout/grids_logical_values_and_writing_modes/index.md
+++ b/files/fr/web/css/css_grid_layout/grids_logical_values_and_writing_modes/index.md
@@ -1,17 +1,17 @@
---
title: Les grilles CSS, les valeurs logiques et les modes d'écriture
slug: Web/CSS/CSS_grid_layout/Grids_logical_values_and_writing_modes
+l10n:
+ sourceCommit: f224dbe80c60289cd8b7d2bf92871d091e0f5d0d
---
{{CSSRef}}
-{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité","Web/CSS/CSS_Grid_Layout")}}
-
-Dans les articles précédents, nous avons évoqué un aspect important de la disposition en grille : la prise en charge des différents modes d'écriture. Dans ce guide, nous nous intéresserons plus particulièrement à cette fonctionnalité ainsi qu'aux autres méthodes modernes de disposition. Cela sera également l'occasion d'en apprendre plus sur les modes d'écritures et la notion de propriété logique/physique.
+Dans les articles précédents, nous avons évoqué un aspect important de la disposition en grille : la prise en charge des différents modes d'écriture. Dans ce guide, nous nous intéresserons plus particulièrement à cette fonctionnalité ainsi qu'aux autres méthodes modernes de disposition. Cela sera également l'occasion d'en apprendre plus sur les modes d'écritures et la notion de propriété logique/physique.
## Les propriétés logiques, les propriétés physiques et les valeurs
-CSS possède de nombreux mots-clés qui permettent de positionner **physiquement** les éléments : `left`, `right`, `top`, `bottom`… Si on positionne un élément de façon absolue, on utilisera ces mots-clés physiques comme valeurs pour indiquer le décalage de l'élément. Dans le fragment de code suivant, l'élément est décalé de 20 pixels depuis le haut du conteneur et de 30 pixels depuis le bord gauche du conteneur.
+CSS possède de nombreux mots-clés qui permettent de positionner **physiquement** les éléments : `left`, `right`, `top`, `bottom`… Si on positionne un élément de façon absolue, on utilisera ces mots-clés physiques comme valeurs pour indiquer le décalage de l'élément. Dans le fragment de code suivant, l'élément est décalé de 20 pixels depuis le haut du conteneur et de 30 pixels depuis le bord gauche du conteneur.
```css
.container {
@@ -30,15 +30,48 @@ CSS possède de nombreux mots-clés qui permettent de positionner **physiquement
```
-On rencontre également ces mots-clés physiques avec `text-align: right` afin d'aligner le texte à droite. Il existe aussi des propriétés **physiques** en CSS. On ajoute des marges, du remplissage, des bordures grâces à cs propriétés physiques comme {{cssxref("margin-left")}}, {{cssxref("padding-left")}}, etc.
+On rencontre également ces mots-clés physiques avec `text-align: right` afin d'aligner le texte à droite. Il existe aussi des propriétés **physiques** en CSS. On ajoute des marges, du remplissage, des bordures grâces à cs propriétés physiques comme [`margin-left`](/fr/docs/Web/CSS/margin-left), [`padding-left`](/fr/docs/Web/CSS/padding-left), etc.
+
+On qualifie ces propriétés de physiques, car elles concernent l'écran qu'on regarde : la gauche sera toujours la gauche, quelle que soit la direction du texte.
+
+### Les problèmes des propriétés physiques
+
+Cela peut devenir un problème lorsqu'on développe un site qui doit fonctionner avec plusieurs langues dont certaines sont écrites de droite à gauche et non de gauche à droite. Les navigateurs savent plutôt bien gérer les différentes directions d'écriture. Dans l'exemple qui suit, on a deux paragraphes. Pour le deuxième, aucune propriété [`text-align`](/fr/docs/Web/CSS/text-align) n'est utilisée, alors que pour le second, on utilise `text-align` avec `left` et on ajoute `dir="rtl"` sur l'élément HTML ce qui a pour effet de changer la direction d'écriture. On peut voir que, dans le second paragraphe, la direction change et le texte est écrit de droite à gauche. Dans le premier cependant, avec `text-align value: left`, l'alignement reste à gauche.
+
+```html hidden
+
+ Pour ce paragraphe, on a text-align: left
, il sera donc toujours
+ aligné à gauche, même si le sens d'écriture du document va de droite à gauche
+ (rtl).
+
+
+
+ Aucun alignement imposé sur ce paragraphe, il suit la direction du document.
+
+```
-On qualifie ces propriétés de physiques car elles concernent l'écran qu'on regarde : la gauche sera toujours la gauche, quelle que soit la direction du texte.
+```css hidden
+body {
+ direction: rtl;
+}
+
+p {
+ border: 2px solid #ffa94d;
+ border-radius: 5px;
+ background-color: #ffd8a8;
+ padding: 1em;
+ margin: 1em;
+ color: #d9480f;
+}
-Cela peut devenir un problème lorsqu'on développe un site qui doit fonctionner avec plusieurs langues dont certaines sont écrites de droite à gauche et non de gauche à droite. Les navigateurs savent plutôt bien gérer les différentes directions d'écriture. Dans l'exemple qui suit, on a deux paragraphes. Pour le deuxième, aucune propriété {{cssxref("text-align")}} n'est utilisée, alors que pour le second, on utilise `text-align` avec `left` et on ajoute `dir="rtl"` sur l'élément HTML ce qui a pour effet de changer la direction d'écriture. On peut voir que, dans le second paragraphe, la direction change et le texte est écrit de droite à gauche. Dans le premier cependant, avec `text-align value: left`, l'alignement reste à gauche.
+.left {
+ text-align: left;
+}
+```
-![A simple example of text direction.](8_direction_simple_example.png)
+{{EmbedLiveSample("","",200)}}
-Cela illustre un problème fréquent avec les propriétés et valeurs physiques en CSS : elles empêchent le navigateur de passer correctement d'un mode d'écriture à l'autre.
+Cela illustre un problème fréquent avec les propriétés et valeurs physiques en CSS : en supposant que le texte est toujours écrit de gauche à droite et de bas en haut, elles empêchent le navigateur de passer correctement d'un mode d'écriture à l'autre.
### Les propriétés et valeurs logiques
@@ -46,17 +79,17 @@ Les propriétés et les valeurs logiques n'émettent pas d'hypothèse quant à l
## L'axe de bloc et l'axe en ligne
-Lorsqu'on commence à travailler avec les propriétés logiques plutôt qu'avec les propriétés physiques, on cesse de voir le monde comme un espace qui va de gauche à droite et de haut en bas. Il faut de nouveaux axes de références : l'axe de bloc (_block axis_ en anglais) et l'axe en ligne (_inline axis_). Le premier est l'axe orthogonal au sens d'écriture et le second est l'axe dans lequel on écrit. Ces axes _logiques_ sont très utiles et on comprend mieux leurs rôles sur la grille.
+Lorsqu'on commence à travailler avec les propriétés logiques plutôt qu'avec les propriétés physiques, on cesse de voir le monde comme un espace qui va de gauche à droite et de haut en bas. Il faut de nouveaux axes de références : l'axe de bloc (block axis en anglais) et l'axe en ligne (inline axis en anglais). Le premier est l'axe orthogonal au sens d'écriture et le second est l'axe dans lequel on écrit. Ces axes _logiques_ sont très utiles et on comprend mieux leurs rôles sur la grille.
-![An image showing the default direction of the Block and Inline Axes.](8-horizontal-tb.png)
+![Une image illustrant la direction par défaut pour l'axe de bloc et l'axe en ligne.](8-horizontal-tb.png)
## Les modes d'écriture CSS
-Nous allons ici aborder une autre spécification que nous allons utiliser dans nos exemples : la spécification CSS sur les modes d'écriture (_CSS Writing Modes_). Cette spécification régit comment les différents modes d'écriture peuvent être utilisés en CSS, pas seulement pour prendre en charge différentes langues mais aussi pour créer des effets artistiques. Nous allons utiliser la propriété {{cssxref("writing-mode")}} afin de modifier le mode d'écriture appliqué à la grille pour observer comment fonctionnent les valeurs logiques. Si vous souhaitez approfondir ces notions autour des modes d'écriture, vous pouvez consulter l'article [_CSS Writing Modes_ (en anglais)](https://24ways.org/2016/css-writing-modes/) écrit par Jen Simmons.
+Nous allons ici aborder une autre spécification que nous allons utiliser dans nos exemples : la spécification CSS sur les modes d'écriture (CSS Writing Modes ). Cette spécification régit comment les différents modes d'écriture peuvent être utilisés en CSS, pas seulement pour prendre en charge différentes langues mais aussi pour créer des effets artistiques. Nous allons utiliser la propriété [`writing-mode`](/fr/docs/Web/CSS/writing-mode) afin de modifier le mode d'écriture appliqué à la grille pour observer comment fonctionnent les valeurs logiques. Si vous souhaitez approfondir ces notions autour des modes d'écriture, vous pouvez consulter [l'article CSS Writing Modes (en anglais), écrit par Jen Simmons](https://24ways.org/2016/css-writing-modes/).
### `writing-mode`
-Les modes d'écriture ne se limitent pas à l'écriture de droite à gauche ou de gauche à droite, la propriété `writing-mode` nous permet d'afficher du texte dans plusieurs directions. La propriété {{cssxref("writing-mode")}} peut prendre les valeurs suivantes :
+Les modes d'écriture ne se limitent pas à l'écriture de droite à gauche ou de gauche à droite, la propriété `writing-mode` nous permet d'afficher du texte dans plusieurs directions. La propriété [`writing-mode`](/fr/docs/Web/CSS/writing-mode) peut prendre les valeurs suivantes :
- `horizontal-tb`
- `vertical-rl`
@@ -64,7 +97,7 @@ Les modes d'écriture ne se limitent pas à l'écriture de droite à gauche ou d
- `sideways-rl`
- `sideways-lr`
-Sur le Web, c'est la valeur `horizontal-tb` qui est la valeur par défaut pour le texte. C'est dans cette direction que vous lisez cet article. Les autres valeurs changeront la façon dont le texte est écrit sur le document et correspondent aux modes d'écriture utilisés dans d'autres langues. Dans l'exemple qui suit, on a deux paragraphes, le premier utilise la valeur par défaut `horizontal-tb` et le second utilise la valeur `vertical-rl`. Dans ce deuxième mode, le texte est toujours écrit de gauche à droite mais la direction du texte est verticale. Dans ce deuxième paragraphe, l'axe en ligne (_inline_) est donc l'axe vertical.
+Sur le Web, c'est la valeur `horizontal-tb` qui est la valeur par défaut pour le texte. C'est dans cette direction que vous lisez cet article. Les autres valeurs changeront la façon dont le texte est écrit sur le document et correspondent aux modes d'écriture utilisés dans d'autres langues. Dans l'exemple qui suit, on a deux paragraphes, le premier utilise la valeur par défaut `horizontal-tb` et le second utilise la valeur `vertical-rl`. Dans ce deuxième mode, le texte est toujours écrit de gauche à droite mais la direction du texte est verticale. Dans ce deuxième paragraphe, l'axe en ligne est donc l'axe vertical.
```css hidden
.wrapper > p {
@@ -89,7 +122,7 @@ Sur le Web, c'est la valeur `horizontal-tb` qui est la valeur par défaut pour l
```
-{{EmbedLiveSample("writing-mode", '500', '420')}}
+{{EmbedLiveSample("", '500', '420')}}
## La gestion des modes d'écriture avec une grille
@@ -97,7 +130,7 @@ Si on reprend l'exemple avec la grille, on comprend mieux l'effet du changement
### Mode d'écriture par défaut
-Dans le prochain exemple, la grille possède trois colonnes et deux lignes. Cela signifie qu'il y a trois pistes qui traversent l'axe de bloc. Avec le mode d'écriture par défaut, la grille commence par placer les objets en haut à gauche en remplissant les trois cellules sur la première ligne avant de passer à la suivante, en formant une nouvelle ligne, etc.
+Dans le prochain exemple, la grille possède trois colonnes et deux pistes. Cela signifie qu'il y a trois pistes qui traversent l'axe de bloc. Avec le mode d'écriture par défaut, la grille commence par placer les objets en haut à gauche en remplissant les trois cellules sur la première ligne avant de passer à la suivante, en formant une nouvelle ligne, etc.
```css hidden
* {
@@ -138,11 +171,11 @@ Dans le prochain exemple, la grille possède trois colonnes et deux lignes. Cela
```
-{{EmbedLiveSample("Mode_d'écriture_par_défaut", '500', '330')}}
+{{EmbedLiveSample("", '500', '230')}}
-### Définir writing-mode
+### Définir le mode d'écriture
-Si on ajoute `writing-mode: vertical-lr` au conteneur de la grille, on peut voir que les axes logiques s'appliquent désormais dans une autre direction. L'axe de bloc (aussi appelé l'axe des colonnes pour la grille) s'étend maintenant de gauche à droite et l'axe en ligne court verticalement.
+Si on ajoute `writing-mode: vertical-lr` au conteneur de la grille, on peut voir que les axes logiques s'appliquent désormais dans une autre direction. L'axe de bloc (aussi appelé l'axe des colonnes pour la grille) s'étend maintenant de gauche à droite et l'axe en ligne court verticalement, de haut en bas.
```css hidden
* {
@@ -184,9 +217,7 @@ Si on ajoute `writing-mode: vertical-lr` au conteneur de la grille, on peut voir
```
-{{EmbedLiveSample("Définir_writing-mode", '500', '330')}}
-
-![A image showing the direction of Block and Inline when writing-mode is vertical-lr](8-vertical-lr.png)
+{{EmbedLiveSample("", '500', '330')}}
## L'utilisation de valeurs logiques pour l'alignement
@@ -250,25 +281,25 @@ Dans le prochain exemple, on aligne des objets dans une grille pour laquelle `wr
```
-{{EmbedLiveSample("L'utilisation_de_valeurs_logiques_pour_l'alignement", '500', '330')}}
+{{EmbedLiveSample("", '500', '240')}}
Si vous souhaitez voir l'effet obtenu avec une écriture verticale de haut en bas et de droite à gauche, il suffit de passer de `vertical-lr` à `vertical-rl` pour changer de mode d'écriture.
## Le placement automatique et les modes d'écriture
-On a vu dans l'exemple précédent que lorsqu'on changeait de mode d'écriture, cela changeait également la direction selon laquelle les éléments étaient placés sur la grille. Par défaut, les éléments sont placés en progressant sur l'axe en ligne, jusqu'à la fin de la ligne, une nouvelle ligne est ensuite créée si besoin mais cette ligne ne progresse pas nécessairement de gauche à droite.
+On a vu dans l'exemple précédent que lorsqu'on changeait de mode d'écriture, cela changeait également la direction selon laquelle les éléments étaient placés sur la grille. Par défaut, les éléments sont placés en progressant sur l'axe en ligne, jusqu'à la fin de la ligne, une nouvelle ligne est ensuite créée si besoin, mais cette ligne ne progresse pas nécessairement de gauche à droite.
## Le placement sur les lignes et les modes d'écriture
Il faut garder à l'esprit que lorsqu'on place des objets sur les lignes, la ligne 1 sera toujours la ligne de départ, quel que soit le mode d'écriture et la ligne -1 sera toujours la ligne de fin.
-Dans l'exemple suivant, on a une grille avec la direction `ltr` et on positionne trois objets en utilisant le placement sur les lignes.
+### Placement sur les lignes pour du texte de gauche à droite
-- L'objet 1 commence à la colonne 1 et occupe une piste
-- L'objet 2 commence à la colonne -1 et occupe -3 pistes
-- L'objet 3 commence à la colonne 1 et s'étend jusqu'à la troisième colonne.
+Dans l'exemple suivant, on a une grille avec la direction `ltr` et on positionne trois objets en utilisant le placement sur les lignes.
-### Placement sur les lignes pour du texte de gauche à droite
+- L'objet 1 commence à la ligne verticale 1 et occupe une piste
+- L'objet 2 commence à la ligne verticale -1 (le bord tout à droite) et s'étend jusqu'à la ligne verticale -3
+- L'objet 3 commence à la ligne verticale 1 et s'étend jusqu'à la troisième ligne verticale.
```css hidden
* {
@@ -317,11 +348,11 @@ Dans l'exemple suivant, on a une grille avec la direction `ltr` et on positionne
```
-{{EmbedLiveSample("Placement_sur_les_lignes_pour_du_texte_de_gauche_à_droite", '500', '330')}}
+{{EmbedLiveSample("", '500', '240')}}
### Placement sur les lignes pour du texte de droite à gauche
-Si on ajoute alors la propriété {{cssxref("direction")}} avec la valeur `rtl` pour le conteneur de la grille, la colonne 1 sera la plus à droite et la colonne 1 sera à gauche.
+Si on ajoute alors la propriété [`direction`](/fr/docs/Web/CSS/direction) avec la valeur `rtl` pour le conteneur de la grille, la colonne 1 sera la plus à droite et la colonne -1 sera à gauche.
```css hidden
* {
@@ -371,29 +402,29 @@ Si on ajoute alors la propriété {{cssxref("direction")}} avec la valeur `rtl`
```
-{{EmbedLiveSample("Placement_sur_les_lignes_pour_du_texte_de_droite_à_gauche", '500', '330')}}
+{{EmbedLiveSample("", '500', '240')}}
-On voit ici que si on change la direction du texte pour la page ou pour une partie de la page : la disposition change selon lees numéros de lignes. Si on ne veut pas que les lignes bougent, on pourra utiliser des lignes nommées pour éviter cet effet.
+On voit ici que si on change la direction du texte pour la page ou pour une partie de la page, la disposition change selon les numéros de lignes. Si on ne veut pas que les lignes bougent, on pourra utiliser des lignes nommées pour éviter cet effet.
### L'étrange ordre des valeurs pour `grid-area`
-La propriété {{cssxref("grid-area")}} permet d'indiquer les quatre lignes qui définissent une zone. Lorsqu'on apprend à utiliser cette propriété, on se surprend à voir que les quatre valeurs ne suivent pas le même ordre que celui utilisé par les propriétés raccourcies pour les marges (pour celles-ci, les valeurs suivent le sens horaire : haut, droit, bas, gauche).
+La propriété [`grid-area`](/fr/docs/Web/CSS/grid-area) permet d'indiquer les quatre lignes qui définissent une zone. Lorsqu'on apprend à utiliser cette propriété, on se surprend à voir que les quatre valeurs ne suivent pas le même ordre que celui utilisé par les propriétés raccourcies pour les marges (pour celles-ci, les valeurs suivent le sens horaire : haut, droit, bas, gauche).
-Pour les valeurs de `grid-area`, l'ordre est le suivant :
+Pour les valeurs de `grid-area`, l'ordre est le suivant :
- `grid-row-start`
- `grid-column-start`
- `grid-row-end`
- `grid-column-end`
-Si on transpose ces valeurs à un système d'écriture de gauche à droite, cela correspond aux valeurs physiques suivantes :
+Si on transpose ces valeurs à un système d'écriture de gauche à droite, cela correspond aux valeurs physiques suivantes :
- `top`
- `left`
- `bottom`
- `right`
-Ce qui correspond… au sens anti-horaire ! L'ordre est l'inverse de celui utilisé pour les marges et le remplissage. Pour comprendre, mieux vaut voir la propriété `grid-area` comme une propriété logique qui fonctionne selon les axes de bloc et en ligne : on commence donc avec les deux lignes de départ puis les deux lignes d'arrivée. Cet ordre est plus « logique » !
+Ce qui correspond… au sens anti-horaire ! L'ordre est l'inverse de celui utilisé pour les marges et le remplissage (padding ). Pour comprendre, mieux vaut voir la propriété `grid-area` comme une propriété logique qui fonctionne selon les axes de bloc et en ligne : on commence donc avec les deux lignes de départ puis les deux lignes d'arrivée. Cet ordre est plus « logique » !
## Utiliser des modes d'écriture hybrides et les grilles CSS
@@ -455,11 +486,11 @@ Les modes d'écritures permettent d'afficher les documents en respectant les rè
```
-{{EmbedLiveSample("Utiliser_des_modes_d'écriture_hybrides_et_les_grilles_CSS", '500', '330')}}
+{{EmbedLiveSample("", '500', '280')}}
## Les valeurs physiques et les grilles CSS
-On rencontre souvent les propriétés physiques lorsqu'on construit un site web et, bien que la grille et les propriétés logiques permettent de respecter les modes d'écriture, il existe certains effets qui ne peuvent être obtenus qu'avec des propriétés et des valeurs physiques. Dans le guide sur [l'alignement des boîtes et les grilles](/fr/docs/Web/CSS/CSS_Grid_Layout/Box_Alignment_in_CSS_Grid_Layout), nous avons vu comment utiliser les marges automatiques sur les zones d'une grille. Utiliser les marges automatiques pour contraindre le placement d'un élément est une astuce qu'on rencontre aussi avec les boîtes flexibles mais cela couple la disposition avec l'espace physique.
+On rencontre souvent les propriétés physiques lorsqu'on construit un site web et, bien que la grille et les propriétés logiques permettent de respecter les modes d'écriture, il existe certains effets qui ne peuvent être obtenus qu'avec des propriétés et des valeurs physiques. Dans le guide sur [l'alignement des boîtes et les grilles](/fr/docs/Web/CSS/CSS_grid_layout/Box_alignment_in_grid_layout), nous avons vu comment utiliser les marges automatiques sur les zones d'une grille. Utiliser les marges automatiques pour contraindre le placement d'un élément est une astuce qu'on rencontre aussi avec les boîtes flexibles mais cela couple la disposition avec l'espace physique.
Si on utilise le positionnement absolu dans une zone d'une grille, là encore, on utilisera des décalages physiques pour décaler l'élément au sein de la zone. Dans ces cas, il faut être conscient du couplage qu'on ajoute avec l'espace physique et comprendre qu'il faudra adapter la feuille de style si on veut par exemple passer d'un mode `ltr` à un mode `rtl`.
@@ -467,6 +498,4 @@ Si on utilise le positionnement absolu dans une zone d'une grille, là encore, o
Les nouvelles méthodes de disposition, comme les grilles, permettent d'employer les valeurs logiques afin de placer les éléments. Cependant, dès qu'on combine ces valeurs avec des propriétés physiques, il faut maintenir ces dernières lorsque le mode d'écriture change.
-La [spécification sur les propriétés logiques en CSS](https://drafts.csswg.org/css-logical-props/) vise à résoudre ce problème. Nous pourrons peut-être utiliser demain des [équivalents logiques](/fr/docs/Web/CSS/CSS_Logical_Properties) pour chacune des propriétés physiques telles que {{cssxref("margin-left")}} et {{cssxref("margin-right")}}. Firefox a déjà implémenté ces propriétés logiques et vous pouvez les y tester. En utilisant les grilles et en manipulant l'axe de bloc et l'axe de ligne, vous saurez également comment fonctionnent ces propriétés logiques à venir.
-
-{{PreviousMenuNext("Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS", "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité","Web/CSS/CSS_Grid_Layout")}}
+La [spécification sur les propriétés logiques en CSS](https://drafts.csswg.org/css-logical-props/) vise à résoudre ce problème en fournissant [des équivalents logiques](/fr/docs/Web/CSS/CSS_logical_properties_and_values) pour chacune des propriétés physiques telles que [`margin-left`](/fr/docs/Web/CSS/margin-left) et [`margin-right`](/fr/docs/Web/CSS/margin-right). Ces propriétés et valeurs sont bien prises en charge par les navigateurs récents. En utilisant les grilles et en manipulant l'axe de bloc et l'axe de ligne, cela vous aidera à comprendre le fonctionnement de ces propriétés logiques.
diff --git a/files/fr/web/css/css_media_queries/index.md b/files/fr/web/css/css_media_queries/index.md
index f222af221919cb..13f553e2a7372d 100644
--- a/files/fr/web/css/css_media_queries/index.md
+++ b/files/fr/web/css/css_media_queries/index.md
@@ -1,32 +1,52 @@
---
-title: Media queries
+title: Requêtes média CSS (media queries)
slug: Web/CSS/CSS_media_queries
+l10n:
+ sourceCommit: 50e215d730cd173d93b9bf75785c0d8ed2f67cb0
---
{{CSSRef}}
-Les requêtes média, plus souvent appelées **_media queries,_** sont un outil de _responsive design_ qui permet d'adapter la feuille de style CSS en fonction de différents paramètres ou caractéristiques de l'appareil. Par exemple, on pourra appliquer différents styles si l'écran de l'appareil utilisé pour consulter le document est plus petit qu'une taille donnée ou si l'utilisateur tient son appareil en mode portrait ou paysage. La règle @ (ou _at-rule_) {{cssxref("@media")}} est utilisée afin d'appliquer les styles de façon conditionnelle.
+Les **requêtes média CSS**, plus souvent appelées **media queries **, sont un outil de [responsive design ](/fr/docs/Learn/CSS/CSS_layout/Responsive_Design) qui permet d'adapter la feuille de styles CSS en fonction de différents paramètres ou caractéristiques de l'appareil.
-De plus, la syntaxe des requêtes média est également employée dans d'autres contextes, notamment l'attribut [`media`](/fr/docs/Web/HTML/Element/source#media) de l'élément {{HTMLElement("source")}} qui permet de définir une chaîne de caractères contenant une requête média afin de choisir le fichier source utilisé pour une image grâce à l'élément HTML {{HTMLElement("picture")}}.
+Par exemple, on pourra appliquer différentes mises en forme selon la taille de [la zone d'affichage](/fr/docs/Glossary/Viewport) pour que la disposition soit correcte selon les tailles d'écran des appareils.
-De plus, la méthode du DOM {{domxref("Window.matchMedia()")}} peut être utilisée afin de tester le résultat d'une requête média pour la fenêtre courante. On peut également utiliser la méthode {{domxref("MediaQueryList.addListener()")}} afin de recevoir une notification lorsque l'état de la requête évolue. Grâce à cette fonctionnalité, un site ou une application peut réagir aux changements de configuration, d'orientation ou d'état.
+Par exemple, on pourra utiliser une police de caractères plus petite pour les appareils avec des petits écrans, augmenter l'espace entre les paragraphes si la page est vue en mode portrait, ou encore augmenter la taille des boutons sur les écrans tactiles.
-Vous pouvez en découvrir plus dans l'article [Tester des requêtes media](/fr/docs/Web/CSS/Requêtes_média/Tester_les_media_queries).
+![Un ordinateur portable et un smartphone, chacun avec une taille de zone d'affichage différente, où le contenu est agencé différemment grâce aux media queries.](media-queries.svg)
+
+C'est [la règle @](/fr/docs/Web/CSS/At-rule) [`@media`](/fr/docs/Web/CSS/@media) qui est utilisée en [CSS](/fr/docs/Web/CSS) pour appliquer de façon conditionnelle un fragment d'une feuille de styles selon le résultat d'une requête média. Si on souhaite appliquer de façon conditionnelle une feuille de styles entière, on utilisera [`@import`](/fr/docs/Web/CSS/@import).
+
+Lorsqu'on conçoit des composants HTML réutilisables, on peut également utiliser [les requêtes de conteneur](/fr/docs/Web/CSS/CSS_container_queries) qui permettent d'appliquer des mises en forme selon la taille de l'élément englobant plutôt que par rapport à la zone d'affichage ou aux caractéristiques de l'appareil.
+
+### Les requêtes média en HTML
+
+En [HTML](/fr/docs/Web/HTML), on peut appliquer des requêtes média à différents éléments :
+
+- Dans l'attribut [`media`](/fr/docs/Web/HTML/Element/link#media) de l'élément [` `](/fr/docs/Web/HTML/Element/link), qui définit le média auquel une ressource liée (généralement du CSS) s'applique.
+- Dans l'attribut [`media`](/fr/docs/Web/HTML/Element/source#media) de l'élément [``](/fr/docs/Web/HTML/Element/source), qui définit le média sur lequel la source s'applique (uniquement valide à l'intérieur d'éléments [``](/fr/docs/Web/HTML/Element/picture)).
+- Dans l'attribut [`media`](/fr/docs/Web/HTML/Element/style#media) de l'élément [`Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent aliquam, enim at fermentum mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus. Fusce vulputate sem at sapien. Vivamus leo Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent aliquam, enim at fermentum mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus. Fusce vulputate sem at sapien. Vivamus leo Largeur de la zone d'affichage Largeur de la zone d'affichage Hauteur de la zone d'affichage Hauteur de la zone d'affichage Titre Titre
\ No newline at end of file
diff --git a/files/fr/web/css/grid-column-start/index.md b/files/fr/web/css/grid-column-start/index.md
index a2ef1f373077ac..1e413bd67a0c79 100644
--- a/files/fr/web/css/grid-column-start/index.md
+++ b/files/fr/web/css/grid-column-start/index.md
@@ -1,11 +1,13 @@
---
title: grid-column-start
slug: Web/CSS/grid-column-start
+l10n:
+ sourceCommit: 84b1729de4f527c8d81e44a38fca70ea4db97922
---
{{CSSRef}}
-La propriété **`grid-column-start`** définit la position du début d'un élément (au sens des propriétés logiques `*-block-start`) en définissant la ligne ou la taille de fragment occupé sur la grille.
+La propriété **`grid-column-start`** définit la position du début d'un élément au sein de la grille de façon automatique, absolue ou relative par rapport à la fin de l'élément. La position de début définit le bord de la [zone de grille](/fr/docs/Glossary/Grid_Areas) selon l'axe logique de bloc (celui orthogonal au sens de lecteur).
{{EmbedInteractiveExample("pages/css/grid-column-start.html")}}
@@ -30,44 +32,48 @@ grid-column-start: span unezonedegrille 5;
/* Valeurs globales */
grid-column-start: inherit;
grid-column-start: initial;
+grid-column-start: revert;
+grid-column-start: revert-layer;
grid-column-start: unset;
```
-La valeur de cette propriété prend la forme d'une seule valeur ``. Une telle valeur peut être définie avec :
+La valeur de cette propriété prend la forme d'une seule valeur ``. Une telle valeur peut être définie avec :
- le mot-clé `auto`
-- ou une valeur ``
-- ou une valeur ``
-- ou une valeur `` et un `` séparés par un espace
-- ou le mot-clé `span` avec une valeur `` ou un `` ou les deux.
+- un identifiant ([``](/fr/docs/Web/CSS/custom-ident))
+- ou une valeur entière ([``](/fr/docs/Web/CSS/integer))
+- ou un identifiant et un entier séparés par un espace
+- ou le mot-clé `span` avec un identifiant ou un entier ou les deux.
### Valeurs
- `auto`
- - : Un mot-clé qui indique que la propriété ne contribue pas au placement de l'élément sur la grille. Cela indique un placement automatique, une taille de fragment (_span_) automatique ou une taille par défaut de `1`.
-- ``
- - : S'il existe une ligne nommée avec '\-start', la première ligne correspondante contribue au placement de l'élément sur la grille.
+ - : Un mot-clé qui indique que la propriété ne contribue pas au placement de l'élément sur la grille. Cela indique un placement automatique, une taille de fragment (span ) automatique ou une taille par défaut de `1`.
- > **Note :** Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant `grid-column-start: foo;` cela sélectionnera le début de la grille nommée correspondante (sauf si une autre ligne `foo-start` a été explicitement déclarée).
+- [``](/fr/docs/Web/CSS/custom-ident)
+
+ - : S'il existe une ligne nommée avec '\-start', le début de l'élément coincide avec la première ligne correspondante.
+
+ > **Note :** Les noms des zones de grille sont générés implicitement. Ainsi, en utilisant `grid-column-start: toto;` cela sélectionnera le bord de la zone de grille nommée correspondante (sauf si une autre ligne `toto-start` a explicitement été déclarée).
Sinon, la valeur est traitée comme si on avait utilisé `` et la valeur `1`.
- ` && ?`
- - : La n-ième ligne de la grille contribue au placement de l'élément sur la grille. Si un entier négatif est utilisé, le comptage sera fait depuis la fin de la grille explicite.
+ - : Le début de l'élément est placé sur la n-ième ligne de la grille. Si un entier négatif est utilisé, le comptage sera fait depuis la fin de la grille explicite.
- Si un nom est fourni pour \, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront comptées afin de trouver la position.
+ Si un nom est fourni pour ``, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existant avec ce nom, toutes les lignes implicites seront considérées afin de trouver la position.
- Si la valeur entière utilisée est `0`, la règle est invalide.
+ Une valeur entière de `0` sera considérée comme invalide.
- `span && [ || ]`
- - : Un fragment de grille est utilisé pour le placement de l'élément sur la grille afin que le début de la ligne pour l'élément de la grille soit placé à n lignes du bord de fin.
+ - : Le début de l'élément est placé relativement au bord de fin pour occuper n colonnes.
- Si un nom fourni pour \, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, tout les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées afin de placer ce fragment.
+ Si un nom fourni pour ``, seules les lignes ayant ce nom seront comptées. S'il n'y a pas suffisamment de lignes existantes avec ce nom, toutes les lignes implicites du côté de la grille explicite et qui correspondent à la direction de la recherche seront comptées pour l'étendue de l'élément.
- Si l'entier n'est pas défini, la valeur par défaut qui sera utilisée sera `1`. Les entiers négatifs ou nuls sont invalides.
+ Si l'entier n'est pas défini, la valeur par défaut sera `1`. Les entiers négatifs ou nuls sont invalides.
`` ne peut pas prendre la valeur `span`.
@@ -81,16 +87,22 @@ La valeur de cette propriété prend la forme d'une seule valeur ``.
## Exemples
+### Définir la colonne de début pour un élément de grille
+
+#### HTML
+
```html
-
One
-
Two
-
Three
-
Four
-
Five
+
Un
+
Deux
+
Trois
+
Quatre
+
Cinq
```
+#### CSS
+
```css
.wrapper {
display: grid;
@@ -99,7 +111,7 @@ La valeur de cette propriété prend la forme d'une seule valeur ``.
}
.box1 {
- grid-column-start: 1;
+ grid-column-start: span 2;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 3;
@@ -139,7 +151,78 @@ La valeur de cette propriété prend la forme d'une seule valeur ``.
}
```
-{{EmbedLiveSample('Exemples', '230', '420')}}
+#### Résultat
+
+{{EmbedLiveSample('définir_la_colonne_de_début_pour_un_élément_de_grille', '230', '420')}}
+
+### Placement relatif aux lignes
+
+#### HTML
+
+```html
+
+
Un
+
Deux
+
Trois
+
Quatre
+
Cinq
+
+```
+
+#### CSS
+
+```css
+.wrapper {
+ display: grid;
+ grid-template-columns: [main-start] 2fr [main] 1fr [main] 1fr [inter] 1fr [main];
+}
+
+.box1 {
+ grid-column-start: span 2 main;
+ grid-column-end: 5;
+}
+
+.box2 {
+ grid-column-start: span 2 main;
+ grid-column-end: inter;
+}
+
+.box3 {
+ grid-column-start: span 2 main;
+ grid-column-end: main;
+}
+```
+
+```css hidden
+* {
+ box-sizing: border-box;
+}
+
+.wrapper {
+ border: 2px solid #f76707;
+ border-radius: 5px;
+ background-color: #fff4e6;
+}
+
+.wrapper > div {
+ border: 2px solid #ffa94d;
+ border-radius: 5px;
+ background-color: #ffd8a8;
+ padding: 1em;
+ color: #d9480f;
+}
+
+.nested {
+ border: 2px solid #ffec99;
+ border-radius: 5px;
+ background-color: #fff9db;
+ padding: 1em;
+}
+```
+
+#### Résultat
+
+{{EmbedLiveSample('placement_relatif_aux_lignes', '230', '220')}}
## Spécifications
@@ -151,10 +234,10 @@ La valeur de cette propriété prend la forme d'une seule valeur ``.
## Voir aussi
-- {{cssxref("grid-column-end")}}
-- {{cssxref("grid-column")}}
-- {{cssxref("grid-row-start")}}
-- {{cssxref("grid-row-end")}}
-- {{cssxref("grid-row")}}
-- [Guide : le placement sur les lignes d'une grille](/fr/docs/Web/CSS/CSS_Grid_Layout/Line-based_Placement_with_CSS_Grid)
-- Tutoriel vidéo : [le placement sur les lignes (en anglais)](https://gridbyexample.com/video/series-line-based-placement/)
+- [`grid-column-end`](/fr/docs/Web/CSS/grid-column-end)
+- [`grid-column`](/fr/docs/Web/CSS/grid-column)
+- [`grid-row-start`](/fr/docs/Web/CSS/grid-row-start)
+- [`grid-row-end`](/fr/docs/Web/CSS/grid-row-end)
+- [`grid-row`](/fr/docs/Web/CSS/grid-row)
+- [Guide : le placement sur les lignes d'une grille](/fr/docs/Web/CSS/CSS_grid_layout/Grid_layout_using_line-based_placement)
+- [Tutoriel vidéo en anglais sur le placement sur les lignes](https://gridbyexample.com/video/series-line-based-placement/)
diff --git a/files/fr/web/css/max-width/index.md b/files/fr/web/css/max-width/index.md
index c3ab09c4ce57e0..1e392429cd6746 100644
--- a/files/fr/web/css/max-width/index.md
+++ b/files/fr/web/css/max-width/index.md
@@ -1,13 +1,17 @@
---
title: max-width
slug: Web/CSS/max-width
+l10n:
+ sourceCommit: de7d710496266ccf4fce5ade75a67e6605f60ce5
---
{{CSSRef}}
-La propriété **`max-width`** est utilisée pour définir la largeur maximale d'un élément donné. Elle empêche la valeur de la propriété {{cssxref("width")}} de devenir supérieure à la valeur spécifiée par `max-width` (autrement dit, `max-width` est une borne supérieur pour `width`).
+La propriété [CSS](/fr/docs/Web/CSS) **`max-width`** est utilisée pour définir la largeur maximale d'un élément. Elle empêche la [valeur utilisée](/fr/docs/Web/CSS/used_value) de la propriété [`width`](/fr/docs/Web/CSS/width) de devenir supérieure à la valeur spécifiée par `max-width`.
-{{EmbedInteractiveExample("pages/css/max-width.html")}}La valeur de `max-width` surcharge la valeur de {{cssxref("width")}} mais elle est surchargée par {{cssxref("min-width")}}.
+{{EmbedInteractiveExample("pages/css/max-width.html")}}
+
+La valeur de `max-width` surcharge la valeur de [`width`](/fr/docs/Web/CSS/width), mais `max-width` est, elle, surchargée par [`min-width`](/fr/docs/Web/CSS/min-width).
## Syntaxe
@@ -18,37 +22,43 @@ max-width: 3.5em;
/* Valeurs relatives */
/* Type */
-max-width: 10%;
+max-width: 75%;
/* Valeurs avec un mot-clé */
max-width: none;
max-width: max-content;
max-width: min-content;
-max-width: fit-content;
-max-width: fill-available;
+max-width: fit-content(20em);
/* Valeurs globales */
max-width: inherit;
max-width: initial;
+max-width: revert;
+max-width: revert-layer;
max-width: unset;
```
### Valeurs
-- ``
- - : La largeur minimale fixée. Voir {{cssxref("<length>")}} pour les unités qu'on peut utiliser. Une largeur négative rendra la déclaration invalide.
-- ``
- - : La largeur minimale fixée, exprimée comme un fraction de la largeur du bloc englobant. Voir la page {{cssxref("<percentage>")}} sur les valeurs possibles avec ce type. Les valeurs négatives rendront la déclaration invalide.
-- `fill-available`{{experimental_inline}}
- - : La largeur du bloc englobant moins la marge horizontale, la bordure et le remplissage (_padding_). Certains navigateurs implémentent cette valeur avec un ancien nom : `available`.
-- `fit-content` {{experimental_inline}}
- - : Un synonyme pour `max-content`.
+- [``](/fr/docs/Web/CSS/length)
+ - : Définit la largeur maximale avec une valeur absolue.
+- [``](/fr/docs/Web/CSS/percentage)
+ - : Définit la largeur maximale avec une valeur relative à la largeur du bloc englobant.
+- fit-content(<length-percentage> )
+ - : Utilise la formule `fit-content` avec l'espace disponible remplacé par l'argument fourni, c'est-à-dire `min(max-content, max(min-content, argument))`.
- `max-content` {{experimental_inline}}
- - : La largeur intrinsèque préférée.
+ - : La largeur maximale intrinsèque préférée.
- `min-content` {{experimental_inline}}
- - : La largeur intrinsèque minimale.
+ - : La valeur minimale intrinsèque pour la largeur maximale.
- `none`
- - : Il n'y a pas de maximum pour la largeur. C'est la valeur par défaut.
+ - : Il n'y a pas de maximum pour la largeur.
+
+## Accessibilité
+
+Veiller à s'assurer que les éléments ciblés avec une règle utilisant `max-width` ne sont pas tronqués ou ne masquent pas d'autre contenu sur la page lorsqu'on zoome pour augmenter la taille du texte.
+
+- [Comprendre les règles WCAG 1.4](/fr/docs/Web/Accessibility/Understanding_WCAG/Perceivable#guideline_1.4_make_it_easier_for_users_to_see_and_hear_content_including_separating_foreground_from_background)
+- [_Understanding Success Criterion 1.4.4, W3C Understanding WCAG 2.0_ (en anglais)](https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-scale.html)
## Définition formelle
@@ -60,44 +70,38 @@ max-width: unset;
## Exemples
-### Exemple simple avec un tableau
+### Définir une largeur maximale en pixels
+
+Dans cet exemple, l'élément `enfant` aura la largeur la plus petite entre 150 et celle de l'élément `parent`.
#### HTML
```html
-
- Lorem ipsum tralala sit amet, consectetur adipisicing
-
- Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
- aliquip ex ea commodo consequat.
-
+
+
+ Fusce pulvinar vestibulum eros, sed luctus ex lobortis quis.
+
```
#### CSS
```css
-div {
- width: 250px;
- border: solid 1px red;
+#parent {
+ background: lightblue;
+ width: 300px;
}
-p {
- max-width: 60%;
- border: solid 1px blue;
+#enfant {
+ background: gold;
+ width: 100%;
+ max-width: 150px;
}
```
#### Résultat
-{{EmbedLiveSample("Exemple_simple_avec_un_tableau","100%","100%")}}
-
-## Accessibilité
-
-Veiller à s'assurer que les éléments ciblés avec une règle utilisant `max-width` ne sont pas tronqués ou ne masquent pas d'autre contenu sur la page lorsqu'on zoome pour augmenter la taille du texte.
-
-- [Comprendre les règles WCAG 1.4](/fr/docs/Web/Accessibility/Understanding_WCAG/Perceivable#Guideline_1.4_Make_it_easier_for_users_to_see_and_hear_content_including_separating_foreground_from_background)
-- [_Understanding Success Criterion 1.4.4, W3C Understanding WCAG 2.0_ (en anglais)](https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-scale.html)
+{{EmbedLiveSample("", 350, 100)}}
## Spécifications
@@ -109,9 +113,6 @@ Veiller à s'assurer que les éléments ciblés avec une règle utilisant `max-w
## Voir aussi
-- {{cssxref("width")}}
-- {{cssxref("min-width")}}
-- {{cssxref("min-height")}}
-- {{cssxref("max-height")}}
-- {{cssxref("box-sizing")}}
-- [Le modèle de boîtes](/fr/Apprendre/CSS/Les_bases/Le_modèle_de_boîte)
+- [Le modèle de boîtes](/fr/docs/Web/CSS/CSS_box_model/Introduction_to_the_CSS_box_model) et [`box-sizing`](/fr/docs/Web/CSS/box-sizing)
+- [`width`](/fr/docs/Web/CSS/width), [`min-width`](/fr/docs/Web/CSS/min-width)
+- Les propriétés logiques correspondantes [`max-block-size`](/fr/docs/Web/CSS/max-block-size) et [`max-inline-size`](/fr/docs/Web/CSS/max-inline-size)
diff --git a/files/fr/web/html/element/img/index.md b/files/fr/web/html/element/img/index.md
index 80ac429e1e22da..d4e06b4f3a8760 100644
--- a/files/fr/web/html/element/img/index.md
+++ b/files/fr/web/html/element/img/index.md
@@ -32,7 +32,7 @@ Les formats d'image qu'on rencontre le plus fréquemment sur le Web sont :
- [AVIF (
AV1 Image File Format )](/fr/docs/Web/Media/Formats/Image_types#avif) pour les images et les images animées avec de hautes performances
- [GIF (
Graphics Interchange Format )](/fr/docs/Web/Media/Formats/Image_types#gif_graphics_interchange_format) pour les images et animations _simples_
- [JPEG (
Joint Photographic Expert Group image )](/fr/docs/Web/Media/Formats/Image_types#jpeg_joint_photographic_experts_group_image) pour une compression avec pertes d'images statiques, il s'agit du format le plus utilisé
-- [PNG (
Portable Network Graphics )](/fr/docs/Web/Media/Formats/Image_types#png_portable_network_graphics) pour une compression avec pertes d'images statiques, de meilleure qualité que le JPEG
+- [PNG (
Portable Network Graphics )](/fr/docs/Web/Media/Formats/Image_types#png_portable_network_graphics) pour une compression sans perte d'images statiques, de meilleure qualité que le JPEG
- [SVG (
Scalable Vector Graphics )](/fr/docs/Web/Media/Formats/Image_types#svg_scalable_vector_graphics) pour un format d'image vectorielle (qui permet de dessiner une image précisément à différentes échelles)
- [WebP (
Web Picture format )](/fr/docs/Web/Media/Formats/Image_types#webp) pour les images statiques et animées
diff --git a/files/fr/web/html/element/input/checkbox/index.md b/files/fr/web/html/element/input/checkbox/index.md
index 17a120681afe92..32b0f1bd84a0d2 100644
--- a/files/fr/web/html/element/input/checkbox/index.md
+++ b/files/fr/web/html/element/input/checkbox/index.md
@@ -329,4 +329,4 @@ otherCheckbox.addEventListener("change", () => {
- Les sélecteurs CSS qui permettent de mettre en forme les cases à cocher en fonction de leur état actuel : [`:checked`](/fr/docs/Web/CSS/:checked), [`:indeterminate`](/fr/docs/Web/CSS/:indeterminate)
- L'interface du DOM qui représente cet élément : [`HTMLInputElement`](/fr/docs/Web/API/HTMLInputElement)
-- [Tableau de compatibilité des propriétés CSS pour les contrôles de formulaires](/en-US/docs/Learn/Forms/Property_compatibility_table_for_form_controls)
+- [Tableau de compatibilité des propriétés CSS pour les contrôles de formulaires](/fr/docs/Learn/Forms/Property_compatibility_table_for_form_controls)
diff --git a/files/fr/web/http/headers/accept-language/index.md b/files/fr/web/http/headers/accept-language/index.md
index dac16c04665934..e45b3cb4b2a2fe 100644
--- a/files/fr/web/http/headers/accept-language/index.md
+++ b/files/fr/web/http/headers/accept-language/index.md
@@ -5,7 +5,7 @@ slug: Web/HTTP/Headers/Accept-Language
{{HTTPSidebar}}
-L'en-tête **`Accept-Language`** de la requête HTTP indique quelles sont les langues que le client est capable de comprendre, et quelle variante locale est préférée. En utilisant la [négociation de contenu](/fr-FR/docs/Web/HTTP/Content_negotiation), le serveur choisit alors l'une des propositions, l'utilise et informe le client de son choix par l'entête de réponse {{HTTPHeader("Content-Language")}}. Les navigateurs définissent les valeurs adéquates pour cet entête en fonction de la langue de leur interface utilisateur, et même si un utilisateur peut la changer, cela se produit rarement (et cela est vu d'un mauvais œil, dans la mesure où cela permet l'identification par empreinte numérique).
+L'en-tête **`Accept-Language`** de la requête HTTP indique quelles sont les langues que le client est capable de comprendre, et quelle variante locale est préférée. En utilisant la [négociation de contenu](/fr/docs/Web/HTTP/Content_negotiation), le serveur choisit alors l'une des propositions, l'utilise et informe le client de son choix par l'entête de réponse {{HTTPHeader("Content-Language")}}. Les navigateurs définissent les valeurs adéquates pour cet entête en fonction de la langue de leur interface utilisateur, et même si un utilisateur peut la changer, cela se produit rarement (et cela est vu d'un mauvais œil, dans la mesure où cela permet l'identification par empreinte numérique).
Cet en-tête est une indication destinée à être utilisée lorsque le serveur n'a aucun moyen de déterminer la langue d'une autre manière, comme une URL spécifique, qui est contrôlée par une décision explicite de l'utilisateur. Il est recommandé que le serveur ne passe jamais outre une décision explicite. Le contenu d'`Accept-Language` est souvent hors du contrôle de l'utilisateur (comme lors d'un voyage et de l'utilisation d'un cybercafé à l'étranger) ; l'utilisateur peut également vouloir visiter une page dans une langue que celle des paramètres régionaux de son interface utilisateur.
@@ -72,6 +72,6 @@ Accept-Language: en-US,en;q=0.5
## Voir aussi
-- HTTP [négociation de contenu](/fr-FR/docs/Web/HTTP/Content_negotiation)
+- HTTP [négociation de contenu](/fr/docs/Web/HTTP/Content_negotiation)
- En-tête avec le résultat de la négociation de contenu : {{HTTPHeader("Content-Language")}}
- Autres en-têtes similaires : {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept")}}
diff --git a/files/fr/web/http/headers/referrer-policy/index.md b/files/fr/web/http/headers/referrer-policy/index.md
index 695fafbc18ef73..e2d0d05f4ae702 100644
--- a/files/fr/web/http/headers/referrer-policy/index.md
+++ b/files/fr/web/http/headers/referrer-policy/index.md
@@ -39,12 +39,8 @@ Referrer-Policy: unsafe-url
- `no-referrer`
- : L'en-tête {{HTTPHeader("Referer")}} sera entièrement omis. Aucune information sur le référent ne sera envoyée avec les requêtes.
-- `no-referrer-when-downgrade` (default)
-
- - : C'est le comportement par défaut si aucune valeur n'est spécifiée ou quelle celle donnée est invalide. L'{{glossary("origin")}}, le {{glossary("path")}}, et la {{glossary("querystring")}} de l'URL sont envoyés comme référent quand le niveau de sécurité du protocole reste le même (HTTP vers HTTP, HTTPS vers HTTPS) ou s'améliore (HTTP vers HTTPS) mais ne sont pas envoyés quand si la destination est moins sécurisée (HTTPS vers HTTP).
-
- > **Note :** Les navigateurs tentent d'adopter une valeur par défaut plus stricte, précisément `strict-origin-when-cross-origin` (voir
), envisagez d'utiliser cette valeur (ou une autre encore plus stricte) si possible si vous définissez la valeur de Referrer-Policy.
-
+- `no-referrer-when-downgrade`
+ - : [L'origine](/fr/docs/Glossary/Origin), le chemin et les paramètres de requête (querystring ) présents dans l'URL sont envoyés comme référent quand le niveau de sécurité du protocole reste le même (HTTP vers HTTP, HTTPS vers HTTPS) ou s'améliore (HTTP vers HTTPS), mais ne sont pas envoyés si la destination est moins sécurisée que l'origine (HTTPS vers HTTP).
- `origin`
- : N'envoie que l'{{glossary("origin")}} du document comme référent.
Par exemple, un document à l'adresse `https://example.com/page.html` enverra le référent `https://example.com/`.
@@ -54,8 +50,8 @@ Referrer-Policy: unsafe-url
- : Un référent sera envoyé aux [page de même origine](/fr/docs/Web/Security/Same-origin_policy), mais des requêtes vers des adresses externes n'enverront aucune information sur le référent.
- `strict-origin`
- : N'envoie que l'origine du document comme référent quand le niveau de sécurité du protocole reste le même (HTTPS vers HTTPS) mais n'envoie rien si la destination est moins sécurisée (HTTPS vers HTTP).
-- `strict-origin-when-cross-origin`
- - : Envoie l'origine, le chemin et les paramètres de requête pour les requêtes de même origine, n'envoie que l'origine quand le niveau de sécurité du protocole reste le même pour les requêtes vers des adresses externes (HTTPS vers HTTPS) et n'envoie rien si la destination est moins sécurisée (HTTPS vers HTTP).
+- `strict-origin-when-cross-origin` (_valeur par défaut_)
+ - : Envoie l'origine, le chemin et les paramètres de requête pour les requêtes de même origine. N'envoie que l'origine quand le niveau de sécurité du protocole reste le même pour les requêtes vers d'autres origines (HTTPS vers HTTPS) et n'envoie aucun en-tête [`Referer`](/fr/docs/Web/HTTP/Headers/Referer) si la destination est moins sécurisée (HTTPS vers HTTP).
- `unsafe-url`
- : Envoie l'origine, le chemin et les paramètres de requête pour toutes les requêtes sans tenir compte du niveau de sécurité.
@@ -76,7 +72,7 @@ Ou le définit pour des requêtes spécifiques avec l'attribut `referrerpolicy`
```
-Autrement, une [relation de lien](/fr/docs/Web/HTML/Link_types) définie à `noreferrer` sur un élément `a`, `area`, ou `link` peut être défini :
+Autrement, une [relation de lien](/fr/docs/Web/HTML/Attributes/rel) définie à `noreferrer` sur un élément `a`, `area`, ou `link` peut être défini :
```html
diff --git a/files/fr/web/javascript/reference/global_objects/error/stack/index.md b/files/fr/web/javascript/reference/global_objects/error/stack/index.md
index b663b70529daf4..d7d11880ed08ad 100644
--- a/files/fr/web/javascript/reference/global_objects/error/stack/index.md
+++ b/files/fr/web/javascript/reference/global_objects/error/stack/index.md
@@ -112,7 +112,6 @@ Ne fait partie d'aucune spécification. Non-standard.
## Voir aussi
-- [Components.stack](/fr-FR/docs/Components.stack)
- Projets externes : [TraceKit](https://github.com/csnover/TraceKit/) et [javascript-stacktrace](https://github.com/eriwen/javascript-stacktrace)
- MSDN : docs [error.stack](https://web.archive.org/web/20140210004225/http://msdn.microsoft.com/en-us/library/windows/apps/hh699850.aspx)
- [Overview of the V8 JavaScript stack trace API](https://github.com/v8/v8/wiki/Stack%20Trace%20API)
diff --git a/files/fr/web/javascript/reference/global_objects/number/index.md b/files/fr/web/javascript/reference/global_objects/number/index.md
index 4b9c10816f778f..96436a622b6c48 100644
--- a/files/fr/web/javascript/reference/global_objects/number/index.md
+++ b/files/fr/web/javascript/reference/global_objects/number/index.md
@@ -1,137 +1,229 @@
---
title: Number
slug: Web/JavaScript/Reference/Global_Objects/Number
+l10n:
+ sourceCommit: b2a5f62d66b4e3d71704017d0fab7ad710e68057
---
{{JSRef}}
-L'objet **`Number`** est une enveloppe objet (_wrapper_) autour du [type primitif numérique](/fr/docs/Web/JavaScript/Structures_de_données#Le_type_nombre). Autrement dit, il est utilisé pour manipuler les nombres comme des objets. Pour créer un objet `Number`, on utilise le constructeur `Number()`.
+Les valeurs **`Number`** représentent les nombres décimaux comme `37` ou `-9.25`.
-Le type JavaScript `Number` utilise [une représentation binaire à précision double sur 64 bits telle que décrite par le standard IEEE 754](https://fr.wikipedia.org/wiki/IEEE_754). Les implémentations plus récentes offrent un nouveau type : {{jsxref("BigInt")}} qui permet de représenter des entiers avec une précision arbitraire.
+Le constructeur `Number()` contient des constantes et des méthodes pour manipuler les nombres. Les valeurs des autres types peuvent être converties en nombre à l'aide de la fonction `Number()`.
-## Syntaxe
+## Description
+
+Les nombres sont généralement exprimés sous leur forme littérale comme `255` ou `3.14159`. La [grammaire lexicale](/fr/docs/Web/JavaScript/Reference/Lexical_grammar#littéraux_numériques) contient une référence plus détaillée à ce sujet.
```js
-new Number(valeur);
-var a = new Number("123"); // a === 123 donnera false
-var b = Number("123"); // b === 123 donnera true
-a instanceof Number; // donnera true
-b instanceof Number; // donnera false
+255; // deux cent vingt-cinq
+255.0; // le même nombre
+255 === 255.0; // true
+255 === 0xff; // true (notation hexadécimale)
+255 === 0b11111111; // true (notation binaire)
+255 === 0.255e3; // true (notation scientifique)
```
-### Paramètres
+En JavaScript, un littéral numérique comme `37` est bien une valeur décimale et pas particulièrement entière. Il n'existe pas de type entier distinct pour un usage courant (le type [`BigInt`](/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt) existe mais sert à représenter les très grandes valeurs entières et pas les nombres courants comme `37`).
-- `valeur`
- - : La valeur numérique pour l'objet qu'on souhaite créer.
+Quand on utilise `Number(valeur)` comme fonction, elle permet de convertir une chaîne de caractères ou une valeur d'un autre type en valeur de type `Number`. Si la valeur ne peut pas être convertie, elle renvoie [`NaN`](/fr/docs/Web/JavaScript/Reference/Global_Objects/NaN)
-## Description
+```js
+Number("123"); // renvoie le nombre 123
+Number("123") === 123; // true
+
+Number("licorne"); // NaN
+Number(undefined); // NaN
+```
+
+### Encodage des valeurs numériques
+
+Le type JavaScript `Number` utilise [une représentation binaire à précision double sur 64 bits telle que décrite par le standard IEEE 754](https://fr.wikipedia.org/wiki/IEEE_754). Cela signifie que les valeurs décimales peuvent être représentées, avec certaines limites sur l'amplitude et la précision. En résumé, un nombre à précision double IEEE 754 utilise 64 bits pour représenter trois fragments :
+
+- 1 bit pour _le signe_ (indiquant si le nombre est positif ou négatif)
+- 11 bits pour _l'exposant_ (pouvant aller de -1022 à 1023)
+- 52 bits pour _la mantisse_ (représentant un nombre entre 0 et 1)
+
+La mantisse est la partie qui représente la valeur effective (les chiffres significatifs). L'exposant indique la puissance de deux par laquelle la mantisse devrait être multipliée. On peut écrire la formule suivante (proche de la notation scientifique) :
+
+Nombre = ( − 1 ) signe ⋅ ( 1 + mantisse ) ⋅ 2 exposant \text{Number} = ({-1})^{\text{signe}} \cdot (1 + \text{mantisse}) \cdot 2^{\text{exposant}}
+
+La mantisse est stockée sur 52 bits, interprétés comme les chiffres de la partie fractionnaire de `1.…` en binaire. La précision de la mantisse est donc 2-52 (valeur qu'on peut obtenir via [`Number.EPSILON`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON)), soit entre 15 et 17 chiffres en écriture décimale. Les valeurs arithmétiques au-delà de cette précision seront [arrondies](https://fr.wikipedia.org/wiki/IEEE_754#Arrondir_les_nombres_flottants).
+
+La valeur la plus grande qui puisse être représentée par un nombre en JavaScript est 21024 - 1 (ici l'exposant vaut 1023 et la mantisse vaut 0.1111… en base 2), valeur qu'on peut obtenir avec [`Number.MAX_VALUE`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE). Les valeurs supérieures à celle-ci sont remplacées par la constante spéciale [`Infinity`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Infinity).
+
+Les entiers peuvent uniquement être représentés sans perte de précision dans l'intervalle -253 + 1 à 253 - 1 inclus (valeurs qu'on peut obtenir avec [`Number.MIN_SAFE_INTEGER`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER) et [`Number.MAX_SAFE_INTEGER`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)), car la mantisse ne peut contenir que 53 bits (en comptant le 1).
+
+De plus amples précisions sont disponibles dans [le standard ECMAScript](https://tc39.es/ecma262/multipage/ecmascript-data-types-and-values.html#sec-ecmascript-language-types-number-type).
+
+### Conversion numérique
+
+De nombreuses opérations natives qui s'attendent à manipuler des nombres appliquent d'abord une conversion à leurs arguments pour les transformer en nombre (ce qui explique pourquoi les objets `Number` se comportent généralement comme des valeurs numériques primitives). [Cette opération de conversion](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tonumber) peut être résumée ainsi :
+
+- Les nombres sont renvoyés tels quels.
+- [`undefined`](/fr/docs/Web/JavaScript/Reference/Global_Objects/undefined) est transformé en [`NaN`](/fr/docs/Web/JavaScript/Reference/Global_Objects/NaN).
+- [`null`](/fr/docs/Web/JavaScript/Reference/Operators/null) est transformé en `0`.
+- `true` est transformé en `1`, et `false` est transformé en `0`.
+- Les chaînes de caractères sont converties en les analysant comme si elles contenaient [un littéral numérique](/fr/docs/Web/JavaScript/Reference/Lexical_grammar#numeric_literals). Toute erreur d'analyse produira `NaN`. Il y a quelques différences mineures par rapport à littéral numérique :
+ - Les blancs et fins de lignes au début ou à la fin sont ignorés.
+ - Un chiffre `0` en début de chaîne n'indique pas un littéral en base octale (et n'est pas rejeté en mode strict).
+ - `+` et `-` sont autorisés au début de la chaîne pour indiquer le signe. Dans du code littéral, ils semblent faire partie du littéral, mais sont en réalité des opérateurs unaires distincts. Toutefois, le signe ne peut apparaître qu'une seule fois et ne pas être suivi par des blancs.
+ - `Infinity` et `-Infinity` sont reconnus comme des valeurs littérales. Dans du code réel, il s'agit de variables globales.
+ - Les chaînes de caractères vides ou qui ne contiennent que des blancs sont converties en `0`.
+ - [Les séparateurs numériques](/fr/docs/Web/JavaScript/Reference/Lexical_grammar#séparateurs_numériques) (le tiret bas dans `1_050.95`) ne sont pas autorisés.
+- [Les grands entiers (BigInts )](/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt) déclenchent une exception [`TypeError`](/fr/docs/Web/JavaScript/Reference/Global_Objects/TypeError) pour empêcher une perte de précision involontaire lors de la conversion implicite.
+- [Les symboles](/fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol) déclenchent une exception [`TypeError`](/fr/docs/Web/JavaScript/Reference/Global_Objects/TypeError)
+- Les objets sont d'abord [convertis en une valeur primitive](/fr/docs/Web/JavaScript/Data_structures#primitive_coercion) à l'aide de leurs méthodes [`[@@toPrimitive]()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive) (où `"number"` est fourni comme indication), `valueOf()`, et `toString()`, selon cet ordre. La valeur primitive obtenue est alors convertie en nombre.
+
+Il existe deux méthodes qui permettent de déclencher cette conversion (ou presque) en JavaScript :
-L'objet `Number` est principalement utilisé dans les cas de figure suivants :
+- [Le plus unaire](/fr/docs/Web/JavaScript/Reference/Operators/Unary_plus) : `+x` applique l'algorithme explicité avant pour convertir `x`.
+- [La fonction `Number()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/Number) : `Number(x)` utilise le même algorithme pour convertir `x`, sauf que [les grands entiers (BigInts )](/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt) ne déclenchent pas d'exception [`TypeError`](/fr/docs/Web/JavaScript/Reference/Global_Objects/TypeError) mais renvoient la valeur numérique correspondante, quitte à ce qu'il y ait une perte de précision.
-- Si l'argument ne peut pas être converti en un nombre, il renverra {{jsxref("NaN")}}.
-- Dans un contexte de fonction simple (quand il n'est pas utilisé comme un constructeur avec l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}), `Number` peut être utilisé afin d'effectuer des conversions.
+[`Number.parseFloat()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat) et [`Number.parseInt()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt) sont semblables à `Number()` mais servent uniquement à convertir des chaînes de caractères, en suivant des règles légèrement différentes. Par exemple, `parseInt()` ne reconnaît pas le point décimal et `parseFloat()` ne reconnaît pas le préfixe `0x`.
-## Propriétés
+#### Conversion entière
-- {{jsxref("Number.EPSILON")}}
+Certaines opérations s'attendent à manipuler des entiers, notamment celles qui fonctionnent avec des indices de tableaux ou de chaînes de caractères, des composantes temporelles et des bases numériques. Après la conversion numérique décrite ci-avant, le résultat est [tronqué](/fr/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc) en un nombre entier (la partie fractionnaire est ignorée). Si le nombre est `±Infinity`, il est renvoyé tel quel. Si le nombre est `NaN` ou `-0`, c'est `0` qui est renvoyé. Le résultat est donc toujours un entier (qui n'est pas `-0`) ou `±Infinity`.
+
+On notera que, pour la conversion entière, `undefined` et `null` deviennent `0`, car `undefined` est d'abord converti en `NaN` lors de la conversion numérique, puis en `0` lors de la conversion entière qui suit.
+
+#### Conversion en nombre à longueur fixe
+
+Certaines fonctions JavaScript « bas-niveau » permettent de manipuler l'encodage binaire des nombres entiers, notamment [les opérateurs binaires](/fr/docs/Web/JavaScript/Reference/Operators#opérateurs_de_décalage_binaires) et les objets [`TypedArray`](/fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray). Les opérateurs binaires convertissent toujours leurs opérandes en entiers sur 32 bits. Dans ces cas, après la conversion numérique décrite avant, le nombre est normalisé à la largeur souhaitée en [tronquant](/fr/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc) la partie fractionnaire, puis en considérant les bits les plus faibles de la représentation de l'entier en complément à deux.
+
+```js
+new Int32Array([1.1, 1.9, -1.1, -1.9]); // Int32Array(4) [ 1, 1, -1, -1 ]
+
+new Int8Array([257, -257]); // Int8Array(2) [ 1, -1 ]
+// 257 = 0001 0000 0001
+// = 0000 0001 (mod 2^8)
+// = 1
+// -257 = 1110 1111 1111
+// = 1111 1111 (mod 2^8)
+// = -1 (comme entier signé)
+
+new Uint8Array([257, -257]); // Uint8Array(2) [ 1, 255 ]
+// -257 = 1110 1111 1111
+// = 1111 1111 (mod 2^8)
+// = 255 (comme entier non-signé)
+```
+
+## Constructeur
+
+- [`Number()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/Number)
+ - : Crée une nouvelle valeur `Number`.
+
+Lorsque `Number` est appelé comme constructeur (avec le mot-clé `new`), il crée un objet `Number` qui **n'est pas** une valeur primitive. Par exemple, on aura `typeof new Number(42) === "object"`, et `new Number(42) !== 42` (même si `new Number(42) == 42`).
+
+> **Attention :** Il est plutôt rare de devoir utiliser `Number` comme constructeur.
+
+## Propriétés statiques
+
+- [`Number.EPSILON`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON)
- : Le plus petit intervalle entre deux valeurs qu'il est possible de représenter en JavaScript.
-- {{jsxref("Number.MAX_SAFE_INTEGER")}}
- - : La valeur entière maximale qu'on peut représenter en JavaScript (`2^53 - 1`).
-- {{jsxref("Number.MAX_VALUE")}}
+- [`Number.MAX_SAFE_INTEGER`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)
+ - : La valeur entière maximale qu'on peut représenter en JavaScript (253 - 1).
+- [`Number.MAX_VALUE`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE)
- : La valeur numérique maximale qu'on peut représenter en JavaScript.
-- {{jsxref("Number.MIN_SAFE_INTEGER")}}
- - : La valeur entière minimale qu'on peut représenter en JavaScript (`-(2^53 - 1)`).
-- {{jsxref("Number.MIN_VALUE")}}
- - : La plus petite valeur qu'on peut représenter en JavaScript, c'est-à-dire le plus petit nombre positif (le nombre le plus près de zéro qui n'est pas égal à zéro et qu'on peut représenter en JavaScript).
-- {{jsxref("Number.NaN")}}
+- [`Number.MIN_SAFE_INTEGER`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER)
+ - : La valeur entière minimale qu'on peut représenter en JavaScript (-(253 - 1)).
+- [`Number.MIN_VALUE`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE)
+ - : La plus petite valeur positive qu'on peut représenter en JavaScript, c'est-à-dire le nombre le plus près de zéro qui n'est pas égal à zéro et qu'on peut représenter en JavaScript.
+- [`Number.NaN`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/NaN)
- : Une valeur spéciale pour représenter les valeurs non-numériques (**NaN** correspond à « **N**ot **a** **N**umber » en anglais, qui signifie « n'est pas un nombre »).
-- {{jsxref("Number.NEGATIVE_INFINITY")}}
- - : Une valeur spéciale pour représenter l'infini négatif.
-- {{jsxref("Number.POSITIVE_INFINITY")}}
- - : Une valeur spéciale pour représenter l'infini (positif).
-- {{jsxref("Number.prototype")}}
- - : Cet objet permet d'ajouter des propriétés aux instances de `Number`.
+- [`Number.NEGATIVE_INFINITY`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY)
+ - : Une valeur spéciale pour représenter l'infini négatif. Cette valeur est renvoyée quand on dépasse les valeurs représentables.
+- [`Number.POSITIVE_INFINITY`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY)
+ - : Une valeur spéciale pour représenter l'infini (positif). Cette valeur est renvoyée quand on dépasse les valeurs représentables.
-## Méthodes
+## Méthodes statiques
-- {{jsxref("Number.isNaN()")}}
- - : Cette méthode permet de déterminer si la valeur passée en argument vaut `NaN`.
-- {{jsxref("Number.isFinite()")}}
+- [`Number.isFinite()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite)
- : Cette méthode permet de déterminer si la valeur numérique passée en argument est un nombre fini.
-- {{jsxref("Number.isInteger()")}}
+- [`Number.isInteger()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger)
- : Cette méthode permet de déterminer si la valeur passée en argument est un entier.
-- {{jsxref("Number.isSafeInteger()")}}
- - : Cette méthode permet de déterminer si la valeur passée en argument peut correctement être représentée comme un entier en JavaScript (savoir si elle est comprise entre `-(2^53 - 1)` et `2^53 - 1`).
-- {{jsxref("Number.toInteger()")}} {{deprecated_inline}}
- - : Cette méthode est utilisée afin d'évaluer et de convertir la valeur passée en argument en entier (ou en l'{{jsxref("Infinity", "infini","",1)}}). Cette méthode a été supprimée.
-- {{jsxref("Number.parseFloat()", "Number.parseFloat(string )")}}
- - : Cette méthode correspond à la méthode {{jsxref("parseFloat", "parseFloat()")}} de l'objet global.
-- {{jsxref("Number.parseInt()", "Number.parseInt(string , [radix ])")}}
- - : Cette méthode correspond à la méthode {{jsxref("parseInt", "parseInt()")}} de l'objet global.
+- [`Number.isNaN()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN)
+ - : Cette méthode permet de déterminer si la valeur passée en argument vaut `NaN`.
+- [`Number.isSafeInteger()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger)
+ - : Cette méthode permet de déterminer si la valeur passée en argument peut correctement être représentée comme un entier en JavaScript (savoir si elle est comprise entre -(253 - 1) et 253 - 1).
+- [`Number.parseFloat()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat)
+ - : Cette méthode correspond à la méthode [`parseFloat()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/parseFloat) de l'objet global.
+- [`Number.parseInt()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt)
+ - : Cette méthode correspond à la méthode [`parseInt()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/parseInt) de l'objet global.
-## Les instances de `Number`
+## Propriétés des instances
-Toutes les instances de `Number` héritent de {{jsxref("Number.prototype")}}. Il est possible de modifier le prototype du constructeur `Number` pour affecter toutes les instances de `Number`.
+Ces propriétés sont définies sur `Number.prototype` et partagées par l'ensemble des instances de `Number`.
-### Méthodes
+- [`Number.prototype.constructor`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor)
+ - : La fonction utilisée comme constructeur pour créer l'instance objet. Pour les instances `Number`, la valeur initiale est le constructeur [`Number()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/Number).
-- {{jsxref("Number.prototype.toExponential()" ,"Number.prototype.toExponential(fractionDigits )")}}
+### Méthodes des instances
+
+- [`Number.prototype.toExponential()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toExponential)
- : Retourne une chaîne représentant le nombre en notation exponentielle.
-- {{jsxref("Number.prototype.toFixed()", "Number.prototype.toFixed(digits )")}}
- - : Retourne une chaîne représentant le nombre avec la notation virgule fixe.
-- {{jsxref("Number.prototype.toLocaleString()", "Number.prototype.toLocaleString([locales [, options ]])")}}
- - : Retourne une chaîne avec une représentation sensible à la langue de ce nombre. Surcharge la méthode {{jsxref("Object.prototype.toLocaleString()")}}.
-- {{jsxref("Number.prototype.toPrecision()", "Number.prototype.toPrecision(precision )")}}
- - : Retourne une chaîne représentant le nombre avec une précision donnée en notation virgule fixe ou exponentielle.
-- {{jsxref("Number.prototype.toString()", "Number.prototype.toString([radix ])")}}
- - : Retourne une chaîne représentant le nombre dans une base numérique (radix) donnée. Surcharge la méthode {{jsxref("Object.prototype.toString()")}}.
-- {{jsxref("Number.prototype.valueOf()")}}
- - : Retourne la valeur primitive de l'objet spécifié. Surcharge la méthode {{jsxref("Object.prototype.valueOf()")}}.
+- [`Number.prototype.toFixed()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed)
+ - : Retourne une chaîne représentant le nombre avec la notation en virgule fixe.
+- [`Number.prototype.toLocaleString()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString)
+ - : Retourne une chaîne avec une représentation du nombre tenant compte de la locale. Surcharge la méthode [`Object.prototype.toLocaleString()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toLocaleString).
+- [`Number.prototype.toPrecision()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision)
+ - : Retourne une chaîne représentant le nombre avec une précision donnée en notation en virgule fixe ou exponentielle.
+- [`Number.prototype.toString()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toString)
+ - : Retourne une chaîne représentant le nombre dans une base numérique donnée. Surcharge la méthode [`Object.prototype.toString()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toString).
+- [`Number.prototype.valueOf()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number/valueOf)
+ - : Retourne la valeur primitive de l'objet spécifié. Surcharge la méthode [`Object.prototype.valueOf()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf).
## Exemples
### Utiliser l'objet `Number` pour affecter des valeurs numériques à des variables
-Dans l'exemple suivant, on utilise les propriétés de l'objet `Number` pour affecter des valeurs à des variables numériques :
+Dans l'exemple suivant, on utilise les propriétés de l'objet `Number` pour affecter des valeurs à des variables numériques :
```js
-var plusGrandNombre = Number.MAX_VALUE;
-var plusPetitNombre = Number.MIN_VALUE;
-var infini = Number.POSITIVE_INFINITY;
-var infiniNégatif = Number.NEGATIVE_INFINITY;
-var nonNumérique = Number.NaN;
+const plusGrandNombre = Number.MAX_VALUE;
+const plusPetitNombre = Number.MIN_VALUE;
+const infini = Number.POSITIVE_INFINITY;
+const infiniNégatif = Number.NEGATIVE_INFINITY;
+const nonNumérique = Number.NaN;
```
### Intervalle entier pour `Number`
-Dans l'exemple suivant, on illustre les valeurs numériques maximales et minimales (exclues) qu'on peut représenter avec un nombre en JavaScript (pour plus de détails, [voir le chapitre 6.1.6 du standard ECMAScript](https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type)) :
+Dans l'exemple suivant, on illustre les valeurs numériques entières maximales et minimales qu'on peut représenter avec une valeur `Number` :
```js
-var biggestInt = 9007199254740992; //Number.MAX_SAFE_INTEGER+1 (2^53-1)
-var smallestInt = -9007199254740992; //Number.MIN_SAFE_INTEGER-1 -(2^53-1)
+const biggestInt = Number.MAX_SAFE_INTEGER; // (2**53 - 1) => 9007199254740991
+const smallestInt = Number.MIN_SAFE_INTEGER; // -(2**53 - 1) => -9007199254740991
```
-Lorsqu'on analyse et convertit des données JSON, les valeurs en dehors de cet intervalle peuvent entraîner des erreurs ou des corruptions de valeurs lors de leurs conversions. Selon les objets qu'on souhaite représenter, on peut utiliser {{jsxref("String")}} dans certains cas pour représenter certaines valeurs.
+Lorsqu'on analyse et convertit des données JSON, les valeurs en dehors de cet intervalle peuvent entraîner des erreurs ou des corruptions de valeurs lors de leurs conversions.
+
+Selon les objets qu'on souhaite représenter, on peut utiliser [`String`](/fr/docs/Web/JavaScript/Reference/Global_Objects/String) dans certains cas pour représenter certaines valeurs.
-### Utiliser `Number` pour convertir un objet `Date`
+Pour les plus grands nombres, on pourra utiliser le type [`BigInt`](/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt).
-Dans l'exemple suivant, on convertit un objet {{jsxref("Date")}} en une valeur numérique grâce à la fonction `Number` :
+### Utiliser `Number()` pour convertir un objet `Date`
+
+Dans l'exemple suivant, on convertit un objet [`Date`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Date) en une valeur numérique grâce à la fonction `Number()` :
```js
-var d = new Date("December 17, 1995 03:24:00");
+const d = new Date("1995-12-17T03:24:00");
console.log(Number(d));
```
-Ceci affichera "819167040000".
+Ceci affichera `819199440000`.
-### Convertir une chaîne représentant une valeur numérique en un nombre
+### Convertir une chaîne de caractères représentant une valeur numérique, ou `null` en un nombre
```js
Number("123"); // 123
+Number("123") === 123; // true
Number("12.3"); // 12.3
Number("12.00"); // 12
Number("123e-1"); // 12.3
Number(""); // 0
+Number(null); // 0
Number("0x11"); // 17
Number("0b11"); // 3
Number("0o11"); // 9
@@ -140,8 +232,6 @@ Number("100a"); // NaN
Number("-Infinity"); // -Infinity
```
-> **Note :** On pourra également convertir `null` en `0` grâce à `Number` : `Number(null)` donnera `0`.
-
## Spécifications
{{Specifications}}
@@ -152,8 +242,8 @@ Number("-Infinity"); // -Infinity
## Voir aussi
-- {{jsxref("NaN")}}
-- L'objet global {{jsxref("Math")}}
-- [Les types de données en JavaScript](/fr/docs/Web/JavaScript/Structures_de_données#Le_type_nombre)
-- [Un billet sur le type `Number` (en anglais)](https://medium.com/@maximus.koretskyi/javascripts-number-type-8d59199db1b6#.9whwe88tz)
-- Représenter de grands entiers avec une précision arbitraire : {{jsxref("BigInt")}}
+- [Une prothèse d'émulation (polyfill ) du comportement moderne de `Number` (dont la prise en charge des littéraux binaires et octaux) dans la bibliothèque `core-js`](https://github.com/zloirock/core-js#ecmascript-number)
+- [`NaN`](/fr/docs/Web/JavaScript/Reference/Global_Objects/NaN)
+- [Les opérateurs arithmétiques](/fr/docs/Web/JavaScript/Reference/Operators#opérateurs_arithmétiques)
+- [`Math`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Math)
+- [`BigInt`](/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt)
diff --git a/files/fr/web/javascript/reference/global_objects/typedarray/slice/index.md b/files/fr/web/javascript/reference/global_objects/typedarray/slice/index.md
index 8db67bc548de61..1090869590c544 100644
--- a/files/fr/web/javascript/reference/global_objects/typedarray/slice/index.md
+++ b/files/fr/web/javascript/reference/global_objects/typedarray/slice/index.md
@@ -1,26 +1,30 @@
---
title: TypedArray.prototype.slice()
slug: Web/JavaScript/Reference/Global_Objects/TypedArray/slice
+l10n:
+ sourceCommit: b2a5f62d66b4e3d71704017d0fab7ad710e68057
---
{{JSRef}}
-La méthode **`slice()`** renvoie une copie superficielle (shallow copy) d'un fragment du tableau typé courant dans un nouveau tableau typé. Cette méthode utilise le même algorithme que {{jsxref("Array.prototype.slice()")}}_._ _TypedArray_ est utilisé par la suite de façon générique pour réprésenter l'un des [types de tableaux typés](/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray#Les_objets_TypedArray).
+La méthode **`slice()`** des instances de [`TypedArray`](/fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) renvoie une copie d'un fragment du tableau typé courant dans un nouveau tableau typé. La portion est prise entre les paramètres `début` (inclus) et `fin` (non-inclus) qui correspondent aux indices des éléments du tableau typé courant. Le tableau typé original ne sera pas modifié. Cette méthode utilise le même algorithme que [`Array.prototype.slice()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)
-{{EmbedInteractiveExample("pages/js/typedarray-slice.html")}}
+{{EmbedInteractiveExample("pages/js/typedarray-slice.html", "shorter")}}
## Syntaxe
-```js
-typedarray.slice([début[, fin]])
+```js-nolint
+slice()
+slice(début)
+slice(début, fin)
```
## Paramètres
- `début` {{optional_inline}}
- - : L'indice (compté à partir de zéro) à partir duquel commencer le fragment. Si l'indice fourni est négatif, `début` indiquera le décalage par rapport à la fin de la séquence. Par exemple, `slice(-2)` extrait les deux derniers éléments de la séquence. Par défaut, si `début` n'est pas utilisé, `slice()` commencera à partir de l'indice `0`.
+ - : L'indice (compté à partir de zéro), [converti en entier](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number#conversion_entière), à partir duquel commencer le fragment.
- `fin` {{optional_inline}}
- - : L'indice (compté à partir de zéro) jusqu'auquel extraire le fragment. Le fragment obtenu n'incluera pas l'élément situé à l'indice `fin`. `slice(1,4)` extrait par exemple à partir du deuxième élément et jusqu'au quatrième (c'est-à-dire les éléments dont les indices respectifs sont 1, 2, et 3). Si l'indice utilisé est négatif, `fin` indiquera le décalage par rapport à la fin de la séquence. Ainsi, `slice(2,-1)` extraira à partir du troisième élément et jusqu'à l'avant dernier élément (compris). Par défaut, si `fin` n'est pas utilisé, `slice()` extraira les éléments jusqu'à la fin de la séquence (`arr.length`).
+ - : L'indice (compté à partir de zéro), [converti en entier](/fr/docs/Web/JavaScript/Reference/Global_Objects/Number#conversion_entière), jusqu'auquel extraire le fragment. Le fragment obtenu n'inclura pas l'élément situé à l'indice `fin`.
### Valeur de retour
@@ -28,39 +32,20 @@ Un nouveau tableau typé qui contient les éléments extraits.
## Description
-La méthode `slice()` ne modifie pas le tableau typé courant, elle renvoie une copie superficielle (_shallow copy_) du tableau typé original.
-
-Si un nouvel élément est ajouté à l'un des deux tableaux typés, l'autre ne sera pas impacté.
+Voir [`Array.prototype.slice()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) pour plus détails. Cette méthode n'est pas générique et peut uniquement être appelée sur les instances de tableaux typés.
## Exemples
+### Renvoyer un fragment d'un tableau typé existant
+
```js
-var uint8 = new Uint8Array([1, 2, 3]);
+const uint8 = new Uint8Array([1, 2, 3]);
uint8.slice(1); // Uint8Array [ 2, 3 ]
uint8.slice(2); // Uint8Array [ 3 ]
uint8.slice(-2); // Uint8Array [ 2, 3 ]
uint8.slice(0, 1); // Uint8Array [ 1 ]
```
-## Prothèse d'émulation (_polyfill_)
-
-Il n'existe pas d'objet global intitulé _TypedArray_, la prothèse doit donc uniquement être employée si nécessaire :
-
-```js
-// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice
-if (!Uint8Array.prototype.slice) {
- Object.defineProperty(Uint8Array.prototype, "slice", {
- value: function (begin, end) {
- return new Uint8Array(Array.prototype.slice.call(this, begin, end));
- },
- });
-}
-```
-
-De plus cette prothèse n'est pas parfaite car elle renvoie une instance d'`Array` et pas de `Uint8Array`. Elle manque donc des propriétés normalement associées aux objets `TypedArray`.
-
-S'il faut également prendre en charge les moteurs JavaScript qui ne prennent pas en charge la méthode {{jsxref("Object.defineProperty")}}, mieux vaut ne pas ajouter de prothèse du tout pour `TypedArray.prototype` car on ne peut pas les rendre non-énumérables.
-
## Spécifications
{{Specifications}}
@@ -71,4 +56,8 @@ S'il faut également prendre en charge les moteurs JavaScript qui ne prennent pa
## Voir aussi
-- {{jsxref("Array.prototype.slice()")}}
+- [Une prothèse d'émulation (polyfill ) pour `TypedArray.prototype.slice()` dans la bibliothèque `core-js`](https://github.com/zloirock/core-js#ecmascript-typed-arrays)
+- [Le guide sur les tableaux typés en JavaScript](/fr/docs/Web/JavaScript/Guide/Typed_arrays)
+- [`TypedArray`](/fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray)
+- [`Array.prototype.slice()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)
+- [`String.prototype.slice()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/String/slice)
diff --git a/files/fr/web/media/formats/image_types/index.md b/files/fr/web/media/formats/image_types/index.md
index 0374dc1f38d2ae..01e9a6971248b0 100644
--- a/files/fr/web/media/formats/image_types/index.md
+++ b/files/fr/web/media/formats/image_types/index.md
@@ -891,7 +891,7 @@ Le JPEG est en fait un format de données pour les photos compressées, plutôt
### PNG (Portable Network Graphics)
-Le [PNG](/fr/docs/Glossary/PNG) (prononcé "**png**") utilise une compression sans perte ou avec perte afin de fournir une compression plus efficace, et prend en charge des profondeurs de couleurs plus élevées que [GIF](#gif), ainsi qu'une transparence alpha complète.
+Le format d'image [PNG](/fr/docs/Glossary/PNG) utilise une compression sans perte, prend en charge des profondeurs de couleurs plus élevées que le [GIF](#gif), est plus efficace, et prend complètement en charge la transparence alpha.
Le format PNG est largement soutenu, tous les principaux navigateurs offrant une prise en charge complète de ses fonctionnalités. Internet Explorer, qui a introduit le support PNG dans les versions 4-5, ne l'a pas entièrement pris en charge avant IE 9, et a connu de nombreux bogues tristement célèbres pendant de nombreuses années, y compris dans l'Internet Explorer 6, autrefois omniprésent. Cela a ralenti l'adoption de la PNG, mais elle est maintenant couramment utilisée, surtout lorsqu'il faut reproduire avec précision l'image source.
diff --git a/files/fr/web/svg/applying_svg_effects_to_html_content/index.md b/files/fr/web/svg/applying_svg_effects_to_html_content/index.md
index fce864a0f27b2d..440f1c64efe9a8 100644
--- a/files/fr/web/svg/applying_svg_effects_to_html_content/index.md
+++ b/files/fr/web/svg/applying_svg_effects_to_html_content/index.md
@@ -3,11 +3,11 @@ title: Application d'effets SVG à du contenu HTML
slug: Web/SVG/Applying_SVG_effects_to_HTML_content
---
-Les navigateurs modernes supportent le format [SVG](/fr-FR/docs/SVG) utilisant du [CSS](/fr-FR/docs/Web/CSS) pour appliquer des effets graphiques au contenu HTML.
+Les navigateurs modernes supportent le format [SVG](/fr/docs/Web/SVG) utilisant du [CSS](/fr/docs/Web/CSS) pour appliquer des effets graphiques au contenu HTML.
-Vous pouvez éditer un SVG avec du CSS, soit directement dans le document, soit dans une feuille de style externe. Il y a 3 propriétés que vous pouvez utiliser : [`mask`](/fr-FR/docs/Web/CSS/mask), [`clip-path`](/fr-FR/docs/Web/CSS/clip-path) et [`filter`](/fr-FR/docs/Web/CSS/filter).
+Vous pouvez éditer un SVG avec du CSS, soit directement dans le document, soit dans une feuille de style externe. Il y a 3 propriétés que vous pouvez utiliser : [`mask`](/fr/docs/Web/CSS/mask), [`clip-path`](/fr/docs/Web/CSS/clip-path) et [`filter`](/fr/docs/Web/CSS/filter).
-> **Note :** Dans des fichiers externes, les références à un SVG doivent être à la [même origine](/fr-FR/docs/Web/Security/Same-origin_policy) que le document de référence.
+> **Note :** Dans des fichiers externes, les références à un SVG doivent être à la [même origine](/fr/docs/Web/Security/Same-origin_policy) que le document de référence.
## Utilisation de SVG intégré
@@ -21,7 +21,7 @@ Pour appliquer un effet CSS à un SVG, vous devez dans un premier temps créer l
```
-Dans l'exemple ci-dessus, tous les paragraphes utilisent un [SVG ``](/fr/docs/Web/SVG/Element/mask) avec l'[ID](/fr-FR/docs/Web/HTML/Global_attributes/id) de `my-mask`.
+Dans l'exemple ci-dessus, tous les paragraphes utilisent un [SVG ``](/fr/docs/Web/SVG/Element/mask) avec l'[ID](/fr/docs/Web/HTML/Global_attributes/id) de `my-mask`.
### Appliquer un masque
@@ -126,7 +126,7 @@ function toggleRadius() {
### Exemple : Filtres
-Cet exemple montre comment utiliser des filtres avec un SVG. À l'aide du CSS, nous appliquons plusieurs filtres à trois éléments à la fois dans leur état normal, que quand ils sont survolés par la souris ([hover](/fr-FR/docs/Web/CSS/:hover)).
+Cet exemple montre comment utiliser des filtres avec un SVG. À l'aide du CSS, nous appliquons plusieurs filtres à trois éléments à la fois dans leur état normal, que quand ils sont survolés par la souris ([hover](/fr/docs/Web/CSS/:hover)).
```html
@@ -226,7 +226,7 @@ pre.target:hover {
### Exemple : Texte flouté
-Pour flouter le texte, Webkit a un filtre CSS (préfixé) appelé blur (voir aussi [CSS filter](/fr-FR/docs/Web/CSS/filter#blur%28%29_2)). Vous pouvez obtenir le même effet en utilisant des filtres SVG.
+Pour flouter le texte, Webkit a un filtre CSS (préfixé) appelé blur (voir aussi [CSS filter](/fr/docs/Web/CSS/filter#blur)). Vous pouvez obtenir le même effet en utilisant des filtres SVG.
```html
Time to clean my glasses
@@ -267,6 +267,6 @@ Le SVG est alors importé depuis un fichier nommé `resources.svg`, utilisant `c
## Voir aussi
-- [SVG](/fr-FR/docs/SVG)
+- [SVG](/fr/docs/Web/SVG)
- [SVG Effects for HTML Content](http://robert.ocallahan.org/2008/06/applying-svg-effects-to-html-content_04.html) (blog post)
- [\[archive.org\] Web Tech Blog » Blog Archive » SVG External Document References](http://web.archive.org/web/20120512132948/https://developer.mozilla.org/web-tech/2008/10/10/svg-external-document-references/)
diff --git a/files/fr/web/xslt/using_the_mozilla_javascript_interface_to_xsl_transformations/index.md b/files/fr/web/xslt/using_the_mozilla_javascript_interface_to_xsl_transformations/index.md
deleted file mode 100644
index 3baca3acba349d..00000000000000
--- a/files/fr/web/xslt/using_the_mozilla_javascript_interface_to_xsl_transformations/index.md
+++ /dev/null
@@ -1,103 +0,0 @@
----
-title: Utilisation de XSLTProcessor pour les transformations XSL
-slug: Web/XSLT/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations
-l10n:
- sourceCommit: 5d88855e1d963ca0b0c3c14aeaa6414f8386c64e
----
-
-Ce document décrit l'utilisation de l'interface JavaScript [`XSLTProcessor`](/fr/docs/Web/API/XSLTProcessor) pour effectuer des transformations XSL.
-
-## Créer une instance `XSLTProcessor`
-
-Pour commencer, on crée un objet [`XSLTProcessor`](/fr/docs/Web/API/XSLTProcessor) à l'aide du constructeur :
-
-```js
-const processor = new XSLTProcessor();
-```
-
-## Indiquer la feuille de style à utiliser pour la transformation
-
-Avant d'utiliser l'opérateur de transformation, il faut importer la feuille de style à l'aide de la méthode [`XSLTProcessor.importStylesheet()`](/fr/docs/Web/API/XSLTProcessor/importStylesheet). Cette dernière prend un seul paramètre, le nœud DOM de la feuille de style XSLT à importer.
-
-> **Note :** L'import est dynamique. Cela signifie que si la feuille de style est modifiée après l'import, cela aura un impact sur le traitement ultérieur. Plutôt que de modifier le DOM, il est recommandé d'utiliser des paramètres, une solution souvent plus simple et qui donne de meilleures performances.
-
-```js
-const testTransform = document.implementation.createDocument("", "test", null);
-
-// Un exemple pour obtenir une transformation dans un script
-// XMLDocument.load() est asynchrone et le traitement a lieu
-// dans le gestionnaire onload
-testTransform.addEventListener("load", onload, false);
-
-// On privilégiera XMLHTTPRequest ou fetch() à load()
-testTransform.load("test-transform.xml");
-
-function onload() {
- processor.importStylesheet(testTransform);
-}
-```
-
-[`XSLTProcessor.importStylesheet()`](/fr/docs/Web/API/XSLTProcessor/importStylesheet) prend un argument en entrée, un nœud DOM. Si ce nœud est un document, on peut passer une transformation XSL complète ou [un élément de résultat littéral](https://www.w3.org/TR/2021/REC-xslt20-20210330/#literal-result-element), sinon, ce doit être un élément `xsl:stylesheet` ou `xsl:transform`.
-
-## Transformer le document
-
-On peut utiliser les méthodes [`XSLTProcessor.transformToDocument()`](/fr/docs/Web/API/XSLTProcessor/transformToDocument) ou [`XSLTProcessor.transformToFragment()`](/fr/docs/Web/API/XSLTProcessor/transformToFragment) afin de transformer un document en utilisant la feuille de style XSLT importée.
-
-### `transformToDocument()`
-
-[`XSLTProcessor.transformToDocument()`](/fr/docs/Web/API/XSLTProcessor/transformToDocument) prend un argument : le nœud source à transformer et renvoie un nouvel objet [`Document`](/fr/docs/Web/API/Document) qui est le résultat de la transformation :
-
-```js
-const newDocument = processor.transformToDocument(domToBeTransformed);
-```
-
-L'objet résultant dépend de [la méthode de sortie](https://www.w3.org/TR/2021/REC-xslt20-20210330/#element-output) de la feuille de style :
-
-- `"html"`
- - : [`HTMLDocument`](/fr/docs/Web/API/HTMLDocument)
-- `"xml"`
- - : [`XMLDocument`](/fr/docs/Web/API/XMLDocument)
-- `"text"`
- - : [`XMLDocument`](/fr/docs/Web/API/XMLDocument) avec un seul élément racine, ``, dont l'enfant est le texte.
-
-### `transformToFragment()`
-
-Il est aussi possible d'utiliser [`XSLTProcessor.transformToFragment()`](/fr/docs/Web/API/XSLTProcessor/transformToFragment) qui renverra un nœud [`DocumentFragment`](/fr/docs/Web/API/DocumentFragment). Cette méthode est pratique, car ajouter un fragment à un autre nœud permet d'ajouter tous les enfants de ce fragment, qui n'est pas fusionné. Les fragments sont donc utiles lorsqu'on souhaite déplacer des nœuds et les stocker, sans avoir besoin d'un objet représentant un document complet.
-
-[`XSLTProcessor.transformToFragment()`](/fr/docs/Web/API/XSLTProcessor/transformToFragment) prend deux arguments : le document source qu'on souhaite transformer (comme précédemment), et l'objet [`Document`](/fr/docs/Web/API/Document) qui sera le propriétaire du fragment (tout fragment doit être possédé par un document).
-
-```js
-const ownerDocument = document.implementation.createDocument("", "test", null);
-const newFragment = processor.transformToFragment(
- domToBeTransformed,
- ownerDocument,
-);
-```
-
-[`XSLTProcessor.transformToFragment()`](/fr/docs/Web/API/XSLTProcessor/transformToFragment) produira uniquement des objets DOM HTML si le document propriétaire est lui-même un objet [`HTMLDocument`](/fr/docs/Web/API/HTMLDocument), ou si la méthode de sortie de la feuille de style est `"html"`. Elle ne produira **pas** d'objets DOM HTML si on a uniquement l'élément de plus haut niveau du résultat qui est [``](/fr/docs/Web/HTML/Element/html) ([`XSLTProcessor.transformToFragment()`](/fr/docs/Web/API/XSLTProcessor/transformToFragment) étant rarement utilisée pour créer cet élément). Si vous souhaitez surcharger ce comportement, vous pouvez définir la méthode de sortie normalement, de façon standard.
-
-### Transformer du HTML
-
-La transformation de nœuds HTML à l'aide de XSLT n'est pas prise en charge. Certaines choses pourraient fonctionner en utilisant les noms des nœuds en minuscules dans les motifs et les expressions, et en les considérant comme appartenant à l'espace de noms nul. Toutefois, ce contournement n'est pas testé et pourrait ne pas fonctionner dans tous les situations.
-
-En revanche, la transformation de documents XHTML doit fonctionner.
-
-## Définir des paramètres
-
-Vous pouvez contrôler [des paramètres pour la feuille de style](https://www.w3.org/TR/1999/REC-xslt-19991116/#variables) à l'aide des méthodes [`XSLTProcessor.setParameter()`](/fr/docs/Web/API/XSLTProcessor/setParameter), [`XSLTProcessor.getParameter()`](/fr/docs/Web/API/XSLTProcessor/getParameter), et [`XSLTProcessor.removeParameter()`](/fr/docs/Web/API/XSLTProcessor/removeParameter). Toutes ces méthodes prennent un URI d'un espace de noms et un nom local comme deux premiers paramètres. [`XSLTProcessor.setParameter()`](/fr/docs/Web/API/XSLTProcessor/setParameter) en prend un troisième : la valeur du paramètre à définir. Voir [cet article sur la définition des paramètres](/fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters) pour un exemple.
-
-## Réinitialisation
-
-L'interface [`XSLTProcessor`](/fr/docs/Web/API/XSLTProcessor) implémente également une méthode [`XSLTProcessor.reset()`](/fr/docs/Web/API/XSLTProcessor/reset), qui peut être utilisée afin de supprimer toutes les feuilles de style et paramètres passés à l'opérateur de traitement afin de le ramener dans son état initial.
-
-## Ressources
-
-Les fichiers suivants reflètent l'interface de l'objet [`XSLTProcessor`](/fr/docs/Web/API/XSLTProcessor) :
-
-- [`XSLTProcessor.webidl`](https://dxr.mozilla.org/mozilla-central/source/dom/webidl/XSLTProcessor.webidl)
-- [`txXSLTProcessor.cpp`](https://dxr.mozilla.org/mozilla-central/source/dom/xslt/xslt/txXSLTProcessor.cpp)
-
-## Voir aussi
-
-- [L'interface JavaScript XSLT dans Gecko](/fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko)
-- [`XMLHTTPRequest`](/fr/docs/Web/API/XMLHttpRequest) ou [`fetch()`](/fr/docs/Web/API/fetch) qui doivent désormais être utilisés à la place de `XMLDocument.load()` mentionné ci-avant
diff --git a/files/fr/web/xslt/xslt_js_interface_in_gecko/advanced_example/index.md b/files/fr/web/xslt/xslt_js_interface_in_gecko/advanced_example/index.md
deleted file mode 100644
index dbfcfe3b2885b5..00000000000000
--- a/files/fr/web/xslt/xslt_js_interface_in_gecko/advanced_example/index.md
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: Exemple avancé
-slug: Web/XSLT/XSLT_JS_interface_in_Gecko/Advanced_Example
----
-
-## Exemple avancé
-
-Dans l'exemple avancé, nous allons trier plusieurs `div` selon leur contenu. L'exemple permet de trier le contenu plusieurs fois, en alternant entre le tri ascendant et le tri descendant. Le JavaScript ne charge que le fichier .xsl la première fois, et définit la variable `xslloaded` à `true` une fois que le fichier est fini de chargé. En utilisant la méthode `getParameter` sur l'objet `XSLTProcessor` , le code peut estimer s'il faut trier de façon ascendante ou descendante. Il trie par défaut de manière ascendante si le paramètre est vide (lors du premier tri, car sa valeur n'est pas définie dans le fichier XSLT). La valeur du tri est définie à l'aide de `setParameter`.
-
-La fichier XSLT a un paramètre appelé `myOrder` que le JavaScript définit pour changer la méthode de tri. L'attribut `xsl:sort` d'ordre des éléments peut accéder à la valeur du paramètre en utilisant `$myOrder`. Cependant, la valeur a besoin d'être une expression XPath et non pas une chaîne, ainsi on utilise `{$myOrder}`. L'utilisation de `{}` évalue le contenu comme une expression XPath.
-
-Une fois la transformation complétée, le résultat est ajouté au document, comme indiqué dans l'exemple.
-
-**Figure 7 : Tri selon le contenu des divvoir l'exemple**
-
-_Fragment XHTML :_
-
-```html
-
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
-```
-
-_JavaScript_
-
-```js
-var xslRef;
-var xslloaded = false;
-var xsltProcessor = new XSLTProcessor();
-var myDOM;
-
-var xmlRef = document.implementation.createDocument("", "", null);
-
-function sort() {
- if (!xslloaded) {
- p = new XMLHttpRequest();
- p.open("GET", "example2.xsl", false);
- p.send(null);
-
- xslRef = p.responseXML;
- xsltProcessor.importStylesheet(xslRef);
- xslloaded = true;
- }
-
- // création d'un nouveau document XML en mémoire
- xmlRef = document.implementation.createDocument("", "", null);
-
- // nos voulons déplacer une partie du DOM depuis le document HTML vers le document XML.
- // importNode est utilisé pour cloner les nœuds que nous voulons traiter via XSLT
- // true permet une copie profonde
- var myNode = document.getElementById("example");
- var clonedNode = xmlRef.importNode(myNode, true);
-
- // après le clonage, nous ajoutons
- xmlRef.appendChild(clonedNode);
-
- // définition du paramètre de tri dans le fichier XSL
- var sortVal = xsltProcessor.getParameter(null, "myOrder");
-
- if (sortVal == "" || sortVal == "descending") {
- xsltProcessor.setParameter(null, "myOrder", "ascending");
- } else {
- xsltProcessor.setParameter(null, "myOrder", "descending");
- }
-
- // initialisation de la transformation
- var fragment = xsltProcessor.transformToFragment(xmlRef, document);
-
- // effacement des contenus
- document.getElementById("example").innerHTML = "";
-
- myDOM = fragment;
- // ajout du nouveau contenu depuis la transformation
- document.getElementById("example").appendChild(fragment);
-}
-```
-
-_Feuille de style XSL :_
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
diff --git a/files/fr/web/xslt/xslt_js_interface_in_gecko/basic_example/index.md b/files/fr/web/xslt/xslt_js_interface_in_gecko/basic_example/index.md
deleted file mode 100644
index ce9dda908b0100..00000000000000
--- a/files/fr/web/xslt/xslt_js_interface_in_gecko/basic_example/index.md
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: Exemple simple
-slug: Web/XSLT/XSLT_JS_interface_in_Gecko/Basic_Example
-l10n:
- sourceCommit: 96f68b50c1eac0af56f185d82c17c9ccaf212b67
----
-
-L'exemple que nous allons voir va charger un fichier XML et lui appliquer une transformation XSL. Nous utiliserons les mêmes fichiers que dans l'exemple [Génération de HTML](/fr/docs/Web/API/XSLTProcessor/Generating_HTML) de l'article [XSLT dans Gecko](/fr/docs/Web/API/XSLTProcessor). Le fichier XML décrit un article et le fichier XSL formate les informations pour l'affichage.
-
-## Fichier XML
-
-```xml
-
-
- My Article
-
- Mr. Foo
- Mr. Bar
-
-
- The rain in Spain stays mainly in the plains.
-
-
-```
-
-## Feuille de style XSLT
-
-```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Authors:
-
-
-
-
-
-
-
-
-
-
-
-
-
- --
-
-
- ::
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-L'exemple charge en mémoire les deux fichiers XSL (`xslStylesheet`) et .XML (`xmlDoc`) à l'aide d'une requête [`XMLHTTPRequest`](/fr/docs/Web/API/XMLHttpRequest) synchrone. Le fichier XSL est alors importé (`xsltProcessor.importStylesheet(xslStylesheet)`) et la transformation exécutée (`xsltProcessor.transformToFragment(xmlDoc, document)`). Cela permet d'extraire des données après le chargement de la page, sans avoir à la rafraîchir.
-
-## Exemple
-
-```js
-let xslStylesheet;
-const xsltProcessor = new XSLTProcessor();
-let myDOM;
-
-let xmlDoc;
-
-function init() {
- // On charge le fichier XSLT, example1.xsl
- let myXMLHTTPRequest = new XMLHttpRequest();
- myXMLHTTPRequest.open("GET", "example1.xsl", false);
- myXMLHTTPRequest.send(null);
-
- xslStylesheet = myXMLHTTPRequest.responseXML;
- xsltProcessor.importStylesheet(xslStylesheet);
-
- // On charge le fichier XML, example1.xml
- myXMLHTTPRequest = new XMLHttpRequest();
- myXMLHTTPRequest.open("GET", "example1.xml", false);
- myXMLHTTPRequest.send(null);
-
- xmlDoc = myXMLHTTPRequest.responseXML;
-
- const fragment = xsltProcessor.transformToFragment(xmlDoc, document);
- myDOM = fragment;
- document.getElementById("example").textContent = "";
- document.getElementById("example").appendChild(fragment);
-}
-```
diff --git a/files/fr/web/xslt/xslt_js_interface_in_gecko/javascript_xslt_bindings/index.md b/files/fr/web/xslt/xslt_js_interface_in_gecko/javascript_xslt_bindings/index.md
deleted file mode 100644
index 1e68bdeec4fb3a..00000000000000
--- a/files/fr/web/xslt/xslt_js_interface_in_gecko/javascript_xslt_bindings/index.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-title: Les liaisons JavaScript/XSLT
-slug: Web/XSLT/XSLT_JS_interface_in_Gecko/JavaScript_XSLT_Bindings
----
-
-## Les liaisons JavaScript/XSLT
-
-JavaScript peut exécuter des transformations XSLT à travers l'objet `XSLTProcessor`. Un fois instancié, un `XSLTProcessor` a une méthode `importStylesheet` qui prend comme argument la feuille de style XSLT à utiliser pour la transformation. La feuille de style doit être passée comme un document XML, ce qui signifie que le fichier .xsl doit être chargé par la page avant d'appeler `importStylesheet`. Cela peut être fait par `XMLHttpRequest` ou par `XMLDocument.load`.
-
-**Figure 1 : Instanciation d'un XSLTProcessor**
-
-```js
-var xsltProcessor = new XSLTProcessor();
-
-// Chargement du fichier xsl à l'aide de XMLHttpRequest synchrone
-// le 3° paramètre est défini à false
-var myXMLHTTPRequest = new XMLHttpRequest();
-myXMLHTTPRequest.open("GET", "example.xsl", false);
-myXMLHTTPRequest.send(null);
-
-var xslRef = myXMLHTTPRequest.responseXML;
-
-// Importation du .xsl
-xsltProcessor.importStylesheet(xslRef);
-```
-
-Pour la transformation réelle, `XSLTProcessor` requiert un document XML, qui est utilisé en conjonction avec le fichier XSL importé pour produire le résultat final. Le document XML peut être un fichier XML séparé chargé comme sur la figure 1, ou il peut être une partie d'une page existante. Pour traiter une partie du DOM d'une page, il est nécessaire de commencer par créer un document XML en mémoire. Considérons que le DOM à traiter est contenu dans un élément avec l'ID `example`, que le DOM peut être « cloné » (ou dupliqué) à l'aide de ma méthode `importNode` du document XML en mémoire. `importNode` permet le transfert d'un fragment DOM entre différents documents, dans ce cas, depuis un document HTML vers un document XML. Le premier paramètre référence le nœud DOM à dupliquer. En définissant le deuxième paramètre à `true`, il dupliquera à l'identique tous les descendants (une copie profonde). Le DOM cloné peut alors être facilement inséré dans le document XML à l'aide de `appendChild`, comme indiqué sur la figure 2.
-
-**Figure 2 : Création d'un document XML à partir d'un DOM document**
-
-```js
-// création d'u nouveau document XML en mémoire
-var xmlRef = document.implementation.createDocument("", "", null);
-
-// nous voulons déplacer une partie du DOM depuis un document HTML vers un document XML.
-// importNode est utilisée pour cloner les nœuds que nous voulons traiter via XSLT
-// true permet une copie conforme
-var myNode = document.getElementById("example");
-var clonedNode = xmlRef.importNode(myNode, true);
-
-// Ajout du DOM cloné dans le document XML
-xmlRef.appendChild(clonedNode);
-```
-
-Une fois la feuille de style importée, `XSLTProcessor` doit exécuter deux méthodes pour la transformations réelle, à savoir `transformToDocument()` et `transformToFragment()`. `transformToDocument()` retourne un document XML entier alors que `transformToFragment()` retourne un fragment de document qui peut être facilement ajouté à un document XML existant. Les deux prennent le document XML comme premier paramètre à transformer. `transformToFragment()` requiert un second paramètre, à savoir l'objet document qui possédera le fragment généré. Si le fragment généré est inséré dans le document HTML courant, passer document est suffisant.
-
-**Figure 2.1 : Création d'un document XML à partir d'une chaîne 'soupe XML'**
-
-Alors que nous pouvons utiliser la méthode `loadXML` d'Internet Explorer pour charger une chaîne contenant du XML, nous devons faire quelques arrangements pour faire la même chose dans Mozilla. Nous devons utiliser le DomParser.no pour créer un document, car c'est géré par le*DomParser* .
-
-```js
-var parser = new DOMParser();
-var doc = parser.parseFromString(aStr, "text/xml");
-```
-
-**Figure 3 : Exécution de la transformation**
-
-```js
-var fragment = xsltProcessor.transformToFragment(xmlRef, document);
-```
diff --git a/files/fr/web/xslt/xslt_js_interface_in_gecko/resources/index.md b/files/fr/web/xslt/xslt_js_interface_in_gecko/resources/index.md
deleted file mode 100644
index d07ebc12254c88..00000000000000
--- a/files/fr/web/xslt/xslt_js_interface_in_gecko/resources/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Ressources
-slug: Web/XSLT/XSLT_JS_interface_in_Gecko/Resources
----
-
-1. [Introduction](/fr/docs/L'interface_XSLT%2f%2fJavaScript_dans_Gecko)
-2. [Les liaisons JavaScript/XSLT](/fr/docs/L'interface_XSLT%2f%2fJavaScript_dans_Gecko/Les_liaisons_JavaScript%2f%2fXSLT)
-3. [Exemple basique](/fr/docs/L'interface_XSLT%2f%2fJavaScript_dans_Gecko/Exemple_basique)
-4. [Définition de paramètres](/fr/docs/L'interface_XSLT%2f%2fJavaScript_dans_Gecko/Définition_de_paramètres)
-5. [Exemple avancé](/fr/docs/L'interface_XSLT%2f%2fJavaScript_dans_Gecko/Exemple_avancé)
-6. [Liste des interfaces](/fr/docs/L'interface_XSLT%2f%2fJavaScript_dans_Gecko/Liste_des_interfaces)
-7. [Ressources](/fr/docs/L'interface_XSLT%2f%2fJavaScript_dans_Gecko/Ressources)
-
-## Ressources
-
-- [XSLT dans Gecko](/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/fr/XSLT_dans_Gecko)
-- [Utilisation de l'interface JavaScript de Mozilla pour les transformations XSL](/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/fr/Utilisation_de_l'interface_JavaScript_de_Mozilla_pour_les_transformations_XSL)
-- [Page du projet XSLT sur Mozilla.org (en)](/fr/docs/Web/XSLT), qui contient une section concernant les problèmes fréquemment rencontrés.
-- [MSDN documentation on IE/XSLT bindings (en)](https://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk30/htm/xmconusingthexslprocessor.asp)
-
-{{Previous("L\'interface XSLT/JavaScript dans Gecko:Liste des interfaces")}}
diff --git a/files/fr/web/xslt/xslt_js_interface_in_gecko/setting_parameters/index.md b/files/fr/web/xslt/xslt_js_interface_in_gecko/setting_parameters/index.md
deleted file mode 100644
index 234e3bfed74900..00000000000000
--- a/files/fr/web/xslt/xslt_js_interface_in_gecko/setting_parameters/index.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: Définition de paramètres
-slug: Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters
----
-
-## Définition de paramètres
-
-Alors que l'exécution de transformations à l'aide des fichiers .xsl et .xml pré codés est utile, la configuration du fichier .xsl par JavaScript peut l'être bien plus. Par exemple, JavaScript et XSLT peuvent être utilisés pour trier des données XML puis les afficher. L'ordre du tri pourra alterner entre le tri ascendant et le tri descendant.
-
-XSLT fournit l'élément `xsl:param`, qui est un descendant de l'élément `xsl:stylesheet`. `XSLTProcessor()` fournit trois méthodes JavaScript pour interagir avec ces paramètres : `setParameter`, `getParameter` et `removeParameter`. Elles prennent toutes comme premier argument l'URI de l'espace de nommage de `xsl:param` (normalement, `param` tombera dans l'espace de nommage par défaut, ainsi le passer à `null` suffira). Le nom local de `xsl:param` est le second argument. `setParameter` requiert un troisième argument, à savoir la valeur à laquelle le paramètre sera défini.
-
-**Figure 7 : Paramètres**
-
-_XSLT :_
-
-```xml
-
-```
-
-_JavaScript :_
-
-```js
-var sortVal = xsltProcessor.getParameter(null, "monOrdre");
-
-if (sortVal == "" || sortVal == "descendant") {
- xsltProcessor.setParameter(null, "monOrdre", "ascendant");
-} else {
- xsltProcessor.setParameter(null, "monOrdre", "descendant");
-}
-```
diff --git a/files/ja/_redirects.txt b/files/ja/_redirects.txt
index cc8bb45a5216d1..59b73b963b98b6 100644
--- a/files/ja/_redirects.txt
+++ b/files/ja/_redirects.txt
@@ -1535,7 +1535,7 @@
/ja/docs/HTML/HTML_Elements/title /ja/docs/Web/HTML/Element/title
/ja/docs/HTML/HTML_Elements/var /ja/docs/Web/HTML/Element/var
/ja/docs/HTML/Introduction /ja/docs/Learn/HTML/Introduction_to_HTML
-/ja/docs/HTML/Sections_and_Outlines_of_an_HTML5_document /ja/docs/orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines
+/ja/docs/HTML/Sections_and_Outlines_of_an_HTML5_document /ja/docs/Web/HTML/Element/Heading_Elements
/ja/docs/HTML/Supported_media_formats /ja/docs/Web/Media/Formats
/ja/docs/HTML/Using_HTML5_audio_and_video /ja/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content
/ja/docs/HTML/属性 /ja/docs/Web/HTML/Attributes
@@ -1575,23 +1575,23 @@
/ja/docs/JavaScript/Guide/Class-Based_vs._Prototype-Based_Languages /ja/docs/conflicting/Web/JavaScript/Inheritance_and_the_prototype_chain
/ja/docs/JavaScript/Guide/Closures /ja/docs/Web/JavaScript/Closures
/ja/docs/JavaScript/Guide/Core_Language_Features /ja/docs/Web/JavaScript/Guide
-/ja/docs/JavaScript/Guide/Creating_New_Objects /ja/docs/Web/JavaScript/Guide/Working_with_Objects#creating_new_objects
-/ja/docs/JavaScript/Guide/Creating_New_Objects-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_Objects#creating_new_objects
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Defining_Getters_and_Setters /ja/docs/Web/JavaScript/Guide/Working_with_Objects#defining_getters_and_setters
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Defining_Getters_and_Setters-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_Objects#defining_getters_and_setters
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Defining_Methods /ja/docs/Web/JavaScript/Guide/Working_with_Objects#defining_methods
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Defining_Methods-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_Objects#defining_methods
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Defining_Properties_for_an_Object_Type /ja/docs/Web/JavaScript/Guide/Working_with_Objects#defining_properties_for_an_object_type
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Deleting_Properties /ja/docs/Web/JavaScript/Guide/Working_with_Objects#deleting_properties
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Deleting_Properties-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_Objects#deleting_properties
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Indexing_Object_Properties /ja/docs/Web/JavaScript/Guide/Working_with_Objects#indexing_object_properties
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Indexing_Object_Properties-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_Objects#indexing_object_properties
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_Object_Initializers /ja/docs/Web/JavaScript/Guide/Working_with_Objects#using_object_initializers
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_Object_Initializers-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_Objects#using_object_initializers
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_a_Constructor_Function /ja/docs/Web/JavaScript/Guide/Working_with_Objects#using_a_constructor_function
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_a_Constructor_Function-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_Objects#using_a_constructor_function
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_this_for_Object_References /ja/docs/Web/JavaScript/Guide/Working_with_Objects#using_this_for_object_references
-/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_this_for_Object_References-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_Objects#using_this_for_object_references
+/ja/docs/JavaScript/Guide/Creating_New_Objects /ja/docs/Web/JavaScript/Guide/Working_with_objects#新しいオブジェクトの作成
+/ja/docs/JavaScript/Guide/Creating_New_Objects-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_objects#新しいオブジェクトの作成
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Defining_Getters_and_Setters /ja/docs/Web/JavaScript/Guide/Working_with_objects#ゲッターとセッターの定義
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Defining_Getters_and_Setters-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_objects#ゲッターとセッターの定義
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Defining_Methods /ja/docs/Web/JavaScript/Guide/Working_with_objects#メソッドの定義
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Defining_Methods-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_objects#メソッドの定義
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Defining_Properties_for_an_Object_Type /ja/docs/Web/JavaScript/Guide/Working_with_objects#オブジェクト型に対するプロパティの定義
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Deleting_Properties /ja/docs/Web/JavaScript/Guide/Working_with_objects#プロパティの削除
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Deleting_Properties-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_objects#プロパティの削除
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Indexing_Object_Properties /ja/docs/Web/JavaScript/Guide/Working_with_objects#オブジェクトプロパティのインデックス付け
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Indexing_Object_Properties-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_objects#オブジェクトプロパティのインデックス付け
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_Object_Initializers /ja/docs/Web/JavaScript/Guide/Working_with_objects#オブジェクト初期化子の使用
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_Object_Initializers-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_objects#オブジェクト初期化子の使用
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_a_Constructor_Function /ja/docs/Web/JavaScript/Guide/Working_with_objects#コンストラクター関数の使用
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_a_Constructor_Function-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_objects#コンストラクター関数の使用
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_this_for_Object_References /ja/docs/Web/JavaScript/Guide/Working_with_objects#オブジェクト参照のための_this_の使用
+/ja/docs/JavaScript/Guide/Creating_New_Objects/Using_this_for_Object_References-redirect-1 /ja/docs/Web/JavaScript/Guide/Working_with_objects#オブジェクト参照のための_this_の使用
/ja/docs/JavaScript/Guide/Details_of_the_Object_Model /ja/docs/conflicting/Web/JavaScript/Inheritance_and_the_prototype_chain
/ja/docs/JavaScript/Guide/Expressions_and_Operators /ja/docs/Web/JavaScript/Guide/Expressions_and_operators
/ja/docs/JavaScript/Guide/Expressions_and_Operators-redirect-1 /ja/docs/Web/JavaScript/Guide/Expressions_and_operators
@@ -2361,7 +2361,7 @@
/ja/docs/SVG_Namespace_Tips_(external) /ja/docs/Web/SVG/Namespaces_Crash_Course
/ja/docs/SVG_improvements_in_Firefox_3 /ja/docs/Mozilla/Firefox/Releases/3/SVG_improvements
/ja/docs/Same_origin_policy_for_JavaScript /ja/docs/Web/Security/Same-origin_policy
-/ja/docs/Sections_and_Outlines_of_an_HTML5_document /ja/docs/orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines
+/ja/docs/Sections_and_Outlines_of_an_HTML5_document /ja/docs/Web/HTML/Element/Heading_Elements
/ja/docs/Security/CSP /ja/docs/Web/HTTP/CSP
/ja/docs/Security/CSP/CSP_policy_directives /ja/docs/Web/HTTP/Headers/Content-Security-Policy
/ja/docs/Security/CSP/Default_CSP_restrictions /ja/docs/Web/HTTP/Headers/Content-Security-Policy
@@ -2378,14 +2378,14 @@
/ja/docs/The_DOM_and_JavaScript /ja/docs/Web/JavaScript/JavaScript_technologies_overview
/ja/docs/The_Importance_of_Correct_HTML_Commenting /ja/docs/orphaned/The_Importance_of_Correct_HTML_Commenting
/ja/docs/The_X-Frame-Options_response_header /ja/docs/Web/HTTP/Headers/X-Frame-Options
-/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko
-/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Advanced_Example /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Advanced_Example
-/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Basic_Example /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Basic_Example
-/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Interface_List /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Interface_List
-/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Introduction /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Introduction
-/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/JavaScript_XSLT_Bindings /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/JavaScript_XSLT_Bindings
-/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Resources /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Resources
-/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Setting_Parameters /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters
+/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko /ja/docs/Web/API/XSLTProcessor
+/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Advanced_Example /ja/docs/Web/API/XSLTProcessor
+/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Basic_Example /ja/docs/Web/API/XSLTProcessor
+/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Interface_List /ja/docs/Web/API/XSLTProcessor
+/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Introduction /ja/docs/Web/API/XSLTProcessor
+/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/JavaScript_XSLT_Bindings /ja/docs/Web/API/XSLTProcessor
+/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Resources /ja/docs/Web/API/XSLTProcessor
+/ja/docs/The_XSLT_JavaScript_Interface_in_Gecko/Setting_Parameters /ja/docs/Web/API/XSLTProcessor
/ja/docs/The_add-on_bar /ja/docs/Mozilla/Firefox/Releases/4/The_add-on_bar
/ja/docs/Tips_for_Authoring_Fast-loading_HTML_Pages /ja/docs/Learn/HTML/Howto/Author_fast-loading_HTML_pages
/ja/docs/Toolkit_API/Official_References /ja/docs/orphaned/Toolkit_API/Official_References
@@ -2555,7 +2555,7 @@
/ja/docs/Using_geolocation /ja/docs/Web/API/Geolocation_API
/ja/docs/Using_gradients /ja/docs/Web/CSS/CSS_images/Using_CSS_gradients
/ja/docs/Using_native_JSON /ja/docs/Web/JavaScript/Reference/Global_Objects/JSON
-/ja/docs/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations /ja/docs/Web/XSLT/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations
+/ja/docs/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations /ja/docs/Web/API/XSLTProcessor
/ja/docs/Using_the_W3C_DOM_Level_1_Core /ja/docs/Web/API/Document_object_model/Using_the_Document_Object_Model
/ja/docs/Using_the_Web_Console https://firefox-source-docs.mozilla.org/devtools-user/web_console/index.html
/ja/docs/Using_the_Web_Console/Helpers https://firefox-source-docs.mozilla.org/devtools-user/web_console/helpers/index.html
@@ -3223,6 +3223,7 @@
/ja/docs/Web/API/XRReferenceSpaceType /ja/docs/Web/API/XRSession/requestReferenceSpace
/ja/docs/Web/API/XRTargetRayMode /ja/docs/Web/API/XRInputSource/targetRayMode
/ja/docs/Web/API/XSLTProcessor/Browser_Differences /ja/docs/orphaned/Web/API/XSLTProcessor/Browser_Differences
+/ja/docs/Web/API/XSLTProcessor/Resources /ja/docs/Web/API/XSLTProcessor
/ja/docs/Web/API/console.dir /ja/docs/Web/API/Console/dir
/ja/docs/Web/API/console.log /ja/docs/Web/API/Console/log
/ja/docs/Web/API/console.time /ja/docs/Web/API/Console/time
@@ -3464,8 +3465,8 @@
/ja/docs/Web/Accessibility/ARIA/forms/Basic_form_hints /ja/docs/conflicting/Web/Accessibility/ARIA_64707ba1917a56654679cbe273e2f4ea
/ja/docs/Web/Accessibility/ARIA/forms/Multipart_labels /ja/docs/Web/Accessibility/ARIA/Multipart_labels
/ja/docs/Web/Accessibility/ARIA/forms/alerts /ja/docs/conflicting/Web/Accessibility/ARIA
-/ja/docs/Web/Accessibility/ARIA/widgets /ja/docs/conflicting/Web/Accessibility/ARIA_229a3bbc8da83524de32990b14561155
-/ja/docs/Web/Accessibility/ARIA/widgets/overview /ja/docs/conflicting/Web/Accessibility/ARIA_229a3bbc8da83524de32990b14561155
+/ja/docs/Web/Accessibility/ARIA/widgets /ja/docs/Web/Accessibility/ARIA
+/ja/docs/Web/Accessibility/ARIA/widgets/overview /ja/docs/Web/Accessibility/ARIA
/ja/docs/Web/Accessibility/Accessibility_FAQ /ja/docs/Web/Accessibility
/ja/docs/Web/Accessibility/Community /ja/docs/Web/Accessibility
/ja/docs/Web/Accessibility/FAQ /ja/docs/Web/Accessibility
@@ -3924,7 +3925,7 @@
/ja/docs/Web/Guide/HTML/HTML5/HTML5_のフォーム /ja/docs/Learn/Forms
/ja/docs/Web/Guide/HTML/Introduction /ja/docs/Learn/HTML/Introduction_to_HTML
/ja/docs/Web/Guide/HTML/Obsolete_things_to_avoid /ja/docs/Learn/HTML/Introduction_to_HTML
-/ja/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines /ja/docs/orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines
+/ja/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines /ja/docs/Web/HTML/Element/Heading_Elements
/ja/docs/Web/Guide/HTML/XHTML /ja/docs/Glossary/XHTML
/ja/docs/Web/Guide/Index /ja/docs/Web/Guide
/ja/docs/Web/Guide/Localizations_and_character_encodings /ja/docs/orphaned/Web/Guide/Localizations_and_character_encodings
@@ -4046,7 +4047,7 @@
/ja/docs/Web/HTML/Link_types/prerender /ja/docs/Web/HTML/Attributes/rel/prerender
/ja/docs/Web/HTML/Optimizing_your_pages_for_speculative_parsing /ja/docs/Glossary/Speculative_parsing
/ja/docs/Web/HTML/Preloading_content /ja/docs/Web/HTML/Attributes/rel/preload
-/ja/docs/Web/HTML/Sections_and_Outlines_of_an_HTML5_document /ja/docs/orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines
+/ja/docs/Web/HTML/Sections_and_Outlines_of_an_HTML5_document /ja/docs/Web/HTML/Element/Heading_Elements
/ja/docs/Web/HTML/Supported_media_formats /ja/docs/Web/Media/Formats
/ja/docs/Web/HTML/Using_HTML5_audio_and_video /ja/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content
/ja/docs/Web/HTML/属性 /ja/docs/Web/HTML/Attributes
@@ -4114,15 +4115,15 @@
/ja/docs/Web/JavaScript/Guide/Class-Based_vs._Prototype-Based_Languages /ja/docs/conflicting/Web/JavaScript/Inheritance_and_the_prototype_chain
/ja/docs/Web/JavaScript/Guide/Closures /ja/docs/Web/JavaScript/Closures
/ja/docs/Web/JavaScript/Guide/Core_Language_Features /ja/docs/Web/JavaScript/Guide
-/ja/docs/Web/JavaScript/Guide/Creating_New_Objects /ja/docs/Web/JavaScript/Guide/Working_with_Objects#creating_new_objects
-/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Defining_Getters_and_Setters /ja/docs/Web/JavaScript/Guide/Working_with_Objects#defining_getters_and_setters
-/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Defining_Methods /ja/docs/Web/JavaScript/Guide/Working_with_Objects#defining_methods
-/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Defining_Properties_for_an_Object_Type /ja/docs/Web/JavaScript/Guide/Working_with_Objects#defining_properties_for_an_object_type
-/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Deleting_Properties /ja/docs/Web/JavaScript/Guide/Working_with_Objects#deleting_properties
-/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Indexing_Object_Properties /ja/docs/Web/JavaScript/Guide/Working_with_Objects#indexing_object_properties
-/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Using_Object_Initializers /ja/docs/Web/JavaScript/Guide/Working_with_Objects#using_object_initializers
-/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Using_a_Constructor_Function /ja/docs/Web/JavaScript/Guide/Working_with_Objects#using_a_constructor_function
-/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Using_this_for_Object_References /ja/docs/Web/JavaScript/Guide/Working_with_Objects#using_this_for_object_references
+/ja/docs/Web/JavaScript/Guide/Creating_New_Objects /ja/docs/Web/JavaScript/Guide/Working_with_objects#新しいオブジェクトの作成
+/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Defining_Getters_and_Setters /ja/docs/Web/JavaScript/Guide/Working_with_objects#ゲッターとセッターの定義
+/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Defining_Methods /ja/docs/Web/JavaScript/Guide/Working_with_objects#メソッドの定義
+/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Defining_Properties_for_an_Object_Type /ja/docs/Web/JavaScript/Guide/Working_with_objects#オブジェクト型に対するプロパティの定義
+/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Deleting_Properties /ja/docs/Web/JavaScript/Guide/Working_with_objects#プロパティの削除
+/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Indexing_Object_Properties /ja/docs/Web/JavaScript/Guide/Working_with_objects#オブジェクトプロパティのインデックス付け
+/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Using_Object_Initializers /ja/docs/Web/JavaScript/Guide/Working_with_objects#オブジェクト初期化子の使用
+/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Using_a_Constructor_Function /ja/docs/Web/JavaScript/Guide/Working_with_objects#コンストラクター関数の使用
+/ja/docs/Web/JavaScript/Guide/Creating_New_Objects/Using_this_for_Object_References /ja/docs/Web/JavaScript/Guide/Working_with_objects#オブジェクト参照のための_this_の使用
/ja/docs/Web/JavaScript/Guide/Details_of_the_Object_Model /ja/docs/conflicting/Web/JavaScript/Inheritance_and_the_prototype_chain
/ja/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain /ja/docs/Web/JavaScript/Inheritance_and_the_prototype_chain
/ja/docs/Web/JavaScript/Guide/JavaScript_Overview /ja/docs/Web/JavaScript/Guide/Introduction
@@ -4555,15 +4556,24 @@
/ja/docs/Web/XSLT/Elements/when /ja/docs/Web/XSLT/Element/when
/ja/docs/Web/XSLT/Elements/with-param /ja/docs/Web/XSLT/Element/with-param
/ja/docs/Web/XSLT/Index /ja/docs/Web/XSLT
-/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko
-/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Advanced_Example /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Advanced_Example
-/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Basic_Example /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Basic_Example
-/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Interface_List /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Interface_List
-/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Introduction /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Introduction
-/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/JavaScript_XSLT_Bindings /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/JavaScript_XSLT_Bindings
-/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Resources /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Resources
-/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Setting_Parameters /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters
+/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Advanced_Example /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Basic_Example /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Interface_List /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Introduction /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/JavaScript_XSLT_Bindings /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Resources /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Setting_Parameters /ja/docs/Web/API/XSLTProcessor
/ja/docs/Web/XSLT/Transforming_XML_with_XSLT/Resources /ja/docs/conflicting/Web/XSLT/Transforming_XML_with_XSLT
+/ja/docs/Web/XSLT/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Advanced_Example /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Basic_Example /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Interface_List /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Introduction /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/JavaScript_XSLT_Bindings /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Resources /ja/docs/Web/API/XSLTProcessor
+/ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters /ja/docs/Web/API/XSLTProcessor
/ja/docs/Web2/Reference/Events/compositionend /ja/docs/Web/API/Element/compositionend_event
/ja/docs/Web2/Reference/Events/compositionstart /ja/docs/Web/API/Element/compositionstart_event
/ja/docs/Web2/Reference/Events/input /ja/docs/Web/API/HTMLElement/input_event
@@ -4726,20 +4736,20 @@
/ja/docs/XSLT/Elements/with-param /ja/docs/Web/XSLT/Element/with-param
/ja/docs/XSLT/Index /ja/docs/Web/XSLT
/ja/docs/XSLT/PI_Parameters /ja/docs/Web/XSLT/PI_Parameters
-/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko
-/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Advanced_Example /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Advanced_Example
-/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Basic_Example /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Basic_Example
-/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Interface_List /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Interface_List
-/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Introduction /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Introduction
-/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/JavaScript_XSLT_Bindings /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/JavaScript_XSLT_Bindings
-/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Resources /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Resources
-/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Setting_Parameters /ja/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters
+/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko /ja/docs/Web/API/XSLTProcessor
+/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Advanced_Example /ja/docs/Web/API/XSLTProcessor
+/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Basic_Example /ja/docs/Web/API/XSLTProcessor
+/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Interface_List /ja/docs/Web/API/XSLTProcessor
+/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Introduction /ja/docs/Web/API/XSLTProcessor
+/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/JavaScript_XSLT_Bindings /ja/docs/Web/API/XSLTProcessor
+/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Resources /ja/docs/Web/API/XSLTProcessor
+/ja/docs/XSLT/The_XSLT_JavaScript_Interface_in_Gecko/Setting_Parameters /ja/docs/Web/API/XSLTProcessor
/ja/docs/XSLT/Transforming_XML_with_XSLT /ja/docs/Web/XSLT/Transforming_XML_with_XSLT
/ja/docs/XSLT/Transforming_XML_with_XSLT/An_Overview /ja/docs/Web/XSLT/Transforming_XML_with_XSLT/An_Overview
/ja/docs/XSLT/Transforming_XML_with_XSLT/For_Further_Reading /ja/docs/Web/XSLT/Transforming_XML_with_XSLT/For_Further_Reading
/ja/docs/XSLT/Transforming_XML_with_XSLT/Resources /ja/docs/conflicting/Web/XSLT/Transforming_XML_with_XSLT
/ja/docs/XSLT/Transforming_XML_with_XSLT/The_Netscape_XSLT_XPath_Reference /ja/docs/Web/XSLT/Transforming_XML_with_XSLT/The_Netscape_XSLT_XPath_Reference
-/ja/docs/XSLT/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations /ja/docs/Web/XSLT/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations
+/ja/docs/XSLT/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations /ja/docs/Web/API/XSLTProcessor
/ja/docs/XSLT/value-of /ja/docs/Web/XSLT/Element/value-of
/ja/docs/XSLT:Elements /ja/docs/Web/XSLT/Element
/ja/docs/XSLT:value-of /ja/docs/Web/XSLT/Element/value-of
@@ -4749,12 +4759,12 @@
/ja/docs/XSLT_in_Gecko/Browser_Differences /ja/docs/orphaned/Web/API/XSLTProcessor/Browser_Differences
/ja/docs/XSLT_in_Gecko/Generating_HTML /ja/docs/Web/API/XSLTProcessor/Generating_HTML
/ja/docs/XSLT_in_Gecko/Introduction /ja/docs/Web/API/XSLTProcessor/Introduction
-/ja/docs/XSLT_in_Gecko/Resources /ja/docs/Web/API/XSLTProcessor/Resources
+/ja/docs/XSLT_in_Gecko/Resources /ja/docs/Web/API/XSLTProcessor
/ja/docs/XSLT_in_Gecko:Basic_Example /ja/docs/Web/API/XSLTProcessor/Basic_Example
/ja/docs/XSLT_in_Gecko:Browser_Differences /ja/docs/orphaned/Web/API/XSLTProcessor/Browser_Differences
/ja/docs/XSLT_in_Gecko:Generating_HTML /ja/docs/Web/API/XSLTProcessor/Generating_HTML
/ja/docs/XSLT_in_Gecko:Introduction /ja/docs/Web/API/XSLTProcessor/Introduction
-/ja/docs/XSLT_in_Gecko:Resources /ja/docs/Web/API/XSLTProcessor/Resources
+/ja/docs/XSLT_in_Gecko:Resources /ja/docs/Web/API/XSLTProcessor
/ja/docs/addons.mozilla.org_(AMO)_API_Developers'_Guide /ja/docs/Mozilla/Add-ons
/ja/docs/console /ja/docs/Web/API/console
/ja/docs/counters /ja/docs/Web/CSS/CSS_counter_styles/Using_CSS_counters
diff --git a/files/ja/_wikihistory.json b/files/ja/_wikihistory.json
index 6aa86035db7758..eed0ebf8b00af1 100644
--- a/files/ja/_wikihistory.json
+++ b/files/ja/_wikihistory.json
@@ -15055,10 +15055,6 @@
"modified": "2020-04-13T14:03:23.203Z",
"contributors": ["mfuji09", "Marsf"]
},
- "Web/API/XSLTProcessor/Resources": {
- "modified": "2020-04-13T14:00:58.038Z",
- "contributors": ["mfuji09", "SphinxKnight", "Marsf"]
- },
"Web/API/atob": {
"modified": "2020-10-15T21:16:19.721Z",
"contributors": ["mfuji09", "fscholz", "khalid32", "ethertank", "Potappo"]
@@ -30056,49 +30052,6 @@
"modified": "2019-03-18T20:50:35.595Z",
"contributors": ["mfuji09", "ExE-Boss", "silverskyvicto", "Mgjbot", "Okome"]
},
- "Web/XSLT/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations": {
- "modified": "2019-03-18T20:50:25.643Z",
- "contributors": [
- "mfuji09",
- "ExE-Boss",
- "silverskyvicto",
- "ethertank",
- "kohei.yoshino",
- "Mgjbot"
- ]
- },
- "Web/XSLT/XSLT_JS_interface_in_Gecko": {
- "modified": "2019-03-23T22:00:06.933Z",
- "contributors": ["mfuji09", "ExE-Boss", "silverskyvicto", "ethertank"]
- },
- "Web/XSLT/XSLT_JS_interface_in_Gecko/Advanced_Example": {
- "modified": "2019-03-18T20:50:31.655Z",
- "contributors": ["mfuji09", "ExE-Boss", "silverskyvicto"]
- },
- "Web/XSLT/XSLT_JS_interface_in_Gecko/Basic_Example": {
- "modified": "2019-03-18T20:50:32.089Z",
- "contributors": ["mfuji09", "ExE-Boss", "silverskyvicto"]
- },
- "Web/XSLT/XSLT_JS_interface_in_Gecko/Interface_List": {
- "modified": "2019-03-18T20:50:31.344Z",
- "contributors": ["mfuji09", "ExE-Boss", "silverskyvicto"]
- },
- "Web/XSLT/XSLT_JS_interface_in_Gecko/Introduction": {
- "modified": "2019-03-18T20:50:31.925Z",
- "contributors": ["mfuji09", "ExE-Boss", "silverskyvicto"]
- },
- "Web/XSLT/XSLT_JS_interface_in_Gecko/JavaScript_XSLT_Bindings": {
- "modified": "2019-03-18T20:50:31.798Z",
- "contributors": ["mfuji09", "ExE-Boss", "silverskyvicto"]
- },
- "Web/XSLT/XSLT_JS_interface_in_Gecko/Resources": {
- "modified": "2019-03-18T20:50:27.169Z",
- "contributors": ["mfuji09", "SphinxKnight", "ExE-Boss", "silverskyvicto"]
- },
- "Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters": {
- "modified": "2019-03-18T20:50:31.495Z",
- "contributors": ["mfuji09", "ExE-Boss", "silverskyvicto"]
- },
"WebAssembly": {
"modified": "2020-10-15T21:52:54.116Z",
"contributors": ["mfuji09", "mosh", "ukyo", "silverskyvicto", "dskmori"]
@@ -30485,10 +30438,6 @@
"modified": "2019-03-23T23:28:50.521Z",
"contributors": ["yyss", "teoli"]
},
- "conflicting/Web/Accessibility/ARIA_229a3bbc8da83524de32990b14561155": {
- "modified": "2019-03-18T21:35:01.506Z",
- "contributors": ["Uemmra3"]
- },
"conflicting/Web/Accessibility/ARIA_64707ba1917a56654679cbe273e2f4ea": {
"modified": "2019-03-23T23:28:35.294Z",
"contributors": ["yyss", "teoli"]
@@ -30749,25 +30698,6 @@
"modified": "2019-03-23T23:03:34.917Z",
"contributors": ["wtrfp"]
},
- "orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines": {
- "modified": "2020-08-09T13:53:14.893Z",
- "contributors": [
- "mfuji09",
- "taku-furuta",
- "miyah-kun",
- "8845musign",
- "michi-h0623",
- "SphinxKnight",
- "webooker",
- "yyss",
- "ethertank",
- "teoli",
- "DavidWalsh",
- "Potappo",
- "saneyuki_s",
- "kj"
- ]
- },
"orphaned/Web/Guide/Localizations_and_character_encodings": {
"modified": "2020-09-18T02:40:01.125Z",
"contributors": ["morinokami", "silverskyvicto"]
diff --git a/files/ja/conflicting/web/accessibility/aria_229a3bbc8da83524de32990b14561155/index.md b/files/ja/conflicting/web/accessibility/aria_229a3bbc8da83524de32990b14561155/index.md
deleted file mode 100644
index 898b01de297870..00000000000000
--- a/files/ja/conflicting/web/accessibility/aria_229a3bbc8da83524de32990b14561155/index.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: ウィジェット
-slug: conflicting/Web/Accessibility/ARIA_229a3bbc8da83524de32990b14561155
-original_slug: Web/Accessibility/ARIA/widgets
----
-
-> **警告:** 更新が必要
-
-## 入門
-
-ここでは、アクセシブルな JavaScript ウィジェットを作るための実装例とベストプラクティスを見ていきます。
-
-## 一般リソース
-
-- [DHTML Style Guide](https://dev.aol.com/dhtml_style_guide) にはキーボードインタラクションのお勧めがあります。
-- [WAI-ARIA Authoring Practices Guide](https://www.w3.org/wai/pf/aria-practices)
-
-## チェックボックス
-
-- [ARIA Toggle Button and Tri-state Checkbox examples](https://www.paciellogroup.com/blog/?p=53) (from "The Paciello Group Blog")
-- [ARIA Example Checkbox Widgets from the University of Illinois](http://test.cita.uiuc.edu/aria/checkbox)
-
-## メニュー
-
-- [Using WAI-ARIA Roles and States with the YUI Menu Control](http://yuiblog.com/blog/2007/12/21/menu-waiaria/)
-
-## スライダー
-
-- From the Paciello Group Blog: ARIA Slider, [part one](https://www.paciellogroup.com/blog/?p=68), [part two](https://www.paciellogroup.com/blog/?p=69), [part three](https://www.paciellogroup.com/blog/?p=76) ([example](https://www.paciellogroup.com/blog/misc/ARIA/slider/))
-- [Creating an Accessible, Internationalized Dojo Rating Widget](https://mindtrove.info/articles/creating-an-accessible-internationalized-dojo-rating-widget/)
-
-## タブ
-
-- [Enhancing TabView Accessibility with WAI-ARIA Roles and States](http://yuiblog.com/blog/2008/07/30/tabview-aria/), from the YUI blog
-- [Enhancing the jQuery UI Tabs accordingly to WCAG 2.0 and ARIA](https://wiki.github.com/fnagel/jQuery-Accessible-RIA/tabs)
-- [Tab panel example here on CodeTalks](https://codetalks.org/source/widgets/tabpanel/tabpanel1.html)
-
-## ライトボックス
-
-- [WCAG 2.0 and ARIA-](https://wiki.github.com/fnagel/jQuery-Accessible-RIA/lightbox)[conformant](https://wiki.github.com/fnagel/jQuery-Accessible-RIA/table) [lightbox application](https://wiki.github.com/fnagel/jQuery-Accessible-RIA/lightbox)
--
-
-## フォーム検証
-
-- [WCAG 2.0 and ARIA-conformant live form validation](https://wiki.github.com/fnagel/jQuery-Accessible-RIA/formular)
-
-## 表
-
-- [German tutorial on creating an accessible form](https://www.einfach-fuer-alle.de/artikel/barrierefreie-formulare-mit-html-css-und-javascript/)
-- [Simple grid example at CodeTalks](https://codetalks.org/source/widgets/grid/grid.sample.html)
-- [Date picker grid at CodeTalks](https://codetalks.org/source/widgets/datepicker/datepicker.sample.html)
-- [WCAG 2.0 and ARIA-conformant sortable tables](https://wiki.github.com/fnagel/jQuery-Accessible-RIA/table)
diff --git a/files/ja/conflicting/web/css/_colon_focus-visible/index.md b/files/ja/conflicting/web/css/_colon_focus-visible/index.md
index 7f06765e7b8207..2c60e9651ade95 100644
--- a/files/ja/conflicting/web/css/_colon_focus-visible/index.md
+++ b/files/ja/conflicting/web/css/_colon_focus-visible/index.md
@@ -14,7 +14,7 @@ original_slug: Web/CSS/:-moz-focusring
作業グループは以前、[この機能を CSS Selectors 4 または 5 で](https://lists.w3.org/Archives/Public/www-style/2015Oct/0012.html) `:focus-ring` として追加する意向を持っており、[改名が決定され](https://lists.w3.org/Archives/Public/www-style/2017Dec/0018.html) {{cssxref(":focus-visible")}} となり、 CSS Selectors 4 に追加されました。
-> **メモ:** 開発者は `:-moz-focusring` を、 `focus` 状態がユーザーによる**マウスのクリック**と**キーボードのタブ移動**のどちらで行なわれたのかを区別するために使う傾向があります。これは[カスタム要素](/ja/docs/Web/Web_Components/Using_custom_elements)を作成し、振る舞いに応じてスタイルを変更したい場合にも便利かもしれません。
+> **メモ:** 開発者は `:-moz-focusring` を、 `focus` 状態がユーザーによる**マウスのクリック**と**キーボードのタブ移動**のどちらで行なわれたのかを区別するために使う傾向があります。これは[カスタム要素](/ja/docs/Web/API/Web_components/Using_custom_elements)を作成し、振る舞いに応じてスタイルを変更したい場合にも便利かもしれません。
## 構文
diff --git a/files/ja/glossary/binding/index.md b/files/ja/glossary/binding/index.md
new file mode 100644
index 00000000000000..1efc1aab78a15b
--- /dev/null
+++ b/files/ja/glossary/binding/index.md
@@ -0,0 +1,20 @@
+---
+title: Binding (バインド)
+slug: Glossary/Binding
+l10n:
+ sourceCommit: 1c4869cdb1a9a9c3cafba87a2cd9469591f7aa47
+---
+
+プログラミングにおいて**バインド**とは、{{glossary("identifier","識別子")}}と値の関連付けのことです。バインドは{{glossary("variable", "変数")}}だけとは限りません。例えば、関数の{{glossary("parameter", "引数")}}や {{jsxref("Statements/try...catch", "catch (e)")}} ブロックで作成されるバインドは、厳密な意味での「変数」ではありません。さらに、一部のバインドは言語によって暗黙に作成されます。例えば、 JavaScript の {{jsxref("Operators/this", "this")}} や [`new.target`](/ja/docs/Web/JavaScript/Reference/Operators/new.target) などです。
+
+バインドは代入可能であれば{{glossary("mutable", "変更可能")}}であり、そうでなければ{{glossary("immutable", "変更不可")}}です。これは、保持している値が変更不可であるという意味ではありません。
+
+バインドはよく{{glossary("scope", "スコープ")}}と関連付けられます。 JavaScript でバインドを再宣言できるかどうかは、バインドを作成するために使用された構築方法に依存します。
+
+## 関連情報
+
+- {{jsxref("Statements/var", "var")}}
+- {{jsxref("Statements/let", "let")}}
+- {{jsxref("Statements/const", "const")}}
+- {{jsxref("Statements/function", "function")}}
+- {{jsxref("Statements/class", "class")}}
diff --git a/files/ja/glossary/boolean/javascript/index.md b/files/ja/glossary/boolean/javascript/index.md
new file mode 100644
index 00000000000000..937a18bdf6ef87
--- /dev/null
+++ b/files/ja/glossary/boolean/javascript/index.md
@@ -0,0 +1,15 @@
+---
+title: Boolean (ブーリアン) (JavaScript)
+slug: Glossary/Boolean/JavaScript
+---
+
+{{GlossarySidebar}}
+
+JavaScript において **Boolean** は [プリミティブ値](/ja/docs/Glossary/Primitive)で `true` か `false` を表します。
+
+{{jsxref("Boolean")}} オブジェクトはプリミティブ値の {{Glossary("wrapper")}} です。
+
+## 関連情報
+
+- [Boolean](/ja/docs/Web/JavaScript/Reference/Global_Objects/Boolean)
+- [JavaScript のデータ型とデータ構造](/ja/docs/Web/JavaScript/Data_structures)
diff --git a/files/ja/glossary/element/index.md b/files/ja/glossary/element/index.md
index 71cac5c0c11eef..cdb23a7d83951d 100644
--- a/files/ja/glossary/element/index.md
+++ b/files/ja/glossary/element/index.md
@@ -14,5 +14,5 @@ l10n:
## 関連情報
- [HTML を始めよう](/ja/docs/Learn/HTML/Introduction_to_HTML/Getting_started)
-- [カスタム要素の定義](/ja/docs/Web/Web_Components/Using_custom_elements)
+- [カスタム要素の定義](/ja/docs/Web/API/Web_components/Using_custom_elements)
- DOM の中で要素を表現する{{domxref("Element")}} インターフェイス
diff --git a/files/ja/glossary/node/index.md b/files/ja/glossary/node/index.md
new file mode 100644
index 00000000000000..153178dfdaaa37
--- /dev/null
+++ b/files/ja/glossary/node/index.md
@@ -0,0 +1,12 @@
+---
+title: Node
+slug: Glossary/Node
+l10n:
+ sourceCommit: ada5fa5ef15eadd44b549ecf906423b4a2092f34
+---
+
+**node** という用語は文脈によっていくつかの意味を持ちます。下記の用語を指しているかもしれません。
+
+{{GlossaryDisambiguation}}
+
+この用語は {{Glossary("Node.js")}} について話すときにも使われます。
diff --git a/files/ja/glossary/primitive/index.md b/files/ja/glossary/primitive/index.md
index 6c052d288244f9..55c0f96a59459e 100644
--- a/files/ja/glossary/primitive/index.md
+++ b/files/ja/glossary/primitive/index.md
@@ -5,7 +5,7 @@ l10n:
sourceCommit: 72e6429af2f0ad138223623fb2c86087a008d4dd
---
-{{Glossary("JavaScript")}} において、**プリミティブ** (primitive、プリミティブ値、プリミティブデータ型) は{{Glossary("object","オブジェクト")}}でなく、{{glossary("method","メソッド")}}を持たないデータのことです。 6 種類のプリミティブデータ型があります。
+{{Glossary("JavaScript")}} において、**プリミティブ** (primitive、プリミティブ値、プリミティブデータ型) は{{Glossary("object","オブジェクト")}}でなく、{{glossary("method","メソッド")}}を持たないデータのことです。 7 種類のプリミティブデータ型があります。
- {{Glossary("string","文字列")}}
- {{Glossary("number","数値")}}
diff --git a/files/ja/glossary/shadow_tree/index.md b/files/ja/glossary/shadow_tree/index.md
index 40942ec0a6536d..eb2abbd58d9c69 100644
--- a/files/ja/glossary/shadow_tree/index.md
+++ b/files/ja/glossary/shadow_tree/index.md
@@ -3,7 +3,7 @@ title: Shadow tree
slug: Glossary/Shadow_tree
---
-**Shadow ツリー** は DOM {{Glossary("node", "nodes")}} のツリーで、最上位のノードは **Shadow ルート** ( **Shadow DOM** 内にある最上位のノード) です。Shadow ツリーは標準的な DOM から隠されたツリーで、標準的な DOM ノードがホストになります。 隠されたノードは通常の DOM の機能では直接確認できませんが、特殊な [Shadow DOM API](/ja/docs/Web/Web_Components/Using_shadow_DOM) を使うとアクセスすることができます。
+**Shadow ツリー** は DOM {{Glossary("node", "nodes")}} のツリーで、最上位のノードは **Shadow ルート** ( **Shadow DOM** 内にある最上位のノード) です。Shadow ツリーは標準的な DOM から隠されたツリーで、標準的な DOM ノードがホストになります。 隠されたノードは通常の DOM の機能では直接確認できませんが、特殊な [Shadow DOM API](/ja/docs/Web/API/Web_components/Using_shadow_DOM) を使うとアクセスすることができます。
Shadow ツリー内のノードは Shadow ツリーの外部の影響を一切受けません。逆に Shadow ツリーの外部は Shadow ツリー内の影響を一切受けません。これにより細かい実装をカプセル化することができ、特に [custom elements](/ja/docs/User:Andreas_Wuest/Custom_Elements) や他の先進的なデザインパラダイムの実装に便利です。
@@ -11,7 +11,7 @@ Shadow ツリー内のノードは Shadow ツリーの外部の影響を一切
### 一般知識
-- [Using shadow DOM](/ja/docs/Web/Web_Components/Using_shadow_DOM)
+- [Using shadow DOM](/ja/docs/Web/API/Web_components/Using_shadow_DOM)
### 技術情報
diff --git a/files/ja/glossary/time_to_first_byte/index.md b/files/ja/glossary/time_to_first_byte/index.md
new file mode 100644
index 00000000000000..77f4b74841b891
--- /dev/null
+++ b/files/ja/glossary/time_to_first_byte/index.md
@@ -0,0 +1,22 @@
+---
+title: Time to first byte (最初のバイトまでの時間)
+slug: Glossary/Time_to_first_byte
+l10n:
+ sourceCommit: ada5fa5ef15eadd44b549ecf906423b4a2092f34
+---
+
+{{GlossarySidebar}}
+
+**Time to First Byte** (TTFB) とは、ブラウザーがページをリクエストしてから、サーバーから最初の情報を受信するまでの時間を指します。この時間には [DNS](/ja/docs/Glossary/DNS) ルックアップと、 [TCP](/ja/docs/Glossary/TCP) ハンドシェイクと [SSL](/ja/docs/Glossary/SSL) ハンドシェイク(リクエストが[HTTPS](/ja/docs/Glossary/HTTPS)を使用している場合)を使用して接続を確立する時間が含まれます。
+
+TTFB は、リクエストの開始からレスポンスの開始までにかかる時間をミリ秒単位で表したものです。
+
+```plain
+TTFB = responseStart - navigationStart
+```
+
+## 関連情報
+
+- [典型的な HTTP セッション](/ja/docs/Web/HTTP/Session)
+- [PerformanceResourceTiming](/ja/docs/Web/API/PerformanceResourceTiming)
+- [PerformanceTiming](/ja/docs/Web/API/PerformanceTiming)
diff --git a/files/ja/learn/accessibility/html/index.md b/files/ja/learn/accessibility/html/index.md
index 03053aa1735084..d55a8092354ed0 100644
--- a/files/ja/learn/accessibility/html/index.md
+++ b/files/ja/learn/accessibility/html/index.md
@@ -258,7 +258,7 @@ HTML の `` は、ある種の適切なスタイルが(おそらくそ
### UI コントロール
-UI コントロールとは、ウェブ文書内のユーザーが対話する主要な部分を意味します。最も一般的なのは、ボタン、リンク、および形式コントロールです。この節では、このようなコントロールを作成する際に注意すべき基本的なアクセシビリティの懸念について見ていきます。WAI-ARIAとマルチメディアに関するこの後の記事では、UIアクセシビリティの他の側面について見ていきます。
+UI コントロールとは、ウェブ文書内のユーザーが対話する主要な部分を意味します。最も一般的なのは、ボタン、リンク、およびフォーム・コントロールです。この節では、このようなコントロールを作成する際に注意すべき基本的なアクセシビリティの懸念について見ていきます。WAI-ARIAとマルチメディアに関するこの後の記事では、UIアクセシビリティの他の側面について見ていきます。
UI コントロールのアクセシビリティに対する一つの重要な側面は、ブラウザーが既定では 、UI コントロールをキーボードで操作できるようにしているということです。このことは、[native-keyboard-accessibility.html](https://mdn.github.io/learning-area/tools-testing/cross-browser-testing/accessibility/native-keyboard-accessibility.html) の例 ([ソースコード](https://github.com/mdn/learning-area/blob/main/tools-testing/cross-browser-testing/accessibility/native-keyboard-accessibility.html) を参照) を用いて試せます。これを新規タブで開いて、タブキーを押してみてください。2、3 回押してみた後には、フォーカス可能な異なる要素の間をタブ・フォーカスが動き回り始めたのだと分かるはずです。どの要素にフォーカスが当たっているのかが分かるように、どのブラウザーでも、フォーカスの当たっている要素には、ハイライトされた既定のスタイルが付与されます (そのスタイルは、異なるブラウザー間では少し差があります)。
@@ -367,7 +367,7 @@ UI コントロールのテキストラベルはあらゆるユーザーにと
ボタンとリンクテキストのラベルが、理解可能であり、かつ弁別性のあるものになっていることを、確認すべきです。ラベルとして単に「ここをクリック」を使うのはいけません。なぜなら、スクリーンリーダーのユーザーは、ボタンとフォーム・コントロールの一覧をまとめ上げることがあるからです。以下のスクリーンショットは、Mac 上の VoiceOver によって一覧化されたコントロールを示しています。
-![Mac の VoiceOver ソフトで掲載されている形式入力ラベルのリストです。このリストには、ボタン、テキストフィールド、リンクなどの様々なフォームコントロールに指定された "Happy menu item" のような無意味なラベルが含まれています。](voiceover-formcontrols.png)
+![Mac の VoiceOver ソフトで掲載されているフォーム入力ラベルのリストです。このリストには、ボタン、テキストフィールド、リンクなどの様々なフォームコントロールに指定された "Happy menu item" のような無意味なラベルが含まれています。](voiceover-formcontrols.png)
ラベルが存在している段落の文脈内においてラベルが意味をなすようにするだけでなく、文脈を離れてもラベルが意味をなすように (ラベルが単独で読まれても意味をなすように) してください。たとえば、以下のものは、良いリンクテキストの例を示しています。
@@ -395,7 +395,7 @@ UI コントロールのテキストラベルはあらゆるユーザーにと
名前を入れてください:
```
-しかし、これは障碍を持ったユーザーにとってはあまり有益なものではありません。上の例では、ラベルが見えない場合に、ラベルと形式入力を一義的に関連づけ、どのように記入するかを明確にするものは何もありません。もし、ある種のスクリーンリーダーでこれにアクセスすると、「テキスト編集」という行に沿った説明しか与えられないかもしれません。
+しかし、これは障碍を持ったユーザーにとってはあまり有益なものではありません。上の例では、ラベルが見えない場合に、ラベルとフォーム入力を一義的に関連づけ、どのように記入するかを明確にするものは何もありません。もし、ある種のスクリーンリーダーでこれにアクセスすると、「テキスト編集」という行に沿った説明しか与えられないかもしれません。
以下のものは、ずっと良い例です。
diff --git a/files/ja/learn/javascript/building_blocks/conditionals/index.md b/files/ja/learn/javascript/building_blocks/conditionals/index.md
index 35a77389caf230..a18d52a36b545a 100644
--- a/files/ja/learn/javascript/building_blocks/conditionals/index.md
+++ b/files/ja/learn/javascript/building_blocks/conditionals/index.md
@@ -357,7 +357,7 @@ function setWeather() {
## 三項演算子
-例題に進む前に、ちょっとした構文をご紹介しましょう。[三項演算子 (もしくは条件演算子)](/ja/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) は条件式を判定し、その結果に応じて 2 つの値または式のうち、どちらか一方を返します。これはある状況においてはとても便利です。単純に `true`/`false` で判定可能な 2 つの選択肢のうちより片方を選ぶという場合には、`if...else` ブロックを書くよりも多くのコードを節約できます。この擬似コードは以下のようなものになります。
+例題に進む前に、ちょっとした構文をご紹介しましょう。[三項演算子 (もしくは条件演算子)](/ja/docs/Web/JavaScript/Reference/Operators/Conditional_operator) は条件式を判定し、その結果に応じて 2 つの値または式のうち、どちらか一方を返します。これはある状況においてはとても便利です。単純に `true`/`false` で判定可能な 2 つの選択肢のうちより片方を選ぶという場合には、`if...else` ブロックを書くよりも多くのコードを節約できます。この擬似コードは以下のようなものになります。
```
( 条件式 ) ? こちらのコードを実行する : 代わりにこちらのコードを実行する
@@ -791,6 +791,6 @@ textarea.onkeyup = function () {
- [比較演算子](/ja/Learn/JavaScript/First_steps/Math#Comparison_operators)
- [条件式についての詳細](/ja/docs/Web/JavaScript/Guide/Control_flow_and_error_handling#Conditional_statements)
- [if...else リファレンス](/ja/docs/Web/JavaScript/Reference/Statements/if...else)
-- [条件 (三項) 演算子リファレンス](/ja/docs/Web/JavaScript/Reference/Operators/Conditional_Operator)
+- [条件 (三項) 演算子リファレンス](/ja/docs/Web/JavaScript/Reference/Operators/Conditional_operator)
{{NextMenu("Learn/JavaScript/Building_blocks/Looping_code", "Learn/JavaScript/Building_blocks")}}
diff --git a/files/ja/learn/javascript/first_steps/a_first_splash/index.md b/files/ja/learn/javascript/first_steps/a_first_splash/index.md
index 625b2a6a24a070..e05d058d850ad4 100644
--- a/files/ja/learn/javascript/first_steps/a_first_splash/index.md
+++ b/files/ja/learn/javascript/first_steps/a_first_splash/index.md
@@ -1,142 +1,48 @@
---
-title: JavaScriptへの最初のダイブ
+title: JavaScript の最初の一歩
slug: Learn/JavaScript/First_steps/A_first_splash
+l10n:
+ sourceCommit: eab7a9c4c0d4251829e19500fa94865f9b5f56c7
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/JavaScript/First_steps/What_is_JavaScript", "Learn/JavaScript/First_steps/What_went_wrong", "Learn/JavaScript/First_steps")}}
-JavaScript の理論、そしてそれを使ってできることについて学んだところで、完全に実用的なチュートリアルを通じて、JavaScript の基本的な機能についての短期集中コースをお見せします。ここでは、簡単な「数字を当てる」ゲームをステップバイステップで構築します。
+JavaScript の理論や何ができるかを学んだところで、実践的なチュートリアルをガイドすることで、単純な JavaScript プログラムを作成するプロセスがどのようなものなのかを解説します。ここでは単純な「数当てゲーム」を手順を追って作っていきます。
-| 前提条件: | 基本的なコンピューターの知識および HTML と CSS への理解、JavaScript とは何かを知っている。 |
-| --------- | ------------------------------------------------------------------------------------------ |
-| 目的: | 簡単な JavaScript を書いてみて、JavaScript のプログラムを書くために必要な知識を会得する。 |
+
+
+
+ 前提条件:
+
+ 基本的なコンピューターリテラシー、 HTML と CSS の基本的な理解、 JavaScript とは何かを理解していること。
+
+
+
+ 目的:
+
+ JavaScript を書く最初の経験をし、少なくとも JavaScript プログラムを書くことの基本的な理解を得ること。
+
+
+
+
-ここでは、JavaScript (とその他のプログラミング言語) がどのように動くのかという高度なコンセプトを紹介したいので、一度ですべての詳細を理解する必要はありません。詳細については続く記事にてご紹介しますので!
+ここでは実に明確な目標を設定したいと思います。この記事の終わりまでに JavaScript を習得することや、あなたに依頼するコードをすべて理解することは期待されていません。その代わりに、 JavaScript の機能がどのように連携して動作するのか、 JavaScript を書くことがどのような感じなのか、そのイメージをつかんでもらいたいと思います。この後の記事で、ここで示した機能をすべてさらに詳しく説明しますので、すぐに理解できなくても心配しないでください。
-> **メモ:** JavaScript の機能として紹介する、関数や繰り返しなどの機能は、ほとんどが他のプログラミング言語にもあります。書き方は異なりますが、コンセプトは大体同じです。
+> **メモ:** JavaScript の機能として紹介する、関数や繰り返しなどの機能は、ほとんどが他のプログラミング言語にもあります。書き方は異なりますが、概念は大体同じです。
## プログラマーのように考える
-プログラミングで一番難しいのは、書き方を覚えることではなく、現実の問題にどう適用するかということです。プログラマーのように考え始める必要があります — それは一般的に、そのプログラムが何をしなければならないかという説明を見て、それを満たすためにコードのどんな機能を用いるかを考え、さらにそれを組み合わせていかなければなりません。
+プログラミングで一番難しいのは、書き方を覚えることではなく、現実の問題にどう適用するかということです。プログラマーのように考え始める必要があります。それは一般的に、そのプログラムが何をしなければならないかという説明を見て、それを満たすためにコードのどんな機能を用いるかを考え、さらにそれを組み合わせていかなければなりません。
-これには努力・プログラミング文法の経験・練習に加え、少しの想像力が必要です。たくさんコードを書けばもっと慣れていくでしょう。たったの 5 分で「プログラマー脳」を開発することは約束できませんが、このコースを通じてプログラマーのように考えるたくさんの機会を提供したいと思います。
+これには努力、プログラミング構文の経験、練習に加え、多少の想像力が必要です。たくさんコードを書けばもっと慣れていくでしょう。たったの 5 分で「プログラマー脳」を開発することは約束できませんが、このコースを通じてプログラマーのように考えるたくさんの機会を提供したいと思います。
まずはそれを念頭に置いてから、この記事で作るプログラムの実例を見てみましょう。さらにその後、具体的な手順に落とし込む方法について学習しましょう。
-## 例: 数字当てゲーム
+## 例: 数当てゲーム
この記事では、以下に示す簡単なゲームを作る方法を紹介します。
-```html hidden
-
-
-
-
-
- 数字当てゲーム
-
-
-
-
- 数字当てゲーム
- 1 から 100 までの数字を当ててみて!10 回以内に当てられるでしょうか。選んだ数字が大きいか小さいかを表示します。
- 予想を入力してください:
-
-
-
-
-
-
-```
-
-{{ EmbedLiveSample('Top_hidden_code', '100%', 320, "", "", "hide-codepen-jsfiddle") }}
+{{EmbedGHLiveSample("learning-area/javascript/introduction-to-js-1/first-splash/number-guessing-game", 900, 300)}}
さあ、ゲームで遊んでみてください。次に進む前にゲームに慣れておきましょう。
@@ -171,11 +77,11 @@ JavaScript の理論、そしてそれを使ってできることについて学
9. ゲームがもう一度始まったら、画面とロジックが完全にリセットされるようにして、1.に戻る。
-さあ、先に進みましょう。この手順をどのようにコードにするのか見て、JavaScript の機能を探求していきましょう。
+さあ、先に進みましょう。この手順をどのようにコードにするのか見て、 JavaScript の機能を探求していきましょう。
-### まず初めに
+### 初期設定
-チュートリアルを開始するにあたり、自分のコンピューターに [number-guessing-game-start.html](https://github.com/mdn/learning-area/blob/master/javascript/introduction-to-js-1/first-splash/number-guessing-game-start.html) ファイル ([こちらでデモが見られます](http://mdn.github.io/learning-area/javascript/introduction-to-js-1/first-splash/number-guessing-game-start.html)) をコピーしてください。テキストエディターとブラウザーの両方でそのファイルを開いてください。すると、簡単な見出しと説明の段落、予想を入力するフォームが見えるでしょう。ただし、そのフォームはまだ何もできません。
+チュートリアルを開始するにあたり、自分のコンピューターに [number-guessing-game-start.html](https://github.com/mdn/learning-area/blob/main/javascript/introduction-to-js-1/first-splash/number-guessing-game-start.html) ファイル([こちらでデモが見られます](https://mdn.github.io/learning-area/javascript/introduction-to-js-1/first-splash/number-guessing-game-start.html))をコピーしてください。テキストエディターとブラウザーの両方でそのファイルを開いてください。すると、簡単な見出しと説明の段落、予想を入力するフォームが見えるでしょう。ただし、そのフォームはまだ何もできません。
コードを入力するのはすべて HTML の一番下にある {{htmlelement("script")}} 要素の中です。
@@ -185,7 +91,7 @@ JavaScript の理論、そしてそれを使ってできることについて学
```
-### データを保持する変数を追加する
+### データを格納する変数を追加する
始めましょう。まず、{{htmlelement("script")}} 要素の中に以下の内容を書いてみてください。
@@ -203,14 +109,18 @@ let guessCount = 1;
let resetButton;
```
-上記のコードはプログラムが使用するデータを保持する変数と定数をセットアップしています。変数とは基本的には値 (数字や文字など) の入れ物です。 `let` (か `var`) キーワードに続いて変数の名前を書くことで、変数を作成します (これらのキーワードの違いは[以降の記事](/ja/docs/Learn/JavaScript/First_steps/Variables#The_difference_between_var_and_let)で見ます) 。定数は変更しない値を保持するのに、 `const` キーワードといっしょに使います。この場合では、定数をユーザーインターフェイスのパーツへの参照を保存するのに使っていて、一部の内部のテキストは変わるかも知れませんが、参照される HTML 要素は同じままです。
+上記の部分のコードは、プログラムが使用するデータを格納する変数と定数をセットアップしています。
+
+変数とは基本的には値(数字やテキストの文字列など)の名前です。 `let` キーワードに続いて変数の名前を書くことで、変数を作成します。
+
+定数も値に名前を付けるために使用しますが、変数とは異なり、一度設定した値を変更することはできません。この用途では、ユーザーインターフェイスの部品への参照を格納するために定数を使用しています。これらの要素の中のテキストは変わるかもしれませんが、それぞれの定数は常に初期化されたのと同じ HTML 要素を参照しています。定数を作成するには、キーワード `const` の後に定数の名前を続けます。
-等号記号 ( `=` ) に続いて、与えたい値を書いて、変数や定数に値を代入できます。
+変数や定数に値を割り当てるには、等号 (`=`) に続けて与えたい値を指定します。
-この例では:
+この例では次のことが行われます。
-- 最初の変数 ( `randomNumber` ) には数学的なアルゴリズムにより計算された 1 から 100 までのランダムな数字が代入されます。
-- 続く 3 つの変数 ( `guesses`、`lastResult`、`lowOrHi` ) には、以下に示す HTML の段落の場所がそれぞれに保持されます。後ほど段落に値を追加するために使用します。 (すべて`` 要素内にあり、後にゲーム再開時にリセットするのにすべてを選択するのに使われるのに注意してください):
+- 最初の変数 (`randomNumber`) には、数学的なアルゴリズムにより計算された 1 から 100 までのランダムな数字が代入されます。
+- 最初の 3 つの定数は、それぞれ HTML の結果の段落への参照を格納するために作られており、後のコードで段落に値を挿入するために使用されます(それらは `
` 要素の中にあることに注意してください。この要素は、後でゲームを再開するときに、 3 つすべてを選択してリセットするために使用します)。
```html
@@ -223,14 +133,14 @@ let resetButton;
- 次の 2 つの定数にはテキスト入力フォームおよび送信ボタンへの参照が保持され、後で予想の送信をコントロールする際に使用されます。
```html
-
予想を入力してください:
-
+
Enter a guess:
+
+
```
-- 最後の 2 つの変数はプレイヤーが予想した回数を記録するため 1 を (プレイヤーが何回予想したかの回数を追跡します) 、そしてまだ存在していない(あとで追加する)リセットボタンへの参照を保持します。
+- 最後の 2 つの変数は、プレイヤーが予想した回数を記録するため 1 を(プレイヤーが何回予想したかの回数を追跡します)、そしてまだ存在していない(あとで追加する)リセットボタンへの参照を保持します。
-> **メモ:** 変数や定数についてはこのコースの間に、[次の記事](/ja/docs/user:chrisdavidmills/variables)を始めとして何度も出てきます。
+> **メモ:** 変数や定数についてはこのコースの間、[次の記事](/ja/docs/Learn/JavaScript/First_steps/Variables)を始めとして何度も出てきます。
### 関数
@@ -238,7 +148,7 @@ let resetButton;
```js
function checkGuess() {
- alert("ここはプレースホルダです");
+ alert("I am a placeholder");
}
```
@@ -246,7 +156,7 @@ function checkGuess() {
関数を実行したい場合には、関数の名前に続いて括弧を書きます。
-それでは試してみましょう。コードを保存してブラウザーを再読み込みしてみてください。[開発者ツールの JavaScript コンソール](/ja/docs/Learn/Common_questions/What_are_browser_developer_tools)を開いてください。そして次のコードを実行します。
+それでは試してみましょう。コードを保存してブラウザーを再読み込みしてみてください。[開発者ツールの JavaScript コンソール](/ja/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools)を開いてください。そして次のコードを実行します。
```js
checkGuess();
@@ -260,7 +170,7 @@ checkGuess();
JavaScript で演算子を使用して値の確認をしたり、計算したり、文字を結合したりなど、いろいろなことができます。
-コードを保存してブラウザーを再読み込みしてみてください。まだ開いていなければ、[開発者ツールの JavaScript コンソール](/ja/docs/Learn/Common_questions/What_are_browser_developer_tools)を開いて、表の「例」の列に書いてある通りに入力してみましょう。例を一つ入力したら、その都度
Return /
Enter キーを押してください。結果が表示されるはずです。
+コードを保存してブラウザーを再読み込みしてみてください。まだ開いていなければ、[開発者ツールの JavaScript コンソール](/ja/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools)を開いて、表の「例」の列に書いてある通りに入力してみましょう。例を一つ入力したら、その都度
Return /
Enter キーを押してください。結果が表示されるはずです。
まずは算術演算子の例を見てください。
@@ -271,30 +181,21 @@ JavaScript で演算子を使用して値の確認をしたり、計算したり
| `*` | 乗算 | `3 * 7` |
| `/` | 除算 | `10 / 5` |
-また、 `+` 演算子は 2 つの文字を繋げて一つにするときにも使います。(プログラミングでは文字列を*結合*すると言います。) 下の例も試してみてください。
-
-```js
-let name = "ビンゴさん";
-name;
-let hello = "が、こんにちは!と言っています。";
-hello;
-let greeting = name + hello;
-greeting;
-```
-
-累算[代入演算子](/ja/docs/Web/JavaScript/Reference/Operators/Assignment_Operators)と呼ばれるもっと短い書き方もあります。すでにある文字列に、さらに文字を追加した結果を返したい場合などに使います。例えば、
+[複合代入演算子](/ja/docs/Web/JavaScript/Reference/Operators#代入演算子)と呼ばれるもっと短い書き方もあります。すでにある文字列に、さらに文字を追加した結果を返したい場合などに使います。例えば、
```js
-name += "が、こんにちは!と言っています。";
+let number1 = 1;
+number1 += 2;
```
-のように書いたとき、次と同じです:
+これは次のものと同等です。
```js
-name = name + "が、こんにちは!と言っています。";
+let number2 = 1;
+number2 = number2 + 2;
```
-true/false テスト(例えば条件内 - [below](#conditionals)参照)を実行しているとき、[比較演算子](/ja/docs/Web/JavaScript/Reference/Operators/Comparison_Operators)を使用します。例えば:
+true/false テスト(例えば条件内 - [下記](#条件式)参照)を実行しているとき、[比較演算子](/ja/docs/Web/JavaScript/Reference/Operators)を使用します。例えば、
@@ -352,6 +253,28 @@ true/false テスト(例えば条件内 - [below](#conditionals)参照)を
+### テキスト文字列
+
+文字列はテキストを表すのに使用します。文字列変数はすでに見てきました。以下のコードでは `"I am a placeholder"` が文字列です。
+
+```js
+function checkGuess() {
+ alert("I am a placeholder");
+}
+```
+
+文字列は二重引用符 (`"`) または一重引用符 (`'`) を用いて宣言することができますが、単一の文字列宣言の先頭と末尾には同じ形式を使用する必要があります: `"I am a placeholder `" と書くことはできません。
+
+バックスティック(`` ` ``)を用いて文字列を宣言することもできます。このように宣言された文字列は「テンプレートリテラル」と呼ばれ、いくつかの特別なプロパティがあります。具体的な性質として、文字列の中に他にも変数や発生した式を埋め込むことができます。
+
+```js
+const name = "Mahalia";
+
+const greeting = `Hello ${name}`;
+```
+
+これは文字列を連結する仕組みを提供します。
+
### 条件式
先ほどの `checkGuess()` 関数に話を戻します。当然ですが、ただ単にプレースホルダメッセージを出したいわけではありませんよね。この関数にはプレイヤーの予想が正しいかどうかを調べて適切に返事をすることを望みます。
@@ -360,27 +283,28 @@ true/false テスト(例えば条件内 - [below](#conditionals)参照)を
```js
function checkGuess() {
- let userGuess = Number(guessField.value);
+ const userGuess = Number(guessField.value);
if (guessCount === 1) {
- guesses.textContent = "前回の予想: ";
+ guesses.textContent = "Previous guesses:";
}
- guesses.textContent += userGuess + " ";
+ guesses.textContent = `${guesses.textContent} ${userGuess}`;
if (userGuess === randomNumber) {
- lastResult.textContent = "おめでとう! 正解です!";
+ lastResult.textContent = "Congratulations! You got it right!";
lastResult.style.backgroundColor = "green";
lowOrHi.textContent = "";
setGameOver();
} else if (guessCount === 10) {
- lastResult.textContent = "!!!ゲームオーバー!!!";
+ lastResult.textContent = "!!!GAME OVER!!!";
+ lowOrHi.textContent = "";
setGameOver();
} else {
- lastResult.textContent = "間違いです!";
+ lastResult.textContent = "Wrong!";
lastResult.style.backgroundColor = "red";
if (userGuess < randomNumber) {
- lowOrHi.textContent = "今の予想は小さすぎです!";
+ lowOrHi.textContent = "Last guess was too low!";
} else if (userGuess > randomNumber) {
- lowOrHi.textContent = "今の予想は大きすぎです!";
+ lowOrHi.textContent = "Last guess was too high!";
}
}
@@ -392,17 +316,17 @@ function checkGuess() {
たくさん書きましたね!各部分に分割して、それぞれの部分を詳細に見て何をしているか説明しましょう。
-- 関数の最初の行 (上のコードの 2 行目) で、`userGuess` という変数を宣言して、現在のテキストフィールドに入力された値をセットしています。そして、組み込みの `Number()` 関数を呼び出して、テキストフィールドに入力された値が間違いなく数値であることも確認しています。
-- 次に、初めて条件分岐を伴うコードブロックが出てきます (3 行目~ 5 行目)。条件分岐は、条件の判定結果が真 (true) であるかどうかによって、次に実行するコードが変わります。見た目が少しだけ関数に似ていますが、違うものです。条件分岐の最も単純な書き方は `if` キーワードから始まり、括弧が続き、中括弧が続きます。括弧の中には分岐する条件を書きます。条件が `true` となれば、中括弧の中にあるコードが実行されます。条件が `true` にならなければ、中括弧の次のコードまで移動します。今回の条件は `guessCount` 変数が `1` であるかどうかを判定しています。(つまり、プレイヤーの初回の予想かどうかを判定しているのです。)
+- 関数の最初の行(上のコードの 2 行目)で、`userGuess` という変数を宣言して、現在のテキストフィールドに入力された値をセットしています。そして、組み込みの `Number()` 関数を呼び出して、テキストフィールドに入力された値が間違いなく数値であることも確認しています。この変数は変更しないので、 `const` を使用して宣言します。
+- 次に、初めて条件分岐を伴うコードブロックが出てきます。条件分岐は、条件の判定結果が真 (true) であるかどうかによって、次に実行するコードが変わります。見た目が少しだけ関数に似ていますが、違うものです。条件分岐の最も単純な書き方は `if` キーワードから始まり、括弧が続き、中括弧が続きます。括弧の中には分岐する条件を書きます。条件が `true` となれば、中括弧の中にあるコードが実行されます。条件が `true` にならなければ、中括弧の次のコードまで移動します。今回の条件は `guessCount` 変数が `1` であるかどうかを判定しています。(つまり、プレイヤーの初回の予想かどうかを判定しているのです。)
```js
guessCount === 1;
```
- もしそうなら、`guesses` 段落 ({{htmlelement("p")}}要素) の内容を "`前回の予想:`" に変更します。違うなら、何もしません。
+ もしそうなら、guesses の段落({{htmlelement("p")}} 要素)の内容を `Previous guesses:` に変更します。違うなら、何もしません。
-- 6 行目では、`guesses` 段落の最後にスペースを付けて、現在の `userGuess` 変数の値を追加しています。なので、予想が表示されるときにはスペースで区切られて表示されます。
-- 次の部分 (8 行目~ 24 行目) には、確認すべきことがいくつかあります。
+- 次に、テンプレートリテラルを使用して、現在の `userGuess` 変数の値を空白と共に `guesses` の段落の末尾に追加しています。
+- 次の部分には、確認すべきことがいくつかあります。
- 最初の `if(){ }` は、プレイヤーの予想が、JavaScript のコードの先頭で設定したランダムな数字を格納した `randomNumber` 変数の値と等しいかどうかを調べています。もし等しければ、プレイヤーは正解し勝ちとなるため、祝福のメッセージを素敵な緑色で表示します。さらに、数字の大小を表示する段落をクリアして、後で説明する `setGameOver()` 関数を実行します。
- 今度は `else if(){ }` という部分で、ひとつ前の条件に続けて条件を書いています。この条件はユーザの最後のターンかどうかを調べています。もし最後の回ならば、プログラムは祝福のメッセージの代わりにゲームオーバーメッセージとする以外は、ひとつ前の部分と同じことをします。
@@ -412,7 +336,7 @@ function checkGuess() {
### イベント
-ここまでで、`checkGuess()` 関数を上手に実装することができました。しかしまだ何も起きません。なぜなら、まだこの関数を呼び出していないからです。出来れば、"予想を入力"のボタンが押されたときに、この関数が呼ばれるようにしたいです。そのためにはイベントを使います。イベントとは、ボタンが押されたり、ページが読み込まれたり、ビデオを再生したりといったブラウザーで起きることで、それに反応してコードを実行させることができます。イベントが発生したことを聞き取る構成が**イベントリスナー**で、発生したイベントに反応して実行されるコードブロックが**イベントハンドラー**です。
+ここまでで、`checkGuess()` 関数を上手に実装することができました。しかしまだ何も起きません。なぜなら、まだこの関数を呼び出していないからです。出来れば、"予想を入力"のボタンが押されたときに、この関数が呼ばれるようにしたいです。そのためにはイベントを使います。イベントとは、ボタンが押されたり、ページが読み込まれたり、ビデオを再生したりといったブラウザーで起きることで、それに反応してコードを実行させることができます。**イベントリスナー**は特定のイベントを監視し、イベントが発生したことに応答して実行するコードブロックである**イベントハンドラー**を呼び出します。
`checkGuess()` 関数の下に、以下の一文を加えましょう。
@@ -433,8 +357,8 @@ function setGameOver() {
guessField.disabled = true;
guessSubmit.disabled = true;
resetButton = document.createElement("button");
- resetButton.textContent = "新しいゲームを始める";
- document.body.appendChild(resetButton);
+ resetButton.textContent = "Start new game";
+ document.body.append(resetButton);
resetButton.addEventListener("click", resetGame);
}
```
@@ -450,8 +374,8 @@ function resetGame() {
guessCount = 1;
const resetParas = document.querySelectorAll(".resultParas p");
- for (let i = 0; i < resetParas.length; i++) {
- resetParas[i].textContent = "";
+ for (const resetPara of resetParas) {
+ resetPara.textContent = "";
}
resetButton.parentNode.removeChild(resetButton);
@@ -470,7 +394,7 @@ function resetGame() {
ちょっと長めのこのコードブロックは、プレイヤーが次のゲームができるように、ゲームを起動したときの状態に完全にリセットします。
- `guessCount` に 1 を代入して元に戻します。
-- 情報段落のすべてを消去します。
+- 情報の段落のテキストをすべて空にします。 `
` 内のすべての段落を選択し、それぞれをループして `textContent` を `''` (空文字列)に設定します。
- リセットボタンをページから削除します。
- 入力フォームの要素を使用可能にして、新しい予想が入力できるようにテキストフィールドを空にしてフォーカスを設定します。
- 最終結果を表示している `lastResult` 段落の背景色を消去します。
@@ -480,36 +404,45 @@ function resetGame() {
この記事では、あと少し説明しなければならない大事な機能が残っています。既に見ているはずですが気づいたでしょうか。
-### ループ (繰り返し)
+### ループ(繰り返し)
-上のコードでもう少し詳しく説明しなければならないのは、[for](/ja/docs/Web/JavaScript/Reference/Statements/for) ループです。ループはプログラミングにおいてとても重要な概念です。ある条件に達するまで何度も何度もコードを繰り返し実行することができます。
+上のコードでもう少し詳しく説明しなければならないのは、 [for...of](/ja/docs/Web/JavaScript/Reference/Statements/for...of) ループです。ループはプログラミングにおいてとても重要な概念です。ある条件に達するまで何度も何度もコードを繰り返し実行することができます。
-[ブラウザーの開発者ツールの JavaScript コンソール](/ja/docs/Learn/Common_questions/What_are_browser_developer_tools) をもう一度開いて次のコードを入力してみましょう。
+[ブラウザーの開発者ツールの JavaScript コンソール](/ja/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools) をもう一度開いて次のコードを入力してみましょう。
```js
-for (let i = 1; i < 21; i++) {
- console.log(i);
+const fruits = ["apples", "bananas", "cherries"];
+for (const fruit of fruits) {
+ console.log(fruit);
}
```
-どうでしょうか。`1` から `20` の数字がコンソールに出力されましたね。これが繰り返しです。`for` ループには 3 つの入力値 (引数) が必要です。
+どうなりましたか。 `'apples', 'bananas', 'cherries'` の文字列がコンソールに出力されましたね。
+
+これはループのためです。 `const fruits = ['apples', 'bananas', 'cherries'];` の行は配列を作成します。このモジュールの後半で、[配列の完全ガイド](/ja/docs/Learn/JavaScript/First_steps/Arrays)を読み終えてから作業しますが、とりあえず、配列は項目(この場合は文字列)の集合です。
+
+`for...of` ループは配列でそれぞれの項目を取得し、それに対して JavaScript を実行する方法を提供します。 `for (const fruit of fruits)`という行は次のような意味です。
+
+1. `fruits` の最初の項目を取得する。
+2. その項目を変数 `fruit` に設定し、中括弧 `{}` の間のコードを実行する。
+3. `fruits` の中の次の項目を取得し、`fruits` の末尾に達するまで 2 を繰り返す。
-1. **初期値**: 上の例では、`i` を 1 からはじめましたが、どんな数字でもかまいません。さらに言えば、`i` という名前でなくともかまいません。ただし、ループでは短くて覚えやすいため、`i` という変数の名前がよく使われることを覚えておいてください。
-2. **条件**: 上の例では `i < 21` をループが継続する条件としました。つまりループは `i` が 21 未満でなくなるまで継続します。`i` が 21 になったらループの実行が終了します。
-3. **増分**: 上の例では増分を `i++` と指定しています。つまり「`i` に 1 を足し」ます。ループは `i` が 21 になるまで(それは 2.の継続条件で説明しましたね) 、`i` の取りうる値について、それぞれ一度ずつ実行されます。今回の例では繰り返しのコードが実行される度に `i` の値を{{domxref("Console.log", "console.log()")}}を使用してコンソールに出力しています。
+この場合、中括弧の中のコードは `fruit` をコンソールに書き出しています。
-さて、それでは数字当てゲームに登場したループを見てみましょう。`resetGame()` 関数に以下の記述がありますね。
+さて、それでは数当てゲームに登場したループを見てみましょう。`resetGame()` 関数に以下の記述がありますね。
```js
const resetParas = document.querySelectorAll(".resultParas p");
-for (let i = 0; i < resetParas.length; i++) {
- resetParas[i].textContent = "";
+for (const resetPara of resetParas) {
+ resetPara.textContent = "";
}
```
-このコードは `
` に含まれるすべての {{htmlelement("p")}} 要素を {{domxref("Document.querySelectorAll", "querySelectorAll()")}} というメソッドを使用して取得しています。そしてループを使用してその一つ一つの要素の中身を消去しています。
+このコードは `
` に含まれるすべての段落を、 {{domxref("Document.querySelectorAll", "querySelectorAll()")}} メソッドを使用して取得しています。そしてループを使用してその一つ一つの要素の中身を消去しています。
-### オブジェクトについて(簡単に)
+たとえ `resetPara` が定数であっても、`textContent` のような内部プロパティは変更できることに注意してください。
+
+### オブジェクトについての簡単な説明
オブジェクトについて説明する前に、プログラムに対して最後のちょっとした改良を加えてみましょう。JavaScript の書き出しの方にある `let resetButton;` のすぐ下に、以下の行を追記してファイルを保存します。
@@ -527,9 +460,9 @@ guessField.focus();
const guessField = document.querySelector(".guessField");
```
-この参照を得るため、{{domxref("document")}} オブジェクトの{{domxref("document.querySelector", "querySelector()")}} メソッドを使用しています。`querySelector()` はある情報 (必要な要素を選択する [CSS セレクタ](/ja/docs/Learn/CSS/Introduction_to_CSS/Selectors)) を受け取ります。
+この参照を得るため、{{domxref("document")}} オブジェクトの{{domxref("document.querySelector", "querySelector()")}} メソッドを使用しています。`querySelector()` はある情報 (必要な要素を選択する [CSS セレクタ](/ja/docs/Learn/CSS/Building_blocks/Selectors)) を受け取ります。
-`guessField` に {{htmlelement("input")}} 要素の参照が得られたので、これでたくさんのプロパティ (基本的にはオブジェクトの内部に保持されている変数のことですが、中には値を変えられないものもあります) とメソッド (基本的にはオブジェクトの内部に保持されている関数のこと) にアクセスできるようになりました。ようやく {{htmlelement("input")}} 要素のメソッドの一つである `focus()` メソッドを使ってテキストフィールドにフォーカスを当てられます。
+`guessField` に {{htmlelement("input")}} 要素の参照が得られたので、これでたくさんのプロパティ(基本的にはオブジェクトの内部に保持されている変数のことですが、中には値を変えられないものもあります)とメソッド(基本的にはオブジェクトの内部に保持されている関数のこと)にアクセスできるようになりました。ようやく input 要素のメソッドの一つである `focus()` メソッドを使ってテキストフィールドにフォーカスを当てられます。
```js
guessField.focus();
@@ -542,41 +475,32 @@ guessField.focus();
少しブラウザーが持っているオブジェクトで遊んでみましょう。
1. まずブラウザーでプログラムを開いてください
-2. 次に[開発者ツール](/ja/docs/Learn/Common_questions/What_are_browser_developer_tools)を開き、JavaScript コンソールのタブが開いたのを確認します
+2. 次に[開発者ツール](/ja/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools)を開き、 JavaScript コンソールのタブが開いたのを確認します
3. `guessField` と入力してみてください。するとコンソールに {{htmlelement("input")}} 要素を含む変数が表示されます。また、気づいたと思いますが、コンソールは実行中の環境にある変数名を含んだオブジェクト名を自動的に補完しました!
-4. さらに下のように入力してみてください
+4. さらに下のように入力してみてください。
```js
- guessField.value = "Hello";
+ guessField.value = 2;
```
`value` プロパティは今のテキストフィールドに入力された値を表しています。コマンドを入力したら、テキストフィールドの値が変わりましたね!
-5. さらに続けて `guesses` と入力して
-
-
Return
-
- /
-
-
Enter
-
- を押します。{{htmlelement("p")}} 要素を含む変数がコンソールに表示されますね。
-
-6. そして次のコードを入力します
+5. さらに続けて `guesses` と入力してリターンを押してみてください。コンソールには {{htmlelement("p")}} 要素を含む変数が表示されますね。
+6. そして次のコードを入力します。
```js
guesses.value;
```
- コンソールには `undefined` (未定義) という文字が返ってきましたね。`value` というプロパティは {{htmlelement("p")}} 要素にはないためです。
+ コンソールには `undefined` という文字が返ってきましたね。段落には `value` プロパティがないからです。
-7. パラグラフ内のテキストを変えたい場合には、{{domxref("Node.textContent", "textContent")}} プロパティを使用する必要があります。こうしてみます
+7. 段落内のテキストを変えたい場合には、 {{domxref("Node.textContent", "textContent")}} プロパティを使用する必要があります。次のようにしてみてください。
```js
guesses.textContent = "Where is my paragraph?";
```
-8. ちょっと遊んでみましょう。下のコードをひとつづつ入力してみてください。
+8. ちょっと遊んでみましょう。下のコードを一つずつ入力してみてください。
```js
guesses.style.backgroundColor = "yellow";
@@ -589,6 +513,6 @@ guessField.focus();
## ここで一息
-これで数字当てゲームができました。最後までついて来れましたね!作ったプログラムを動かしてみてください 。(最後のプログラムは[こちらでも遊べます](http://mdn.github.io/learning-area/javascript/introduction-to-js-1/first-splash/number-guessing-game.html)。) もし作ったプログラムが動かなければ、[ソースコード](https://github.com/mdn/learning-area/blob/master/javascript/introduction-to-js-1/first-splash/number-guessing-game.html)と見比べてみてください。
+これで数当てゲームができました。最後までついて来れましたね!作ったプログラムを動かしてみてください 。(最後のプログラムは[こちらでも遊べます](https://mdn.github.io/learning-area/javascript/introduction-to-js-1/first-splash/number-guessing-game.html)。)もし作ったプログラムが動かなければ、[ソースコード](https://github.com/mdn/learning-area/blob/main/javascript/introduction-to-js-1/first-splash/number-guessing-game.html)と見比べてみてください。
{{PreviousMenuNext("Learn/JavaScript/First_steps/What_is_JavaScript", "Learn/JavaScript/First_steps/What_went_wrong", "Learn/JavaScript/First_steps")}}
diff --git a/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.md b/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.md
index 8831ed979b3b4a..c6a6f1050c5d8c 100644
--- a/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.md
+++ b/files/ja/learn/tools_and_testing/client-side_javascript_frameworks/react_getting_started/index.md
@@ -40,7 +40,7 @@ l10n:
## React の基礎
-公式のキャッチフレーズにあるように、[React](https://react.dev/) はユーザーインターフェイスを構築するためのライブラリーです。React はフレームワークではなく、ウェブに限定されるものでもありません。他のライブラリーと共に使用して、特定の環境にレンダリングしますます。たとえば、[React Native](https://reactnative.dev/) はモバイルアプリケーションの構築に使用できます。
+公式のキャッチフレーズにあるように、[React](https://react.dev/) はユーザーインターフェイスを構築するためのライブラリーです。React はフレームワークではなく、ウェブに限定されるものでもありません。他のライブラリーと共に使用して、特定の環境にレンダリングします。たとえば、[React Native](https://reactnative.dev/) はモバイルアプリケーションの構築に使用できます。
ウェブ向けに構築するには、開発者は [ReactDOM](https://reactjs.org/docs/react-dom.html) と連携して React を使用します。React と ReactDOM は、他の本当のウェブ開発フレームワークと同じ土台で頻繫に議論され、同じような問題を解決するために用いられます。React を「フレームワーク」と呼ぶとき、それは口語的な理解として扱います。
@@ -104,7 +104,7 @@ JSX の詳細については、React チームの [Writing Markup with JSX](http
## 最初の React アプリをセットアップする
-React を使用する方法はたくさんありますが、前述のように、コマンドラインインターフェイス (CLI) ツールの create-react-app を使用します。これにより、いくつかのパッケージをインストールしていくつかを作成することにより、React アプリケーションの開発プロセスをスムーズにします。
+React を使用する方法はたくさんありますが、前述のように、コマンドラインインターフェイス (CLI) ツールの create-react-app を使用します。これにより、いくつかのパッケージをインストールして作成することにより、React アプリケーションの開発プロセスをスムーズにします。
[`
-
-```
-
-最後の予防措置として、 {{HTMLElement("noscript")}} 要素を {{HTMLElement("head")}} 要素内に明示的に追加して、 JavaScript を無効にしたユーザーに対して、このページが JavaScript に依存していることを警告することができます。
-
-```xml
-
- このウェブページは JavaScript を有効にする必要があります。
- JavaScript はオブジェクト指向のコンピュータープログラミング言語で、
- ウェブブラウザー内で対話的な効果を生成するためによく使われます。
- JavaScript を有効化する方法
-
-```
-
-まとめると、 Internet Explorer (バージョン 8 以下) を含め、また、それらのブラウザーがスクリプトを利用しないように設定されていても正しく表示を代替する、 HTML5 非対応ブラウザー向けの HTML5 のセクショニングおよび見出し要素の対応を可能にするコードは以下になります。
-
-```xml
-
-
- このウェブページは JavaScript を有効にする必要があります。
- JavaScript はオブジェクト指向のコンピュータープログラミング言語で、
- ウェブブラウザー内で対話的な効果を生成するためによく使われます。
- JavaScript を有効化する方法
-
-```
-
-> **メモ:** このコードは [HTML validator](https://validator.w3.org/) ではエラーが発生します。これは必ずしも本当に悪いことだとは言えません — サイトには若干のバリデーションエラーがあるものです — が、気を付けなければなりません。
-
-## まとめ
-
-HTML5 で導入された新しい意味づけ要素により、標準的な方法でウェブ文書の構造を記述することができるようになります。これらの要素は、 HTML5 ブラウザーを持っていて、ページを理解するのに役立つ構造を必要としている人、例えば、何らかの支援技術の助けを必要としている人に大きな利点をもたらします。これらの新しい意味づけ要素は使用が簡単で、負担がほとんどなく、 HTML5 に非対応のブラウザーでも動作するようにすることができます。したがって、それらは制限なく使用されるべきです。
diff --git a/files/ja/orphaned/web/web_components/status_in_firefox/index.md b/files/ja/orphaned/web/web_components/status_in_firefox/index.md
index 18e756f1ba54d6..50c307316368c9 100644
--- a/files/ja/orphaned/web/web_components/status_in_firefox/index.md
+++ b/files/ja/orphaned/web/web_components/status_in_firefox/index.md
@@ -5,6 +5,6 @@ slug: orphaned/Web/Web_Components/Status_in_Firefox
{{DefaultAPISidebar("Web Components")}}{{SeeCompatTable}}
-[Web Components](/docs/Web/Web_Components) は、とても新しい技術で、ブラウザ実装者や Web 開発者が実際に利用した経験を集めて仕様を考案しています。実装状況は変化しやすく、次々と進化していきます。この記事は、Firefox や Firefox OS で使用されている [Gecko](/docs/Mozilla/Gecko) での実装状況の一覧を示します。
+[Web Components](/docs/Web/API/Web_components) は、とても新しい技術で、ブラウザ実装者や Web 開発者が実際に利用した経験を集めて仕様を考案しています。実装状況は変化しやすく、次々と進化していきます。この記事は、Firefox や Firefox OS で使用されている [Gecko](/docs/Mozilla/Gecko) での実装状況の一覧を示します。
-
ネイティブサポート Firefox と Firefox OS では、以下の機能が実装されており、デフォルトで有効です:
{{HTMLElement("template")}} 今後実装予定の機能 新しい同意に基づいた Shadow DOM の実装は、2016 年 Q1 にリリース予定です。Anne と Wilson のブログ投稿に詳細が記述されています。しかし、まだ仕様について 多くの議論や課題 があり、すべてのブラウザへの実装は将来となるでしょう。 Custom elements は、最初からやり直しで、ECMAScript 6 の文法を使用してリビルドする計画 (つまり、より少ないプロトタイプを基に作成) です。Apple の Ryosuke Niwa が、実装をいくつか具体化しています。古い文法は、しばらくの間、新しい文法と共に Chrome で動作するでしょう (例えば、{{domxref("Element.attachShadow()")}} に対して {{domxref("Element.createShadowRoot()")}})、しかし、Firefox ではネイティブでは動作しないでしょう。 これらの問題について、2016 年 1 月の会議 でベンダが議論するでしょう。 放棄された機能 これらの機能は、実装の検討がされており、実験的に実装されていたものもあります。今後は改良もされず、削除されるでしょう。
HTML imports の使用は、ES6 モジュールで開発者が何ができるかを確認することは、待って欲しいです (まだ実装されていません。[Firefox バグ 568953](https://bugzil.la/568953) をご覧ください)。Firefox から削除される予定の未完了の import の実装がありました。Firefox でポリフィルを使用する Firefox でポリフィルを使用する際に考慮すべき注意事項があります:
about:config
の dom.webcomponents.enabled
設定を true
に変更して Firefox で Web Components を有効にすると、完全でないネイティブ実装が動き始め、ポリフィルが混乱する可能性があります。webcomponents.js ポリフィルを使用した Shadow DOM のポリフィルは、スタイルをカプセル化できません。そのため、スタイルは bleed through でしょう。ポリフィルを使用して構築されたサイトは、ネイティブの Shadow DOM を サポートした 環境と異なる見た目になることに注意してください。Shadow DOM のポリフィルは、機能にフックするために DOM 要素のプロトタイプをリライトするため、とても動作が遅いです (ポリフィルというよりポリリプレイスです!)。 Shadow DOM を使用する必要がない場合、webcomponents.js ポリフィルの webcomponents-lite.js バージョンを使用することをお勧めします。このバージョンは、Shadow DOM を使用しないポリフィルです。
+
ネイティブサポート Firefox と Firefox OS では、以下の機能が実装されており、デフォルトで有効です:
{{HTMLElement("template")}} 今後実装予定の機能 新しい同意に基づいた Shadow DOM の実装は、2016 年 Q1 にリリース予定です。Anne と Wilson のブログ投稿に詳細が記述されています。しかし、まだ仕様について 多くの議論や課題 があり、すべてのブラウザへの実装は将来となるでしょう。 Custom elements は、最初からやり直しで、ECMAScript 6 の文法を使用してリビルドする計画 (つまり、より少ないプロトタイプを基に作成) です。Apple の Ryosuke Niwa が、実装をいくつか具体化しています。古い文法は、しばらくの間、新しい文法と共に Chrome で動作するでしょう (例えば、{{domxref("Element.attachShadow()")}} に対して {{domxref("Element.createShadowRoot()")}})、しかし、Firefox ではネイティブでは動作しないでしょう。 これらの問題について、2016 年 1 月の会議 でベンダが議論するでしょう。 放棄された機能 これらの機能は、実装の検討がされており、実験的に実装されていたものもあります。今後は改良もされず、削除されるでしょう。
HTML imports の使用は、ES6 モジュールで開発者が何ができるかを確認することは、待って欲しいです (まだ実装されていません。[Firefox バグ 568953](https://bugzil.la/568953) をご覧ください)。Firefox から削除される予定の未完了の import の実装がありました。Firefox でポリフィルを使用する Firefox でポリフィルを使用する際に考慮すべき注意事項があります:
about:config
の dom.webcomponents.enabled
設定を true
に変更して Firefox で Web Components を有効にすると、完全でないネイティブ実装が動き始め、ポリフィルが混乱する可能性があります。webcomponents.js ポリフィルを使用した Shadow DOM のポリフィルは、スタイルをカプセル化できません。そのため、スタイルは bleed through でしょう。ポリフィルを使用して構築されたサイトは、ネイティブの Shadow DOM を サポートした 環境と異なる見た目になることに注意してください。Shadow DOM のポリフィルは、機能にフックするために DOM 要素のプロトタイプをリライトするため、とても動作が遅いです (ポリフィルというよりポリリプレイスです!)。 Shadow DOM を使用する必要がない場合、webcomponents.js ポリフィルの webcomponents-lite.js バージョンを使用することをお勧めします。このバージョンは、Shadow DOM を使用しないポリフィルです。
diff --git a/files/ja/web/accessibility/aria/aria_live_regions/index.md b/files/ja/web/accessibility/aria/aria_live_regions/index.md
index 12c3e5f2d5548f..e551e3c1941710 100644
--- a/files/ja/web/accessibility/aria/aria_live_regions/index.md
+++ b/files/ja/web/accessibility/aria/aria_live_regions/index.md
@@ -1,38 +1,59 @@
---
title: ARIA ライブリージョン
slug: Web/Accessibility/ARIA/ARIA_Live_Regions
+l10n:
+ sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc
---
+
+
JavaScript を使うと、検索結果のリストを瞬時に更新する、もしくはユーザーの操作を必要としないような控えめなアラートや通知を表示するなど、ページ全体をリロードせずにページの一部を動的に変更することができます。 これらの変更は通常ページを見ることのできるユーザーにとっては視覚的に明らかですが、支援技術ユーザーにとっては明確ではないかもしれません。ARIA ライブリージョンはこのギャップを埋め、動的なコンテンツの変更を支援技術により通知できるやり方で、プログラムによって表出させる方法を提供します。
> **メモ:** 支援技術はライブリージョンへのコンテンツの _動的な_ 変更を通知します。
->
> `aria-live` 属性もしくは 特化したライブリージョン `role` (例えば `role="alert"` )を、変更をアナウンスしたい要素に含めることで有効になりますが、変更が起こる前にこれらの属性が追加されている必要があります。 — 最初からマークアップに含まれていても、 JavaScript で動的に追加しても構いません。
## ライブリージョン
ページのリロードなしに更新される動的なコンテンツは、ほとんどの場合領域もしくはウィジェットのどちらかです。 対話的でないシンプルなコンテンツの変更は、ライブリージョンとして記されるべきです。ライブリージョンは `aria-live` 属性を使って明示するべきです。
-**`aria-live`**: `aria-live=POLITENESS_SETTING` はスクリーンリーダーがライブリージョンの更新処理の優先度を設定するために使われます。設定は `off`、`polite`、`assertive` で、デフォルトは `off` です。この属性は間違いなく最も重要な属性です。
+**`aria-live`**: `aria-live=POLITENESS_SETTING` はスクリーンリーダーがライブリージョンの更新処理の優先度を設定するために使われます。設定は `off`、`polite`、`assertive` で、既定は `off` です。この属性は間違いなく最も重要な属性です。
通常、`aria-live="polite"` のみが使われます。ユーザーにとって重要な更新を受け取るが、うるさくなるほど速くすべきでない領域にはこの属性を設定すべきです。スクリーンリーダーはユーザーがアイドル状態になったときに読み上げを行います。
`aria-live="assertive"` は、即時に伝えてユーザーの注意を引く必要のある、時間にシビアな通知にのみ使用します。 一般的に assertive なライブリージョンへの変更は、スクリーンリーダーがその時に読み上げているものに割り込みます。つまり、うるさかったり、混乱の元になり得るので、控えめに使うべきです。
-`aria-live="off"` は要素のデフォルトとして扱われるので、明示的に指定する必要はありません。ただし、暗黙のライブリージョンロール (例えば `role="alert"` ) を持つ要素からの出力を止めたい場合は話が別です。
+`aria-live="off"` は要素の既定として扱われるので、明示的に指定する必要はありません。ただし、暗黙のライブリージョンロール(例えば `role="alert"`)を持つ要素からの出力を止めたい場合は話が別です。
### 基本的な例: 有益な画面上の情報を更新するドロップダウンボックス
惑星についての情報を提供することに特化したウェブサイトにドロップダウンボックスがあります。ドロップダウンから惑星が選ばれたとき、選択された惑星の情報でページ上のある領域が更新されます。
-#### HTML
-
```html
Planet information
Planet:
- Select a planet…
+ Select a planet…
Mercury
Venus
Earth
@@ -54,8 +75,6 @@ JavaScript を使うと、検索結果のリストを瞬時に更新する、も
```
-#### JavaScript
-
```js
const PLANETS_INFO = {
mercury: {
@@ -109,35 +128,68 @@ renderPlanetInfoButton.addEventListener("click", (event) => {
});
```
-#### 結果
-
-{{EmbedLiveSample('Dropdown_box_updates_useful_onscreen_information', '', 350)}}
+{{EmbedLiveSample('Basic_example_Dropdown_box_updates_useful_onscreen_information', '', 350)}}
ユーザーが新しい惑星を選択したとき、ライブリージョンの情報が通知されます。ライブリージョンは `aria-live="polite"` を持っているため、スクリーンリーダーはユーザーが一時停止するまで、更新の通知を待ちます。例えばリストを下りながら他の惑星を選択してもライブリージョンの更新は通知されないでしょう。最終的に選ばれた惑星でのみライブリージョンの更新は通知されます。
-ここにはライブリージョンへ (字幕を通して) 更新を通知している、Mac に内蔵している VoiceOver のスクリーンショットがあります:
+こちらはライブリージョンへ(字幕を通して)更新を通知している、Mac に内蔵している VoiceOver のスクリーンショットです。
-![A screenshot of VoiceOver on Mac announcing the update to a live region. Subtitles are shown in the picture.](Web_Accessibility_ARIA_ARIA_Live_Regions.png)
+![Mac の VoiceOver のスクリーンショット。字幕が表示されています。](web_accessibility_aria_aria_live_regions.png)
## ライブリージョン属性を含むロール
-次の [`role="…"`](/ja/docs/Web/Accessibility/ARIA/Roles) 値を持つ要素は、デフォルトではライブリージョンのように振る舞います:
-
-| ロール | 説明 | 互換性に関する注意事項 |
-| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| log | チャット、エラー、ゲームもしくは別種のログ | 互換性を最大限にするために、このロールを使う際には冗長な `aria-live="polite"` を追加します。 |
-| status | ある種の更新された状態を表すステータスバーもしくはスクリーン領域。スクリーンリーダーのユーザーは現在のステータスを読みとるための特別なコマンドを持っています。 | 互換性を最大限にするために、このロールを使う際には冗長な `aria-live="polite"` を追加します。 |
-| alert | スクリーン上で点滅するエラーもしくはアラートメッセージ。アラートは特に、クライアントサイドでユーザーの入力を検査する際の通知で重要です。[アラートの例](https://www.w3.org/WAI/ARIA/apg/example-index/alert/alert.html) | 互換性を最大限にするために、このロールを使う際に `aria-live="assertive"` を追加するよう勧める人もいます。しかし、`aria-live` と `role=alert` の両方を追加すると iOS の VoiceOver で二重に読み上げられるという問題を引き起こします。 |
-| progressbar | ウィジェットとライブリージョンのハイブリッド。aria-valuemin や aria-valuenow、aria-valuemax と共に使います。 (TBD: 情報の追加を検討中) | |
-| marquee | 株式相場表示機のようなスクロールするテキストのためのものです。 | |
-| timer | カウントダウンタイマーやストップウォッチなどの、ある種のタイマーや時計の読み上げ。 | |
+次の [`role="…"`](/ja/docs/Web/Accessibility/ARIA/Roles) 値を持つ要素は、既定ではライブリージョンのように振る舞います。
+
+
+
+
+ ロール
+ 説明
+ 互換性に関する注意事項
+
+
+
+
+ log
+ チャット、エラー、ゲーム、その他の種類のログ
+ 互換性を最大限にするために、このロールを使う際には冗長な aria-live="polite"
を追加してください。
+
+
+ status
+ ある種の更新された状態を表すステータスバーもしくは画面上の領域。スクリーンリーダーのユーザーには、現在のステータスを読みとるための特別なコマンドがあります。
+ 互換性を最大限にするために、このロールを使う際には冗長な aria-live="polite"
を追加してください。
+
+
+ alert
+ スクリーン上で点滅するエラーもしくはアラートメッセージ。アラートは特に、クライアントサイドでユーザーの入力を検査する際の通知で重要です。アラートの例。
+ 互換性を最大限にするために、このロールを使う際に冗長に aria-live="assertive"
を追加するよう勧める人もいます。しかし、aria-live
と role="alert"
の両方を追加すると iOS の VoiceOver で二重に読み上げられるという問題を引き起こします。
+
+
+ progressbar
+ ウィジェットとライブリージョンのハイブリッド。aria-valuemin
、aria-valuenow
、aria-valuemax
と共に使います。(TBD: 情報の追加を検討中)
+
+
+
+ marquee
+ 株式相場表示機のようなスクロールするテキストのためのものです。
+
+
+
+ timer
+ カウントダウンタイマーやストップウォッチなどの、ある種のタイマーや時計の読み上げ。
+
+
+
+
## ライブリージョン属性についてのさらなる説明
ライブリージョンはとてもよくサポートされています。The Paciello Group は、2014年に、[ライブリージョンのサポート状況についての情報](https://www.tpgi.com/screen-reader-support-aria-live-regions/) (2014) を投稿しました。Paul Jadam は特に [`aira-atomic` と `aria-relevant` のサポート](https://pauljadam.com/demos/aria-atomic-relevant.html)についてのリサーチをしました。
-1. **`aria-atomic`**: `aria-atomic=BOOLEAN` は領域の一部だけが変更された場合でも、スクリーンリーダーが常にライブリージョン全体を読み上げるかどうかを設定します。可能な設定は `false` または `true` で、デフォルトは `false` です。
-2. [**`aria-relevant`**](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-relevant): `aria-relevant=[LIST_OF_CHANGES]` はどういったタイプの変更がライブリージョンに関連するかを設定します。可能な設定は `additions`、`removals`、`text`、`all` から一つ以上で、 `additions text` がデフォルトです。
+1. **`aria-atomic`**: `aria-atomic=BOOLEAN` は領域の一部だけが変更された場合でも、スクリーンリーダーが常にライブリージョン全体を読み上げるかどうかを設定します。可能な設定は `false` または `true` で、既定は `false` です。
+2. [**`aria-relevant`**](/ja/docs/Web/Accessibility/ARIA/Attributes/aria-relevant)
+
+ : `aria-relevant=[LIST_OF_CHANGES]` はどういった類の変更がライブリージョンに関連するかを設定します。可能な設定は `additions`、`removals`、`text`、`all` から一つ以上で、 `additions text` が既定です。
### 基本的な例: `aria-atomic`
@@ -158,8 +210,10 @@ function updateClock() {
document.getElementById("clock-mins").textContent =
`0${now.getMinutes()}`.substr(-2);
}
+
/* first run */
updateClock();
+
/* update every minute */
setInterval(updateClock, 60000);
```
@@ -171,7 +225,7 @@ setInterval(updateClock, 60000);
`aria-atomic="true"` はライブリージョンが更新されるたびに、コンテンツの全体 (例 "17:34") が通知されることを保証します。
```html
-
+…
```
`aria-atomic` のもう一つの例 - ユーザーのアクションによる結果の更新/通知
@@ -191,6 +245,7 @@ setInterval(updateClock, 60000);
```js
function change(event) {
const yearOut = document.getElementById("year-output");
+
switch (event.target.id) {
case "year":
yearOut.innerHTML = event.target.value;
@@ -211,16 +266,16 @@ function change(event) {
```html
```
ARIA ライブプロパティの内訳:
- `aria-live="polite"` はスクリーンリーダーが更新をユーザーへ通知する前に、ユーザーがアイドル状態になるまで待つべきであることを示しています。"assertive" による中断では、ユーザーのフローを妨げるかもしれないため、これが最も一般的に使用される値です。
-- `aria-atomic` は設定されていません (デフォルトの `false` が入ります) ので、追加または削除されたユーザーのみが読み上げられ、名簿全体が都度読み上げられることはないはずです。
+- `aria-atomic` は設定されていません(既定値の `false` が入ります)ので、追加または削除されたユーザーのみが読み上げられ、名簿全体が都度読み上げられることはないはずです。
- `aria-relevant="additions removals"` により名簿に追加もしくは削除されたユーザーが読み上げられることを確かにします。
## 関連情報
-- [ARIA Roles](/ja/docs/Web/Accessibility/ARIA/Roles)
+- [ARIA ロール](/ja/docs/Web/Accessibility/ARIA/Roles)
diff --git a/files/ja/web/accessibility/aria/roles/search_role/index.md b/files/ja/web/accessibility/aria/roles/search_role/index.md
index 00cf4b86863780..8f1a3cee53bd1e 100644
--- a/files/ja/web/accessibility/aria/roles/search_role/index.md
+++ b/files/ja/web/accessibility/aria/roles/search_role/index.md
@@ -95,7 +95,7 @@ TBD
- [\
@@ -152,7 +156,7 @@ DOM を使い始めるのに、特別なものは必要ありません。
### インターフェイスとオブジェクト
-多くのオブジェクトは複数のインターフェイスを受けついでいます。例えば、 table オブジェクトでは、特別な {{domxref("HTMLTableElement")}} インターフェイスを実装しており、そのインターフェイスは `createCaption` や `insertRow` などのメソッドを含んでいます。しかし、 `table` は HTML の要素でもあるので、 DOM の {{domxref("Element")}} リファレンスの章で説明している `Element` インターフェイスも実装しています。さらには、 HTML の要素は、 DOM を考慮する限り、ウェブページや XML ページのオブジェクトモデルを作りあげるノードのツリー内にあるノードもであるので、 table オブジェクトはより基本的な `Node` インターフェイスを、 `Element` から継承して実装しています。
+多くのオブジェクトは複数のインターフェイスを継承しています。例えば、 table オブジェクトでは、特別な {{domxref("HTMLTableElement")}} インターフェイスを実装しており、そのインターフェイスは `createCaption` や `insertRow` などのメソッドを含んでいます。しかし、 `table` は HTML の要素でもあるので、 DOM の {{domxref("Element")}} リファレンスの章で説明している `Element` インターフェイスも実装しています。さらには、 HTML の要素は、 DOM を考慮する限り、ウェブページや XML ページのオブジェクトモデルを作りあげるノードのツリー内にあるノードもであるので、 table オブジェクトはより基本的な `Node` インターフェイスを、 `Element` から継承して実装しています。
次の例のように、 `table` オブジェクトの参照を入手したときは、おそらく無意識に、このオブジェクトの三つのインターフェイスをごく普通に交互に使います。
@@ -161,7 +165,9 @@ const table = document.getElementById("table");
const tableAttrs = table.attributes; // Node/Element インターフェイス
for (let i = 0; i < tableAttrs.length; i++) {
// HTMLTableElement インターフェイス: border 属性
- if (tableAttrs[i].nodeName.toLowerCase() == "border") table.border = "1";
+ if (tableAttrs[i].nodeName.toLowerCase() === "border") {
+ table.border = "1";
+ }
}
// HTMLTableElement インターフェイス: summary 属性
table.summary = "note: increased border";
@@ -175,85 +181,151 @@ table.summary = "note: increased border";
以下は、 DOM を使うウェブや XML ページのスクリプトでよく使われる API の簡単な一覧です。
-- `{{domxref("document.querySelector", "", "", "1")}}(selector)`
-- `{{domxref("document.querySelectorAll", "", "", "1")}}(name)`
-- `{{domxref("document.createElement", "", "", "1")}}(name)`
-- `parentNode.{{domxref("Node.appendChild", "appendChild", "", "1")}}(node)`
-- `element.{{domxref("element.innerHTML", "innerHTML", "", "1")}}`
-- `element.{{domxref("HTMLElement/style", "style", "", "1")}}.left`
-- `element.{{domxref("element.setAttribute", "setAttribute", "", "1")}}()`
-- `element.{{domxref("element.getAttribute", "getAttribute", "", "1")}}()`
-- `element.{{domxref("EventTarget.addEventListener", "addEventListener", "", "1")}}()`
-- `{{domxref("window.content", "", "", "1")}}`
-- `{{domxref("GlobalEventHandlers/onload", "", "", "1")}}`
-- `{{domxref("window.scrollTo", "", "", "1")}}()`
+- {{domxref("document.querySelector()")}}
+- {{domxref("document.querySelectorAll()")}}
+- {{domxref("document.createElement()")}}
+- {{domxref("Element.innerHTML")}}
+- {{domxref("Element.setAttribute()")}}
+- {{domxref("Element.getAttribute()")}}
+- {{domxref("EventTarget.addEventListener()")}}
+- {{domxref("HTMLElement.style")}}
+- {{domxref("Node.appendChild()")}}
+- {{domxref("Window.load_event", "window.onload")}}
+- {{domxref("window.scrollTo()")}}
## 例
-次の簡単な例では、 DOM の {{domxref("Document")}} API の使用方法を説明します。具体的には、{{domxref("Document")}} API の {{domxref("Document.body", "body")}} プロパティを使用して以下のものを変更する例を示しています。
+### テキストコンテンツの設定
-- 文書のテキスト色
-- 文書の背景色
-- 文書のリンク色 (すなわち、文書内のあらゆる場所のハイパーテキストリンクの色)
+この例では、 {{HTMLElement("div")}} 要素に {{HTMLElement("textarea")}} と 2 つの {{HTMLElement("button")}} 要素が入っています。ユーザーが最初のボタンをクリックすると、 `