Propriétés CSS liées aux tableaux
Cet article explique les propriétés CSS liées aux tableaux.
Vous pouvez apprendre comment utiliser et écrire des propriétés pour les mises en page des tableaux, les bordures, les positions des légendes, et plus encore.
YouTube Video
HTML pour l'aperçu
css-table.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-table.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>Table Related CSS Properties</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Table Related Properties</h2>
20 </header>
21 <article>
22 <h3>table-layout</h3>
23 <section>
24 <header><h4>table-layout: auto</h4></header>
25 <section class="sample-view">
26 <table class="table-layout-auto">
27 <thead>
28 <tr>
29 <th>Column 1</th>
30 <th>Column 2</th>
31 <th>Column 3</th>
32 </tr>
33 </thead>
34 <tbody>
35 <tr>
36 <td>Short</td>
37 <td>Some longer content here</td>
38 <td>Content</td>
39 </tr>
40 <tr>
41 <td>Another short one</td>
42 <td>This is a much longer piece of text to demonstrate the auto layout</td>
43 <td>Short</td>
44 </tr>
45 </tbody>
46 </table>
47 </section>
48 </section>
49 <section>
50 <header><h4>table-layout: fixed</h4></header>
51 <section class="sample-view">
52 <table class="table-layout-fixed">
53 <thead>
54 <tr>
55 <th>Column 1</th>
56 <th>Column 2</th>
57 <th>Column 3</th>
58 </tr>
59 </thead>
60 <tbody>
61 <tr>
62 <td>Short</td>
63 <td>Some longer content here</td>
64 <td>Content</td>
65 </tr>
66 <tr>
67 <td>Another short one</td>
68 <td>This is a much longer piece of text to demonstrate the fixed layout</td>
69 <td>Short</td>
70 </tr>
71 </tbody>
72 </table>
73 </section>
74 </section>
75 </article>
76 <article>
77 <h3>border-collapse</h3>
78 <section>
79 <header><h4>border-collapse: separate</h4></header>
80 <section class="sample-view">
81 <table class="border-collapse-separate">
82 <thead>
83 <tr>
84 <th>Header 1</th>
85 <th>Header 2</th>
86 <th>Header 3</th>
87 </tr>
88 </thead>
89 <tbody>
90 <tr>
91 <td>Cell 1</td>
92 <td>Cell 2</td>
93 <td>Cell 3</td>
94 </tr>
95 <tr>
96 <td>Cell 4</td>
97 <td>Cell 5</td>
98 <td>Cell 6</td>
99 </tr>
100 </tbody>
101 </table>
102 </section>
103 </section>
104 <section>
105 <header><h4>border-collapse: collapse</h4></header>
106 <section class="sample-view">
107 <table class="border-collapse-collapse">
108 <thead>
109 <tr>
110 <th>Header 1</th>
111 <th>Header 2</th>
112 <th>Header 3</th>
113 </tr>
114 </thead>
115 <tbody>
116 <tr>
117 <td>Cell 1</td>
118 <td>Cell 2</td>
119 <td>Cell 3</td>
120 </tr>
121 <tr>
122 <td>Cell 4</td>
123 <td>Cell 5</td>
124 <td>Cell 6</td>
125 </tr>
126 </tbody>
127 </table>
128 </section>
129 </section>
130 </article>
131 <article>
132 <h3>border-spacing</h3>
133 <section>
134 <header><h4>border-spacing: 5px 20px</h4></header>
135 <section class="sample-view">
136 <table class="border-spacing-example">
137 <thead>
138 <tr>
139 <th>Header 1</th>
140 <th>Header 2</th>
141 <th>Header 3</th>
142 </tr>
143 </thead>
144 <tbody>
145 <tr>
146 <td>Cell 1</td>
147 <td>Cell 2</td>
148 <td>Cell 3</td>
149 </tr>
150 <tr>
151 <td>Cell 4</td>
152 <td>Cell 5</td>
153 <td>Cell 6</td>
154 </tr>
155 </tbody>
156 </table>
157 </section>
158 </section>
159 </article>
160 <article>
161 <h3>caption-side</h3>
162 <section>
163 <header><h4>caption-side: top</h4></header>
164 <section class="sample-view">
165 <table>
166 <caption class="caption-side-top">
167 Table Caption on Top
168 </caption>
169 <thead>
170 <tr>
171 <th>Header 1</th>
172 <th>Header 2</th>
173 <th>Header 3</th>
174 </tr>
175 </thead>
176 <tbody>
177 <tr>
178 <td>Data 1</td>
179 <td>Data 2</td>
180 <td>Data 3</td>
181 </tr>
182 <tr>
183 <td>Data 4</td>
184 <td>Data 5</td>
185 <td>Data 6</td>
186 </tr>
187 </tbody>
188 </table>
189 </section>
190 </section>
191 <section>
192 <header><h4>caption-side: bottom</h4></header>
193 <section class="sample-view">
194 <table>
195 <caption class="caption-side-bottom">
196 Table Caption on Bottom
197 </caption>
198 <thead>
199 <tr>
200 <th>Header 1</th>
201 <th>Header 2</th>
202 <th>Header 3</th>
203 </tr>
204 </thead>
205 <tbody>
206 <tr>
207 <td>Data 1</td>
208 <td>Data 2</td>
209 <td>Data 3</td>
210 </tr>
211 <tr>
212 <td>Data 4</td>
213 <td>Data 5</td>
214 <td>Data 6</td>
215 </tr>
216 </tbody>
217 </table>
218 </section>
219 </section>
220 </article>
221 <article>
222 <h3>empty-cells</h3>
223 <section>
224 <header><h4>empty-cells: show</h4></header>
225 <section class="sample-view">
226 <table class="empty-cells-show">
227 <tr>
228 <th>Header 1</th>
229 <th>Header 2</th>
230 <th>Header 3</th>
231 </tr>
232 <tr>
233 <td>Data 1</td>
234 <td></td> <!-- Empty cell -->
235 <td>Data 3</td>
236 </tr>
237 <tr>
238 <td>Data 4</td>
239 <td></td> <!-- Empty cell -->
240 <td>Data 6</td>
241 </tr>
242 </table>
243 </section>
244 </section>
245 <section>
246 <header><h4>empty-cells: hide</h4></header>
247 <section class="sample-view">
248 <table class="empty-cells-hide">
249 <tr>
250 <th>Header 1</th>
251 <th>Header 2</th>
252 <th>Header 3</th>
253 </tr>
254 <tr>
255 <td>Data 1</td>
256 <td></td> <!-- Empty cell -->
257 <td>Data 3</td>
258 </tr>
259 <tr>
260 <td>Data 4</td>
261 <td></td> <!-- Empty cell -->
262 <td>Data 6</td>
263 </tr>
264 </table>
265 </section>
266 </section>
267 </article>
268 </main>
269</body>
270</html>
Mise en page du tableau
Propriété table-layout
1table {
2 width: 100%;
3}
4
5th, td {
6 border: 1px solid black;
7 padding: 10px;
8}
9
10table.table-layout-auto {
11 border-collapse: collapse;
12 table-layout: auto;
13}
14
15table.table-layout-fixed {
16 border-collapse: collapse;
17 table-layout: fixed;
18}
19
20table.table-layout-fixed th {
21 width: 33.33%; /* Distribute width equally among 3 columns */
22}
table-layout
est une propriété CSS qui contrôle la méthode de mise en page des tableaux HTML. Cette propriété permet de spécifier comment calculer les largeurs des colonnes d'un tableau.
-
Dans la classe
table-layout-auto
, les largeurs des colonnes sont déterminées en fonction du contenu de chaque cellule. -
Les largeurs des colonnes varient en fonction du contenu, et les cellules avec un contenu long élargissent la colonne.
-
La classe
table-layout-fixed
utilisetable-layout: fixed
. -
La largeur de chaque colonne est définie de manière égale, et la largeur ne change pas même si le contenu est long.
Valeurs de table-layout
1table {
2 table-layout: auto;
3}
4
5table {
6 table-layout: fixed;
7}
table-layout
a principalement deux valeurs : auto
et fixed
.
-
auto
(valeur par défaut) :- Spécifier
auto
ajuste automatiquement les largeurs des colonnes du tableau en fonction du contenu. - Le navigateur lit tout le contenu de chaque cellule et détermine la largeur de chaque colonne en fonction de ce contenu.
- Cela peut entraîner un rendu plus lent de l'ensemble du tableau.
- Spécifier
-
fixed
:- Spécifier
fixed
signifie que la largeur de chaque colonne est déterminée par la largeur des cellules de la première ligne ou par l'attributwidth
. - Le tableau entier est dessiné immédiatement et les largeurs des colonnes sont déterminées sans lire tout le contenu.
- Les performances s'améliorent même lorsqu'il y a beaucoup de données dans le tableau.
- Spécifier
Différence entre table-layout: auto
et table-layout: fixed
- Avec
auto
, la largeur du tableau s'ajuste automatiquement en fonction du contenu. Une disposition plus dynamique est possible, mais les performances peuvent se dégrader avec des tableaux complexes. - Avec
fixed
, les largeurs de colonne sont fixes, maintenant une disposition cohérente quel que soit le contenu du tableau. Bien que les performances s'améliorent, le contenu peut être tronqué s'il ne s'adapte pas à la largeur.
La propriété border-collapse
1table.border-collapse-separate {
2 border-collapse: separate;
3 border-spacing: 10px; /* Set space between cells */
4}
5
6table.border-collapse-collapse {
7 border-collapse: collapse;
8}
border-collapse
est une propriété CSS qui contrôle comment les bordures entre les cellules du tableau sont affichées. Elle est utilisée pour définir comment les bordures entre les cellules du tableau sont affichées.
-
En utilisant
border-collapse: separate
, il y aura des bordures distinctes et des espaces entre les cellules. L'espacement entre les cellules est ajusté avec la propriétéborder-spacing
. Dans cet exemple, un espace de 10px est défini entre chaque cellule. -
En utilisant
border-collapse: collapse
, les bordures des cellules adjacentes sont fusionnées et affichées comme une seule bordure. En conséquence, le tableau a un design plus cohérent.
Comme dans cet exemple, la propriété border-collapse
a principalement deux valeurs : separate
et collapse
.
-
separate
(valeur par défaut) :- En spécifiant
separate
, chaque bordure de cellule est dessinée séparément et il y a un espace entre les cellules. - Elle est utilisée lorsque vous voulez distinguer clairement les bordures, car les bordures des cellules sont affichées séparément.
- L'espace entre les cellules peut être ajusté avec la propriété
border-spacing
.
- En spécifiant
-
collapse
:- En spécifiant
collapse
, les bordures des cellules adjacentes sont fusionnées et affichées comme une seule bordure. - Comme les bordures se superposent, l'ensemble du tableau a une apparence unifiée.
- Les lignes et colonnes du tableau sont affichées proprement, ce qui le rend adapté à un design plus simple.
- En spécifiant
La propriété border-spacing
1table.border-spacing-example {
2 border-collapse: separate;
3
4 /* Set 5px spacing between columns and 20px spacing between rows */
5 border-spacing: 5px 20px;
6}
La propriété border-spacing
est une propriété CSS permettant de spécifier l'espacement entre les cellules dans un tableau HTML. Elle aide à ajuster l'espace entre les cellules du tableau et à contrôler la marge visuelle. Dans cet exemple, un espacement des cellules de 5px
horizontalement et 20px
verticalement est ajouté.
La propriété border-spacing
n’a d’effet que sur les tableaux où border-collapse: separate;
est spécifié. Si border-collapse: collapse;
est spécifié, cette propriété est inefficace.
Utilisation
Les valeurs de la propriété border-spacing
sont spécifiées en pixels ou en d’autres unités de longueur. Elle peut être spécifiée dans les deux formats suivants:.
- Valeur unique
1table {
2 border-spacing: 10px;
3}
- Lorsqu’une valeur unique est spécifiée, l’espacement entre les lignes (haut et bas) et les colonnes (gauche et droite) est défini à la même valeur.
Dans cet exemple, un espace de 10px
est ajouté entre toutes les cellules.
- Deux valeurs
1table {
2 border-spacing: 10px 20px;
3}
- Lorsqu’on spécifie deux valeurs, la première détermine l’espacement horizontal entre les colonnes, et la seconde, l’espacement vertical entre les lignes.
Dans cet exemple, l’espace entre les colonnes est de 10px
, et l’espace entre les lignes est de 20px
.
La propriété caption-side
1caption.caption-side-top {
2 caption-side: top; /* Display the caption at the top of the table */
3 font-weight: bold;
4 font-size: 1.2em;
5 margin-bottom: 10px;
6 background-color: #ccc;
7}
8
9caption.caption-side-bottom {
10 caption-side: bottom; /* Display the caption at the bottom of the table */
11 font-weight: bold;
12 font-size: 1.2em;
13 margin-top: 10px;
14 background-color: #ccc;
15}
La propriété caption-side
est une propriété CSS utilisée pour spécifier où l’en-tête (<caption>
) d’un tableau HTML est affiché.
-
Indiquer
top
affiche l’en-tête en haut du tableau.- Ceci est le réglage par défaut, et les en-têtes sont souvent utilisés comme titre ou description du tableau.
-
Indiquer
bottom
affiche l’en-tête en bas du tableau.- Utilisez cette option si vous souhaitez placer des explications sous le tableau.
Propriété empty-cells
1table.empty-cells-show {
2 empty-cells: show; /* Display empty cells */
3}
4
5table.empty-cells-hide {
6 empty-cells: hide; /* Display empty cells */
7}
La propriété empty-cells
est une propriété CSS pour contrôler si les cellules vides dans un tableau HTML sont affichées. Par défaut, les cellules vides d’un tableau affichent également des bordures, mais vous pouvez utiliser cette propriété pour contrôler leur affichage.
- Indiquer
show
affichera également les cellules vides. C’est le comportement par défaut. - Indiquer
hide
rend les cellules vides invisibles. Les bordures et les arrière-plans des cellules ne seront pas dessinés.
Vous pouvez suivre l'article ci-dessus avec Visual Studio Code sur notre chaîne YouTube. Veuillez également consulter la chaîne YouTube.