--- title: <display-box> slug: Web/CSS/display-box tags: - CSS - Reference - Type de donnée translation_of: Web/CSS/display-box --- <div>{{CSSRef}}</div> <p>Ces mots-clés définissent si un élément génère des boîtes d'affichage ou aucune.</p> <h2 id="Syntaxe">Syntaxe</h2> <dl> <dt><code>contents</code> {{Experimental_Inline}}</dt> <dd>L'élément ne produit pas de boîte qui lui soit spécifique. Il est remplacé par sa pseudo-boîte et les boîtes de ses enfants. On notera que le module de spécification CSS Display de niveau 3 définit la façon dont la valeur <code>contents</code> affecte les éléments « inhabituels » tels que les éléments remplacés. Voir <a href="https://drafts.csswg.org/css-display/#unbox">Appendix B: Effects of display: contents on Unusual Elements</a> pour plus de détails.<br> <br> À l'heure actuelle, en raison d'un bug, les éléments ciblés par une règle avec <code>display: contents</code> sont retirés de l'arbre d'accessibilité et ne sont donc pas parcourus par les lecteurs d'écran<em>.</em></dd> <dt><code>none</code></dt> <dd>Désactive l'affichage d'un élément afin que celui-ci n'ait aucun effet sur la disposition du document (le document est affiché comme si l'élément n'existait pas). Tous les éléments descendants voient également leur affichage désactivé.<br> Si on souhaite que l'élément ne soit pas affiché mais occupe néanmoins un espace, il faudra utiliser la propriété {{CSSxRef("visibility")}}.</dd> </dl> <h3 id="Syntaxe_formelle">Syntaxe formelle</h3> {{CSSSyntax}} <h2 id="Exemples">Exemples</h2> <h3 id="display_none"><code>display: none</code></h3> <h4 id="CSS">CSS</h4> <pre class="brush: css">p.secret { display: none; }</pre> <h4 id="HTML">HTML</h4> <pre class="brush: html"><p>Texte visible</p> <p class="secret">Texte invisible</p></pre> <h4 id="Résultat">Résultat</h4> <p>{{EmbedLiveSample("display_none", "100%", 60)}}</p> <h3 id="display_contents"><code>display: contents</code></h3> <p>Dans cet exemple, l'élément {{htmlelement("div")}} externe a une bordure rouge sur 2 pixels et mesure 300 pixels de large. Toutefois, cet élément est ciblé avec <code>display: contents</code> et l'élément <code><div></code> ne sera pas affiché tel quel : la bordure et la largeur ne s'appliqueront pas et l'élément fils sera affiché comme si le parent n'avait pas existé.</p> <h4 id="CSS_2">CSS</h4> <pre class="brush: css">.outer { border: 2px solid red; width: 300px; display: contents; } .outer > div { border: 1px solid green; } </pre> <h4 id="HTML_2">HTML</h4> <pre class="brush: html"><div class="outer"> <div>Inner div.</div> </div> </pre> <h4 id="Résultat_2">Résultat</h4> <p>{{EmbedLiveSample("Display_contents", 300, 60)}}</p> <h2 id="Accessibilité">Accessibilité</h2> <p>Via leur implémentation, la plupart des navigation retireront un élément de <a href="/fr/docs/Apprendre/a11y/What_is_accessibility">l'arbre d'accessibilité</a> si celui-ci reçoit <code>display: contents</code>. Cet élément (ainsi que ses descendants pour certains navigateurs) ne sera plus annoncé par les outils de lecture d'écran. Ce comportement est incorrect selon <a href="https://drafts.csswg.org/css-display/#the-display-properties">la spécification CSSWG</a>.</p> <ul> <li><a href="https://hiddedevries.nl/en/blog/2018-04-21-more-accessible-markup-with-display-contents">Améliorer l'accessibilité du contenu avec <code>display: contents</code>, par Hidde de Vries (en anglais)</a></li> <li><a href="http://adrianroselli.com/2018/05/display-contents-is-not-a-css-reset.html"><code>display: contents</code> n'est pas un outil de réinitialisation CSS, par Adrian Roselli (en anglais)</a></li> </ul> <h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> <h3 id="Prise_en_charge_contents">Prise en charge <code>contents</code></h3> <p>{{Compat("css.properties.display.contents", 10)}}</p> <h2 id="Voir_aussi">Voir aussi</h2> <ul> <li>{{CSSxRef("display")}} <ul> <li>{{CSSxRef("<display-outside>")}}</li> <li>{{CSSxRef("<display-inside>")}}</li> <li>{{CSSxRef("<display-listitem>")}}</li> <li>{{CSSxRef("<display-internal>")}}</li> <li>{{CSSxRef("<display-legacy>")}}</li> </ul> </li> <li><a href="http://adrianroselli.com/2018/05/display-contents-is-not-a-css-reset.html"><code>display: contents</code> n'est pas un outil de réinitialisation CSS (en anglais)</a></li> <li><a href="https://hiddedevries.nl/en/blog/2018-04-21-more-accessible-markup-with-display-contents">Un balisage plus accessible avec <code>display: contents</code> (en anglais)</a></li> </ul>