1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
---
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>
<pre class="syntaxbox">{{CSSSyntax}}</pre>
<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>
<div class="hidden">Le tableau de compatibilité de cette page a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à consulter <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> et à nous envoyer une <em>pull request</em>.</div>
<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>
|