Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 777067 of <canvas>

  • Raccourci de la révision : Web/HTML/Element/canvas
  • Titre de la révision : <canvas>
  • ID de la révision : 777067
  • Créé :
  • Créateur : SphinxKnight
  • Version actuelle ? Non
  • Commentaire

Contenu de la révision

{{HTMLRef}}

Résumé

L'élément HTML Canvas (<canvas>) permet de modifier une zone graphique via un script (habituellement en JavaScript). Par exemple, il peut être utilisé pour dessiner des graphiques, manipuler des images ou jouer des animations. Il peut être utilisé pour l'affichage d'un jeu en ligne ou tout autre contenu interactif. Il est fortement recommandé de fournir un contenu alternatif au contenu du bloc <canvas>. Ce contenu pourra être utilisé par les navigateurs plus anciens ne supportant pas l'élément <canvas> et ceux pour lesquels JavaScript est désactivé.

Pour plus d'information sur l'élément canvas, voir la page sur canvas.

  • Catégories de contenu Contenu de flux, contenu phrasé, contenu intégré, contenu palpable
  • Contenu autorisé Transparent mais sans descendant étant du contenu interactif à l'exception des éléments {{HTMLElement("a")}}, {{HTMLElement("button")}}, {{HTMLElement("input")}} dont l'attribut {{htmlattrxref("type", "input")}} vaut checkbox, radio, ou button.
  • Omission de balises {{no_tag_omission}}
  • Éléments parents autorisés Tout contenu acceptant du contenu phrasé.
  • Interface DOM {{domxref("HTMLCanvasElement")}}

Attributs

Comme les autres éléments HTML, cet élément possède les attributs globaux.

{{htmlattrdef("height")}}
La hauteur de l'espace pour l'élément, exprimée en pixels CSS. La valeur par défaut est 150.
{{htmlattrdef("moz-opaque")}} {{non-standard_inline}}
Cet attribut permet d'indiquer s'il y aura de la transparence ou non. Si le canvas sait qu'il n'y aura pas de transparence, les performances de rendu pourront être améliorées.
{{htmlattrdef("width")}}
La largeur de l'espace pour l'élément, exprimée en pixels CSS. La valeur par défaut est 300.

Description

Balise </canvas> obligatoire

À la différence de {{HTMLElement("img")}}, l'élément {{HTMLElement("canvas")}} doit être fermé avec la balise fermante </canvas>.

Dimensionnement du canvas

La taille affichée du canvas peut être modifiée avec une feuille de style. L'image est mise à l'échelle lors du rendu pour correspondre à la taille indiquée par le style. Si le rendu de l'image semble distordu, on pourra tenter de définir les attributs width et height explicitement pour l'élément et éviter d'utiliser CSS.

Exemple

<canvas id="canvas" width="300" height="300">
  Désolé, votre navigateur ne supporte pas &lt;canvas&gt;.
</canvas>

Si on utilise un canvas qui n'a pas besoin de gérer la transparence, on pourra utiliser l'attribut moz-opaque dans la balise de l'élément. Cette information sera utilisée par le moteur de rendu pour effectuer des optimisations. Cependant, cet attribut n'a pas été standardisé et ne fonctionne qu'avec les moteurs de rendus Mozilla.

<canvas id="moncanvas" moz-opaque></canvas>

Spécifications

Spécification Statut Commentaires
{{SpecName('HTML WHATWG', 'the-canvas-element.html#the-canvas-element', '<canvas>')}} {{Spec2('HTML WHATWG')}}  
{{SpecName('HTML5 W3C', 'the-canvas-element.html#the-canvas-element', '<canvas>')}} {{Spec2('HTML5 W3C')}}  

Compatibilités des navigateurs

{{CompatibilityTable}}

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple 1.0 {{CompatGeckoDesktop("1.8")}} [1][2][3] 9.0 9.0 2.0 [4]
moz-opaque {{CompatNo}} {{CompatGeckoDesktop("1.9.1")}} {{CompatNo}} {{CompatNo}} {{CompatNo}}
Fonctionnalité Firefox Mobile (Gecko) Android IE Mobile Opera Mobile Safari Mobile
Support simple {{CompatGeckoMobile("1.8")}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} 1.0
moz-opaque {{CompatGeckoMobile("1.9.1")}} {{CompatNo}} {{CompatNo}} {{CompatNo}} {{CompatNo}}

Notes spécifiques aux navigateurs

Firefox (Gecko)

  • [1] Avant Gecko 5.0 {{geckoRelease("5.0")}}, la hauteur et la largeur du canvas étaient des entiers signés au lieu d'être des entiers non-signés.
  • [2] Avant Gecko 6.0 {{geckoRelease("6.0")}}, un élément {{HTMLElement("canvas")}} avec une largeur ou une hauteur nulle était affiché avec les dimensions par défaut.
  • [3] Avant Gecko 12.0 {{geckoRelease("12.0")}}, si JavaScript était désactivé, l'élément <canvas> était affiché au lieu de montrer le contenu alternatif à utiliser (ce qui est voulu dans la spécification). Désormais, quand JavaScript est désactivé, c'est le contenu de recours (fallback) qui est utilisé.

Safari

  • [4] Bien que les premières versions de Safari ne rendaient pas la balise fermante obligatoire, la spécification indique que la balise fermante est obligatoire. Aussi, pour une meilleure compatibilité, on préfèrera ajouter la balise fermante.
  • Les versions de Safari antérieures à la version 2.0 afficheront le contenu alternatif en plus du contenu de canvas (sauf à utiliser des feuilles de style pour le masquer). Heureusement, la population utilisant ces versions devient de plus en plus rare.

Voir aussi

Source de la révision

<div>{{HTMLRef}}</div>
<h2 id="R.C3.A9sum.C3.A9">Résumé</h2>

<p>L'<strong>élément HTML <em>Canvas</em></strong> (<code>&lt;canvas&gt;</code>) permet de modifier une zone graphique via un script (habituellement en <a href="/fr/docs/Web/JavaScript">JavaScript</a>). Par exemple, il peut être utilisé pour dessiner des graphiques, manipuler des images ou jouer des animations. Il peut être utilisé pour l'affichage d'un jeu en ligne ou tout autre contenu interactif. Il est fortement recommandé de fournir un contenu alternatif au contenu du bloc <code>&lt;canvas&gt;</code>. Ce contenu pourra être utilisé par les navigateurs plus anciens ne supportant pas l'élément <code>&lt;canvas&gt;</code> et ceux pour lesquels JavaScript est désactivé.</p>

<p>Pour plus d'information sur l'élément <code>canvas</code>, voir la page sur <a href="/fr/docs/Web/HTML/Canvas">canvas</a>.</p>

<ul class="htmlelt">
 <li><dfn><a href="/fr/docs/Web/HTML/Catégorie_de_contenu">Catégories de contenu</a>&nbsp;</dfn><a href="/fr/docs/HTML/Cat%C3%A9gorie_de_contenu#Contenu_de_flux" title="/fr/docs/HTML/Cat%C3%A9gorie_de_contenu#Contenu_de_flux">Contenu de flux</a>, <a href="/fr/docs/Web/HTML/Catégorie_de_contenu#Contenu_phras.C3.A9">contenu phrasé</a>, <a href="/fr/docs/Web/HTML/Catégorie_de_contenu#Contenu_int.C3.A9gr.C3.A9">contenu intégré</a>, contenu palpable</li>
 <li><dfn>Contenu autorisé </dfn> Transparent mais sans descendant étant du <a href="/fr/docs/Web/HTML/Catégorie_de_contenu#Contenu_interactif">contenu interactif</a> à l'exception des éléments {{HTMLElement("a")}}, {{HTMLElement("button")}}, {{HTMLElement("input")}} dont l'attribut {{htmlattrxref("type", "input")}} vaut <code>checkbox</code>, <code>radio</code>, ou <code>button</code>.</li>
 <li><dfn>Omission de balises </dfn> {{no_tag_omission}}</li>
 <li><dfn>Éléments parents autorisés </dfn> Tout contenu acceptant du <a href="/fr/docs/Web/HTML/Catégorie_de_contenu#Contenu_phras.C3.A9">contenu phrasé</a>.</li>
 <li><dfn>Interface DOM </dfn> {{domxref("HTMLCanvasElement")}}</li>
</ul>

<h2 id="Attributs">Attributs</h2>

<p>Comme les autres éléments HTML, cet élément possède les <a href="/fr/docs/Web/HTML/Attributs_globaux">attributs globaux</a>.</p>

<dl>
 <dt>{{htmlattrdef("height")}}</dt>
 <dd>La hauteur de l'espace pour l'élément, exprimée en pixels CSS. La valeur par défaut est 150.</dd>
 <dt>{{htmlattrdef("moz-opaque")}} {{non-standard_inline}}</dt>
 <dd>Cet attribut permet d'indiquer s'il y aura de la transparence ou non. Si le canvas sait qu'il n'y aura pas de transparence, les performances de rendu pourront être améliorées.</dd>
 <dt>{{htmlattrdef("width")}}</dt>
 <dd>La largeur de l'espace pour l'élément, exprimée en pixels CSS. La valeur par défaut est 300.</dd>
</dl>

<h2 id="Description">Description</h2>

<h3 id="Balise_&lt;.2Fcanvas&gt;_obligatoire">Balise <code>&lt;/canvas&gt;</code> obligatoire</h3>

<p>À la différence de {{HTMLElement("img")}}, l'élément {{HTMLElement("canvas")}} doit être fermé avec la balise fermante <code>&lt;/canvas&gt;</code>.</p>

<h3 id="Dimensionnement_du_canvas">Dimensionnement du canvas</h3>

<p>La taille affichée du canvas peut être modifiée avec une feuille de style. L'image est mise à l'échelle lors du rendu pour correspondre à la taille indiquée par le style. Si le rendu de l'image semble distordu, on pourra tenter de définir les attributs <code>width</code> et <code>height</code> explicitement pour l'élément et éviter d'utiliser CSS.</p>

<h2 id="Exemple">Exemple</h2>

<pre class="brush: html">
&lt;canvas id="canvas" width="300" height="300"&gt;
  Désolé, votre navigateur ne supporte pas &amp;lt;canvas&amp;gt;.
&lt;/canvas&gt;
</pre>

<p>Si on utilise un canvas qui n'a pas besoin de gérer la transparence, on pourra utiliser l'attribut moz-opaque dans la balise de l'élément. Cette information sera utilisée par le moteur de rendu pour effectuer des optimisations. Cependant, cet attribut n'a pas été standardisé et ne fonctionne qu'avec les moteurs de rendus Mozilla.</p>

<pre class="brush: html">
&lt;canvas id="moncanvas" moz-opaque&gt;&lt;/canvas&gt;
</pre>

<h2 id="Specifications" name="Specifications">Spécifications</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Spécification</th>
   <th scope="col">Statut</th>
   <th scope="col">Commentaires</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('HTML WHATWG', 'the-canvas-element.html#the-canvas-element', '&lt;canvas&gt;')}}</td>
   <td>{{Spec2('HTML WHATWG')}}</td>
   <td>&nbsp;</td>
  </tr>
  <tr>
   <td>{{SpecName('HTML5 W3C', 'the-canvas-element.html#the-canvas-element', '&lt;canvas&gt;')}}</td>
   <td>{{Spec2('HTML5 W3C')}}</td>
   <td>&nbsp;</td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilit.C3.A9s_des_navigateurs">Compatibilités des navigateurs</h2>

<p>{{CompatibilityTable}}</p>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Fonctionnalité</th>
   <th>Chrome</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari</th>
  </tr>
  <tr>
   <td>Support simple</td>
   <td>1.0</td>
   <td>{{CompatGeckoDesktop("1.8")}} [1][2][3]</td>
   <td>9.0</td>
   <td><a href="https://www.opera.com/docs/changelogs/windows/900/">9.0</a></td>
   <td><a href="https://developer.apple.com/library/safari/#documentation/AudioVideo/Conceptual/HTML-canvas-guide/Introduction/Introduction.html">2.0</a> [4]</td>
  </tr>
  <tr>
   <td><code>moz-opaque</code></td>
   <td>{{CompatNo}}</td>
   <td>{{CompatGeckoDesktop("1.9.1")}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Fonctionnalité</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>Android</th>
   <th>IE Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Support simple</td>
   <td>{{CompatGeckoMobile("1.8")}}</td>
   <td>{{CompatUnknown}}</td>
   <td>{{CompatUnknown}}</td>
   <td>{{CompatUnknown}}</td>
   <td>1.0</td>
  </tr>
  <tr>
   <td><code>moz-opaque</code></td>
   <td>{{CompatGeckoMobile("1.9.1")}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
  </tr>
 </tbody>
</table>
</div>

<h3 id="Notes_sp.C3.A9cifiques_aux_navigateurs">Notes spécifiques aux navigateurs</h3>

<h4 id="Firefox_(Gecko)">Firefox (Gecko)</h4>

<ul>
 <li>[1] Avant Gecko 5.0 {{geckoRelease("5.0")}}, la hauteur et la largeur du canvas étaient des entiers signés au lieu d'être des entiers non-signés.</li>
 <li>[2] Avant Gecko 6.0 {{geckoRelease("6.0")}}, un élément {{HTMLElement("canvas")}} avec une largeur ou une hauteur nulle était affiché avec les dimensions par défaut.</li>
 <li>[3] Avant Gecko 12.0 {{geckoRelease("12.0")}}, si JavaScript était désactivé, l'élément <code>&lt;canvas&gt;</code> était affiché au lieu de montrer le contenu alternatif à utiliser (ce qui est voulu dans la <a href="https://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html">spécification</a>). Désormais, quand JavaScript est désactivé, c'est le contenu de recours (<em>fallback</em>) qui est utilisé.</li>
</ul>

<h4 id="Safari">Safari</h4>

<ul>
 <li>[4] Bien que les premières versions de Safari ne rendaient pas la balise fermante obligatoire, la spécification indique que la balise fermante est obligatoire. Aussi, pour une meilleure compatibilité, on préfèrera ajouter la balise fermante.</li>
 <li>Les versions de Safari antérieures à la version 2.0 afficheront le contenu alternatif <em>en plus</em> du contenu de canvas (sauf à utiliser des feuilles de style pour le masquer). Heureusement, la population utilisant ces versions devient de plus en plus rare.</li>
</ul>

<h2 id="Voir_aussi">Voir aussi</h2>

<ul>
 <li><a href="/fr/docs/Web/HTML/Canvas">Le portail MDN sur l'élément canvas</a></li>
 <li><a href="/fr/docs/Tutoriel_canvas">Tutoriel Canvas</a></li>
 <li><a href="https://simon.html5.org/dump/html5-canvas-cheat-sheet.html">« <em>cheat sheet</em> » Canvas</a></li>
 <li><a href="/en-US/demos/tag/tech:canvas" title="demos/tag/tech:canvas/">Démos sur l'élément canvas</a></li>
</ul>
Revenir à cette révision