Attribut HTML universel : contenteditable
Baseline
Widely available
*
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
L'attribut universel contenteditable est un attribut énuméré qui indique si l'élément doit être éditable par l'utilisateur·ice. Si c'est le cas, le navigateur modifie son widget pour permettre l'édition.
Exemple interactif
<blockquote contenteditable="true">
<p>Éditez ce contenu pour ajouter votre propre citation</p>
</blockquote>
<cite contenteditable="true">-- Écrivez votre propre nom ici</cite>
blockquote {
background: #eeeeee;
border-radius: 5px;
margin: 16px 0;
}
blockquote p {
padding: 15px;
}
cite {
margin: 16px 32px;
font-weight: bold;
}
blockquote p::before {
content: "\201C";
}
blockquote p::after {
content: "\201D";
}
[contenteditable="true"] {
caret-color: red;
}
Valeurs
Les valeurs autorisées pour cet attribut sont :
true, ou la chaîne de caractères vide qui indiquent que l'élément est éditable.false, qui indique que l'élément ne peut pas être édité.plaintext-only, qui indique que le texte brut de l'élément est éditable, mais que la mise en forme riche est désactivée.
Si l'attribut est donné sans valeur, comme <label contenteditable>Exemple d'étiquette</label>, sa valeur est traitée comme une chaîne de caractères vide.
Si cet attribut est absent ou si sa valeur est invalide, sa valeur est héritée de son élément parent : l'élément est donc éditable si son parent l'est.
Notez que bien que ses valeurs autorisées incluent true et false, cet attribut est un attribut énuméré et non un attribut booléen.
Vous pouvez définir la couleur utilisée pour dessiner le caret d'insertion du texte avec la propriété CSS caret-color.
Les éléments rendus éditables, et donc interactifs, à l'aide de l'attribut contenteditable peuvent être sélectionnés. Ils participent à la navigation clavier séquentielle. Cependant, les éléments avec l'attribut contenteditable imbriqués dans d'autres éléments contenteditable ne sont pas ajoutés à la séquence de tabulation par défaut. Vous pouvez ajouter les éléments contenteditable imbriqués à la séquence de navigation clavier en spécifiant la valeur tabindex (tabindex="0").
Si du contenu est collé dans un élément avec contenteditable="true", toute la mise en forme est conservée. Si du contenu est collé dans un élément avec contenteditable="plaintext-only", toute la mise en forme est supprimée.
Exemples
>Coller du contenu dans contenteditable
Cet exemple comporte deux éléments <div> avec contenteditable, le premier avec la valeur true et le second avec la valeur plaintext-only. Copiez le contenu ci-dessous et collez-le dans chaque div pour voir leurs effets.
HTML
<h2>Pasting areas</h2>
<section class="pasting">
<div class="wrapper">
<h3>contenteditable="true"</h3>
<div contenteditable="true"></div>
</div>
<div class="wrapper">
<h3>contenteditable="plaintext-only"</h3>
<div contenteditable="plaintext-only"></div>
</div>
</section>
Spécifications
| Specification |
|---|
| HTML> # attr-contenteditable> |
Compatibilité des navigateurs
Voir aussi
- Tous les attributs universels
- Les propriétés DOM
HTMLElement.contentEditableetHTMLElement.isContentEditable - La propriété CSS
caret-color - L'évènement
inputpour l'objet DOMHTMLElement