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,
250px
stelt 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-padding
worden zowelmargin
alspadding
gespecificeerd. Er ismargin
-ruimte buiten de solide rand enpadding
-ruimte binnen de solide rand. - In de klasse
margin-only
wordt alleenmargin
gespecificeerd. Je kunt zien dat het blauwe gebied kleiner is in vergelijking met de klassemargin-padding
omdat er geenpadding
-ruimte binnen de solide rand is. - In de klasse
no-margin
zijn zowelmargin
alspadding
ingesteld 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
margin
stelt 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. Dewidth
is 300px, met een linker- en rechter-padding
van in totaal 40px en een linker- en rechter-border
van in totaal 20px, wat een totaal van 360px maakt. - In
border-box
is de breedte van het element 300px.Padding
enborder
zijn 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-box
stabiliseert de lay-out. Het toevoegen vanpadding
ofborder
verandert 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-box
vaak 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-sizing
bepaalt ofpadding
enborder
worden inbegrepen in dewidth
enheight
van een element.- Het gebruik van
border-box
maakt 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
visibility
eigenschap kan worden ingesteld op de volgende waarden:.
visible
- Het specificeren van
visible
zal het element tonen. Dit is de standaardwaarde.
hidden
- Het specificeren van
hidden
zal het element verbergen, maar de lay-out ruimte blijft gereserveerd.
collapse
collapse
wordt 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
hidden
en blijft de indelingsruimte behouden.
inherit
- Het specificeren van
inherit
zal de waarde van de eigenschapvisibility
van het bovenliggende element overnemen.
Verschillen tussen visibility
en display
Er zijn de volgende verschillen tussen visibility
en display
.
visibility: hidden
verbergt het element maar behoudt de ruimte en indeling.display: none
verwijdert 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.