aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/css/display-box/index.html
blob: 532fa82e11717bf473c301659e2ea442d6b5b23c (plain)
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">&lt;p&gt;Texte visible&lt;/p&gt;
&lt;p class="secret"&gt;Texte invisible&lt;/p&gt;</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>&lt;div&gt;</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 &gt; div {
  border: 1px solid green;
}
</pre>

<h4 id="HTML_2">HTML</h4>

<pre class="brush: html">&lt;div class="outer"&gt;
  &lt;div&gt;Inner div.&lt;/div&gt;
&lt;/div&gt;
</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("&lt;display-outside&gt;")}}</li>
   <li>{{CSSxRef("&lt;display-inside&gt;")}}</li>
   <li>{{CSSxRef("&lt;display-listitem&gt;")}}</li>
   <li>{{CSSxRef("&lt;display-internal&gt;")}}</li>
   <li>{{CSSxRef("&lt;display-legacy&gt;")}}</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>