CSS-eigenschappen gerelateerd aan het boxmodel
Dit artikel legt de CSS-eigenschappen uit die verband houden met het boxmodel.
Je kunt leren over de toepassingsmogelijkheden en syntaxis van eigenschappen zoals breedte, hoogte en marge.
YouTube Video
HTML voor Voorbeeldweergave
css-box.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>Box Model Related CSS Properties</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-box.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>Box Model Related CSS Properties</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Box Model Related Properties</h2>
20 </header>
21 <article>
22 <h3>width and height</h3>
23 <section>
24 <header><h4>width: 250px; height: 150px;</h4></header>
25 <section class="sample-view">
26 <div class="width-height-fixed">Fixed size(250px,150px)</div>
27 </section>
28 </section>
29 <section>
30 <header><h4>width: 50%; height: 50%;</h4></header>
31 <section class="sample-view">
32 <div class="width-height-percent">Percentage size(50%,50%)</div>
33 </section>
34 </section>
35 <section>
36 <header><h4>width: min-content; height: min-content;</h4></header>
37 <section class="sample-view">
38 <div class="width-height-min-content">This is an example of min-content.</div>
39 </section>
40 </section>
41 <section>
42 <header><h4>width: max-content; height: max-content;</h4></header>
43 <section class="sample-view">
44 <div class="width-height-max-content">This is an example of max-content.</div>
45 </section>
46 </section>
47 <section>
48 <header><h4>width: fit-content; max-width: 150px;</h4></header>
49 <section class="sample-view">
50 <div class="width-height-fit-content">This is an example of fit-content.</div>
51 </section>
52 </section>
53 </article>
54 <article>
55 <h3>margin and padding</h3>
56 <section style="height: auto;">
57 <h4>Margin & padding</h4>
58 <header><h4>margin: 20px; padding: 15px;</h4></header>
59 <section class="sample-view">
60 <div class="margin-padding">margin & padding</div>
61 </section>
62 </section>
63 <section style="height: auto;">
64 <h4>Margin only(no padding)</h4>
65 <header><h4>margin: 20px; padding: 0;</h4></header>
66 <section class="sample-view">
67 <div class="margin-only">margin only</div>
68 </section>
69 </section>
70 <section style="height: auto;">
71 <h4>No margin & padding example</h4>
72 <header><h4>margin: 0; padding: 0;</h4></header>
73 <section class="sample-view">
74 <div class="no-margin">no margin & padding</div>
75 </section>
76 </section>
77 </article>
78 <article>
79 <h3>box-sizing</h3>
80 <section style="height: auto;">
81 <header><h4>box-sizing: content-box</h4></header>
82 <section class="sample-view">
83 <div style="width: 300px;">width: 300px</div>
84 <div class="content-box">Content Box</div>
85 <div style="width: 360px;">width: 360px</div>
86 </section>
87 </section>
88 <section>
89 <header><h4>box-sizing: border-box</h4></header>
90 <section class="sample-view">
91 <div style="width: 300px;">width: 300px</div>
92 <div class="border-box">Border Box</div>
93 </section>
94 </section>
95 </article>
96 <article>
97 <h3>visibility</h3>
98 <section>
99 <header><h4>visibility: visible</h4></header>
100 <section class="sample-view">
101 <div class="visibility-visible">Visible Box</div>
102 </section>
103 <header><h4>visibility: hidden</h4></header>
104 <section class="sample-view">
105 <div class="visibility-hidden">Hidden Box</div>
106 </section>
107 <header><h4>visibility: collapse</h4></header>
108 <section class="sample-view">
109 <div class="visibility-collapse">Collapsed Box (Hold layout space)</div>
110 </section>
111 <header><h4>HTML</h4></header>
112 <pre><div class="visibility-collapse">Collapsed Box (Hold layout space)</div></pre>
113 <header><h4>visibility: collapse</h4></header>
114 <section class="sample-view">
115 <table style="height: 200px; margin: auto;">
116 <tr class="visibility-collapse">
117 <td>Cell 1 (Remove layout space)</td>
118 </tr>
119 <tr>
120 <td>Cell 2</td>
121 </tr>
122 </table>
123 </section>
124 <header><h4>HTML</h4></header>
125<pre>
126<table style="height: 200px; margin: auto;">
127 <tr class="visibility-collapse">
128 <td>Cell 1 (Remove layout space)</td>
129 </tr>
130 <tr>
131 <td>Cell 2</td>
132 </tr>
133</table>
134</pre>
135 </section>
136 </article>
137 </main>
138</body>
139</html>Gerelateerd aan het boxmodel
width- en height-eigenschappen
1.width-height-fixed {
2 width: 250px;
3 height: 150px;
4 background-color: lightblue;
5}
6
7.width-height-percent {
8 width: 50%;
9 height: 50%;
10 background-color: lightblue;
11}
12
13.width-height-min-content {
14 width: min-content;
15 height: min-content;
16 background-color: lightblue;
17}
18
19.width-height-max-content {
20 width: max-content;
21 height: max-content;
22 background-color: lightblue;
23}
24
25.width-height-fit-content {
26 width: fit-content;
27 max-width: 150px;
28 background-color: lightblue;
29}De width- en height-eigenschappen zijn CSS-eigenschappen die worden gebruikt om de breedte en hoogte van een element te specificeren. Deze worden met name gebruikt bij het instellen van de grootte van blokelementen, afbeeldingen, video's, enz.
- In de
width-height-fixed-klasse worden vaste waarden gespecificeerd voor breedte en hoogte. - In de
width-height-percent-klasse worden procentuele waarden gespecificeerd voor breedte en hoogte.
Waarden die kunnen worden gespecificeerd
De width- en height-eigenschappen kunnen de volgende waarden hebben.
auto: Standaardgrootte. Past de grootte automatisch aan ten opzichte van het bovenliggende element.- Vaste waarden: Geeft een vaste breedte op in pixels, procenten of relatieve eenheden.(ex:
100px,50%,10rem)- Bijvoorbeeld,
250pxstelt de grootte van het element in op 250 pixels, en50%stelt het in op 50% van de grootte van het bovenliggende element.
- Bijvoorbeeld,
min-content: Past zich aan aan de minimale grootte van de inhoud.max-content: Past zich aan aan de maximale grootte van de inhoud.fit-content: Past de grootte van het element aan op basis van de grootte van de inhoud.
Minimale en maximale waarden specificeren
min-width, max-width, min-height en max-height zijn CSS-eigenschappen die worden gebruikt om groottebeperkingen in te stellen voor de breedte en hoogte van een element. Met deze eigenschappen kun je ervoor zorgen dat een element binnen een specifiek groottebereik blijft.
margin- en padding-eigenschappen
1.margin-padding {
2 margin: 20px; /* Margin outside the element */
3 padding: 15px; /* Padding inside the element */
4 border: 1px solid #333;
5 background-color: lightblue;
6 width: 300px;
7 height: 40px;
8}
9
10.margin-only {
11 margin: 20px; /* Margin outside the element */
12 padding: 0; /* No padding inside the element */
13 border: 1px solid #333;
14 background-color: lightblue;
15 width: 300px;
16 height: 40px;
17}
18
19.no-margin {
20 margin: 0; /* No margin outside the element */
21 padding: 0; /* No padding inside the element */
22 border: 1px solid #333;
23 background-color: lightblue;
24 width: 300px;
25 height: 40px;
26}Margin en padding zijn eigenschappen die in CSS worden gebruikt om de buitenste en binnenste ruimte van elementen binnen het boxmodel te regelen. Ze worden gebruikt om de ruimte tussen elementen aan te passen en om het uiterlijk netjes te maken.
- In de klasse
margin-paddingworden zowelmarginalspaddinggespecificeerd. Er ismargin-ruimte buiten de solide rand enpadding-ruimte binnen de solide rand. - In de klasse
margin-onlywordt alleenmargingespecificeerd. Je kunt zien dat het blauwe gebied kleiner is in vergelijking met de klassemargin-paddingomdat er geenpadding-ruimte binnen de solide rand is. - In de klasse
no-marginzijn zowelmarginalspaddingingesteld op 0. Je kunt zien dat het blauwe gebied helemaal naar links is geduwd omdat er geenmargin-ruimte buiten de solide rand is.
Op deze manier stelt de eigenschap margin de buitenruimte van een element in en past de afstand tussen elementen aan. Aan de andere kant stelt de eigenschap padding de binnenruimte van een element in en past de afstand tussen de inhoud en de rand aan.
margin-eigenschap
-
De eigenschap
marginstelt de buitenruimte (margin) van een element in. Het wordt gebruikt om ruimte te creëren tussen aangrenzende elementen. De volgende waarden kunnen worden gespecificeerd:. -
Vaste waarden: Je kunt de grootte van de marge specificeren in pixels, relatieve eenheden (em, rem) of procenten.(ex:
10px,1em,5%) -
auto: Handig voor het centreren van block-elementen. Wanneer de breedte is gespecificeerd, worden de linker- en rechtermarges automatisch aangepast. -
Positieve en negatieve waarden: Positieve waarden vergroten de ruimte, terwijl negatieve waarden elementen dichter bij elkaar brengen.
Afkortingsnotatie:
1div.one-value {
2 margin: 20px;
3}
4
5div.two-value {
6 /* top-bottom left-right */
7 margin: 10px 5px;
8}
9
10div.three-value {
11 /* top left-right bottom */
12 margin: 10px 5px 15px;
13}
14
15div.four-value {
16 /* top right bottom left */
17 margin: 10px 5px 15px 20px;
18}De eigenschap margin kan één tot vier waarden accepteren.
- Eén waarde: Geldt voor alle zijden.
- Twee waarden: De eerste geldt voor boven- en onderkant, de tweede voor links en rechts.
- Drie waarden: Geldt in de volgorde boven, links en rechts, onder.
- Vier waarden: Geldt in de volgorde boven, rechts, onder, links.
padding-eigenschap
Functie:
-
De
padding-eigenschap stelt de binnenspatiëring (padding) van een element in. Het wordt gebruikt om ruimte te creëren tussen de inhoud en de rand van een element. De volgende waarden kunnen worden gespecificeerd:. -
Vaste waarden: Geeft de grootte van de padding aan.(ex:
10px,1em,5%) -
Negatieve waarden kunnen niet worden gebruikt. Padding-waarden kunnen alleen worden opgegeven als positieve getallen.
Afkortingsnotatie:
1div.one-value {
2 padding: 20px;
3}
4
5div.two-value {
6 /* top-bottom left-right */
7 padding: 10px 5px;
8}
9
10div.three-value {
11 /* top left-right bottom */
12 padding: 10px 5px 15px;
13}
14
15div.four-value {
16 /* top right bottom left */
17 padding: 10px 5px 15px 20px;
18}Net als bij margin kun je één tot vier waarden specificeren.
- Eén waarde: Geldt voor alle zijden.
- Twee waarden: De eerste geldt voor boven- en onderkant, de tweede voor links en rechts.
- Drie waarden: Geldt in de volgorde boven, links en rechts, onder.
- Vier waarden: Geldt in de volgorde boven, rechts, onder, links.
box-sizing-eigenschap
1/* Default content-box : 300px + 2 * 20px + 2 * 10px = 360px */
2.content-box {
3 width: 300px;
4 padding: 20px;
5 border: 10px solid blue;
6 box-sizing: content-box;
7 background-color: lightblue;
8}
9
10/* Using border-box */
11.border-box {
12 width: 300px;
13 padding: 20px;
14 border: 10px solid red;
15 box-sizing: border-box;
16 background-color: lightcoral;
17}box-sizing is een CSS-eigenschap die bepaalt hoe de breedte en hoogte van een element worden berekend.
- In de
content-box-klasse is de breedte van het element 360px. Dewidthis 300px, met een linker- en rechter-paddingvan in totaal 40px en een linker- en rechter-bordervan in totaal 20px, wat een totaal van 360px maakt. - In
border-boxis de breedte van het element 300px.Paddingenborderzijn inbegrepen in de gespecificeerdewidth.
Waarden van box-sizing
Er zijn voornamelijk twee waarden voor box-sizing: content-box en border-box, waarbij content-box de standaardwaarde is.
content-box
1.content-box {
2 box-sizing: content-box;
3 width: 200px;
4 padding: 20px;
5 border: 10px solid black;
6}
7/*
8260px = 200px(width) +
920px(padding-left) + 20px(padding-right) +
1010px(border-left) + 10px(border-right)
11*/Wanneer content-box is opgegeven, worden alleen de inhoudsbreedte en -hoogte bepaald door width en height. Padding en border worden eraan toegevoegd om de uiteindelijke grootte te bepalen. Met andere woorden, width en height verwijzen alleen naar het inhoudsgebied.
In dit voorbeeld is de opgegeven width 200px, maar met de breedten van de linker- en rechter-padding en border erbij, is de uiteindelijke werkelijke breedte van het element 260px.
border-box
1.border-box {
2 width: 200px;
3 padding: 20px;
4 border: 10px solid black;
5 box-sizing: border-box;
6}Wanneer border-box is opgegeven, worden width en height berekend inclusief padding en border. Met andere woorden, de opgegeven width en height worden de totale grootte van de inhoud, padding en border.
In dit geval is de opgegeven width 200px, en aangezien padding en border ook zijn inbegrepen, blijft de uiteindelijke werkelijke breedte van het element 200px. padding en border worden daarin aangepast.
Samenvatting van de verschillen in box-sizing
| Eigenschap | Berekeningsmethode | Werkelijke breedteberekening |
|---|---|---|
content-box (standaard) |
width heeft alleen betrekking op de inhoud. padding en border worden toegevoegd. |
width + padding + border |
border-box |
width omvat alles (inhoud, padding, border) |
De gespecificeerde width wordt ongewijzigd gebruikt. |
Voordelen van box-sizing
-
Het gebruik van
border-boxstabiliseert de lay-out. Het toevoegen vanpaddingofborderverandert de gespecificeerde grootte niet, waardoor berekeningen eenvoudig blijven. -
Het is nuttig bij het maken van flexibele lay-outs. In responsieve ontwerpen of complexe lay-outs wordt
border-boxvaak gebruikt om onverwachte grootteverschillen te voorkomen.
Hoe border-box wereldwijd toe te passen
1*,
2*::before,
3*::after {
4 box-sizing: border-box;
5}Door CSS op deze manier in te stellen, kun je border-box toepassen op alle elementen om onverwachte grootteveranderingen te voorkomen.
Samenvatting
box-sizingbepaalt ofpaddingenborderworden inbegrepen in dewidthenheightvan een element.- Het gebruik van
border-boxmaakt grootteberekeningen eenvoudiger en is geschikt voor responsief ontwerp.
visibility eigenschap
1.visibility-visible {
2 visibility: visible;
3}
4
5.visibility-hidden {
6 visibility: hidden;
7}
8
9.visibility-collapse {
10 visibility: collapse;
11}De visibility eigenschap wordt gebruikt om elementen te tonen of te verbergen, maar in tegenstelling tot de display eigenschap beïnvloedt het de lay-out, zelfs als het element verborgen is. Het verbergt alleen het element, behoudt de oorspronkelijke positie en grootte zonder de lay-out van andere elementen te beïnvloeden.
Basis Syntax
1element {
2 visibility: value;
3}value: Een waarde die de zichtbaarheid van het element bepaalt.
Waarde types
- De
visibilityeigenschap kan worden ingesteld op de volgende waarden:.
visible
- Het specificeren van
visiblezal het element tonen. Dit is de standaardwaarde.
hidden
- Het specificeren van
hiddenzal het element verbergen, maar de lay-out ruimte blijft gereserveerd.
collapse
collapsewordt voornamelijk gebruikt voor tabelrijen of kolommen. Het element wordt onzichtbaar en de ruimte wordt ook genegeerd. Wanneer toegepast op tabelrijen of -kolommen, worden de verborgen rijen of kolommen volledig uit de indeling verwijderd.- Wanneer het echter wordt gebruikt op normale blok- of inline-elementen, met uitzondering van tabelelementen, gedraagt het zich als
hiddenen blijft de indelingsruimte behouden.
inherit
- Het specificeren van
inheritzal de waarde van de eigenschapvisibilityvan het bovenliggende element overnemen.
Verschillen tussen visibility en display
Er zijn de volgende verschillen tussen visibility en display.
visibility: hiddenverbergt het element maar behoudt de ruimte en indeling.display: noneverwijdert het element volledig uit de indeling, waardoor andere elementen die ruimte kunnen innemen.
Je kunt het bovenstaande artikel volgen met Visual Studio Code op ons YouTube-kanaal. Bekijk ook het YouTube-kanaal.