Tabelgerelateerde CSS-eigenschappen
Dit artikel legt tabelgerelateerde CSS-eigenschappen uit.
Je leert hoe je eigenschappen kunt gebruiken en schrijven voor tabelindelingen, randen, positionering van bijschriften, en meer.
YouTube Video
HTML voor Voorbeeldweergave
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>
Tabelindeling
table-layout
-eigenschap
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
is een CSS-eigenschap die de indelingsmethode van HTML-tabellen regelt. Met deze eigenschap kun je specificeren hoe de kolombreedtes van een tabel worden berekend.
-
In de
table-layout-auto
-klasse worden kolombreedtes bepaald op basis van de inhoud in elke cel. -
Kolombreedtes variëren afhankelijk van de inhoud, en cellen met lange inhoud maken de kolom breder.
-
De
table-layout-fixed
-klasse gebruikttable-layout: fixed
. -
De breedte van elke kolom wordt gelijk ingesteld en verandert niet, zelfs niet als de inhoud lang is.
Waarden van table-layout
1table {
2 table-layout: auto;
3}
4
5table {
6 table-layout: fixed;
7}
table-layout
heeft voornamelijk twee waarden: auto
en fixed
.
-
auto
(standaardwaarde):- Bij het specificeren van
auto
worden de kolombreedtes van de tabel automatisch aangepast op basis van de inhoud. - De browser leest alle inhoud van elke cel en bepaalt de breedte van elke kolom op basis van die inhoud.
- Dit kan resulteren in een tragere weergave van de gehele tabel.
- Bij het specificeren van
-
fixed
:- Bij het specificeren van
fixed
wordt de breedte van elke kolom bepaald door de breedte van de cellen in de eerste rij of door hetwidth
-attribuut. - De volledige tabel wordt onmiddellijk weergegeven en de kolombreedtes worden bepaald zonder alle inhoud te lezen.
- De prestaties verbeteren, zelfs als er veel data in de tabel staat.
- Bij het specificeren van
Verschil tussen table-layout: auto
en table-layout: fixed
- Met
auto
past de breedte van de tabel zich automatisch aan op basis van de inhoud. Een meer dynamische indeling is mogelijk, maar de prestaties kunnen verslechteren bij complexe tabellen. - Met
fixed
zijn de kolombreedtes vast, waardoor een consistente indeling behouden blijft, ongeacht de tabelinhoud. Hoewel de prestaties verbeteren, kan inhoud worden afgekapt als deze niet binnen de breedte past.
De eigenschap 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
is een CSS-eigenschap die bepaalt hoe de randen tussen tabelcellen worden weergegeven. Het wordt gebruikt om te definiëren hoe de randen tussen tabelcellen worden weergegeven.
-
Bij gebruik van
border-collapse: separate
zijn er afzonderlijke randen en ruimtes tussen de cellen. De ruimte tussen cellen wordt aangepast met de eigenschapborder-spacing
. In dit voorbeeld is er een ruimte van 10px tussen elke cel ingesteld. -
Bij gebruik van
border-collapse: collapse
worden de randen van aangrenzende cellen samengevoegd en weergegeven als een enkele rand. Als resultaat heeft de tabel een meer samenhangend ontwerp.
Zoals in dit voorbeeld heeft de eigenschap border-collapse
voornamelijk twee waarden: separate
en collapse
.
-
separate
(standaardwaarde):- Bij het specificeren van
separate
wordt elke celrand afzonderlijk getekend en is er ruimte tussen de cellen. - Het wordt gebruikt wanneer u de randen duidelijk wilt onderscheiden, omdat de celranden apart worden weergegeven.
- De ruimte tussen cellen kan worden aangepast met de eigenschap
border-spacing
.
- Bij het specificeren van
-
collapse
:- Bij het specificeren van
collapse
worden de randen van aangrenzende cellen samengevoegd en weergegeven als een enkele rand. - Aangezien de randen overlappen, heeft de hele tabel een uniforme uitstraling.
- De rijen en kolommen van de tabel worden netjes weergegeven, waardoor deze geschikt is voor een eenvoudiger ontwerp.
- Bij het specificeren van
De eigenschap 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}
De eigenschap border-spacing
is een CSS-eigenschap om de ruimte tussen cellen in een HTML-tabel op te geven. Het helpt de ruimte tussen tabelcellen aan te passen en de visuele marge te beheren. In dit voorbeeld wordt de celruimte toegevoegd als 5px
horizontaal en 20px
verticaal.
De eigenschap border-spacing
heeft alleen effect op tabellen waarbij border-collapse: separate;
is gespecificeerd. Als border-collapse: collapse;
is gespecificeerd, is deze eigenschap niet effectief.
Gebruik
Waarden voor de eigenschap border-spacing
worden opgegeven in pixels of andere lengteenheden. Het kan in de volgende twee formaten worden opgegeven:.
- Enkele waarde
1table {
2 border-spacing: 10px;
3}
- Bij het specificeren van een enkele waarde wordt de ruimte tussen rijen (boven en onder) en kolommen (links en rechts) ingesteld op dezelfde waarde.
In dit voorbeeld wordt een ruimte van 10px
toegevoegd tussen alle cellen.
- Twee waarden
1table {
2 border-spacing: 10px 20px;
3}
- Bij het specificeren van twee waarden stelt de eerste waarde de horizontale ruimte tussen kolommen in, en de tweede waarde de verticale ruimte tussen rijen.
In dit voorbeeld is de ruimte tussen kolommen 10px
, en de ruimte tussen rijen 20px
.
De eigenschap 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}
De eigenschap caption-side
is een CSS-eigenschap die wordt gebruikt om te specificeren waar het bijschrift (<caption>
-element) van een HTML-tabel wordt weergegeven.
-
Met de specificatie
top
wordt het bijschrift bovenaan de tabel weergegeven.- Dit is de standaardinstelling, en bijschriften worden vaak gebruikt als titel of beschrijving van de tabel.
-
Met de specificatie
bottom
wordt het bijschrift onderaan de tabel weergegeven.- Gebruik dit wanneer je uitleg onder de tabel wilt plaatsen.
De eigenschap 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}
De eigenschap empty-cells
is een CSS-eigenschap om te bepalen of lege cellen in een HTML-tabel worden weergegeven. Standaard tonen lege cellen in een tabel ook randen, maar je kunt deze eigenschap gebruiken om de weergave aan te passen.
- Met de specificatie
show
worden ook lege cellen weergegeven. Dit is het standaardgedrag. - Met de specificatie
hide
worden lege cellen onzichtbaar gemaakt. Randen en achtergronden van de cellen worden niet getekend.
Je kunt het bovenstaande artikel volgen met Visual Studio Code op ons YouTube-kanaal. Bekijk ook het YouTube-kanaal.