Proprietà CSS relative al modello a scatola
Questo articolo spiega le proprietà CSS relative al modello a scatola.
Puoi apprendere i casi d'uso e la sintassi per proprietà come larghezza, altezza e margine.
YouTube Video
HTML per Anteprima
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>
Relativo al Modello a Scatola
Proprietà width
e height
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}
Le proprietà width
e height
sono proprietà CSS utilizzate per specificare la larghezza e l'altezza di un elemento. Queste sono particolarmente utilizzate per definire le dimensioni di elementi a blocco, immagini, video, ecc.
- Nella classe
width-height-fixed
vengono specificati valori fissi per larghezza e altezza. - Nella classe
width-height-percent
vengono specificati valori percentuali per larghezza e altezza.
Valori che possono essere specificati
Le proprietà width
e height
possono avere i seguenti valori.
auto
: Dimensione predefinita. Regola automaticamente la dimensione in base all'elemento padre.- Valori fissi: Specifica una larghezza fissa in pixel, percentuali o unità relative.(ex:
100px
,50%
,10rem
)- Ad esempio,
250px
imposta la dimensione dell'elemento a 250 pixel, e50%
la imposta al 50% della dimensione dell'elemento padre.
- Ad esempio,
min-content
: Si adatta alla dimensione minima del contenuto.max-content
: Si adatta alla dimensione massima del contenuto.fit-content
: Regola la dimensione dell'elemento in modo appropriato in base alla dimensione del contenuto.
Specificare Valori Minimi e Massimi
min-width
, max-width
, min-height
e max-height
sono proprietà CSS utilizzate per impostare limiti di dimensione relativi alla larghezza e all'altezza di un elemento. Utilizzando queste proprietà, puoi garantire che un elemento rimanga entro un intervallo di dimensioni specifico.
Proprietà margin
e padding
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
e padding
sono proprietà utilizzate in CSS per controllare lo spazio esterno ed interno degli elementi all'interno del modello a scatola. Vengono utilizzate per regolare lo spazio tra gli elementi e per sistemare l'aspetto visivo.
- Nella classe
margin-padding
, sono specificati siamargin
chepadding
. C'è spazio dimargin
all'esterno del bordo solido e spazio dipadding
all'interno del bordo solido. - Nella classe
margin-only
, viene specificato solo ilmargin
. Si può notare che l'area blu è più piccola rispetto alla classemargin-padding
perché non c'è spazio dipadding
all'interno del bordo solido. - Nella classe
no-margin
, siamargin
chepadding
sono impostati a 0. Si può notare che l'area blu è spinta completamente a sinistra perché non c'è spazio dimargin
all'esterno del bordo solido.
In questo modo, la proprietà margin
definisce lo spazio esterno di un elemento, regolando la distanza tra gli elementi. D'altra parte, la proprietà padding
definisce lo spazio interno di un elemento, regolando la distanza tra il contenuto e il bordo.
Proprietà margin
-
La proprietà
margin
imposta lo spazio esterno (margin) di un elemento. Viene utilizzata per creare spazio tra elementi adiacenti. Si possono specificare i seguenti valori:. -
Valori fissi: Puoi specificare la dimensione del margin in pixel, unità relative (em, rem) o percentuali.(ex:
10px
,1em
,5%
) -
auto
: Utile per centrare gli elementi a blocco. Quando viene specificata la larghezza, regola automaticamente i margini sinistro e destro. -
Valori positivi e negativi: I valori positivi ampliano lo spazio, mentre i valori negativi avvicinano gli elementi.
Notazione abbreviata:
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}
La proprietà margin
può accettare da uno a quattro valori.
- Un valore: Si applica a tutti i lati.
- Due valori: Il primo si applica alla parte superiore e inferiore, il secondo a sinistra e destra.
- Tre valori: Si applica nell'ordine superiore, sinistra e destra, inferiore.
- Quattro valori: Si applica nell'ordine di sopra, destra, sotto, sinistra.
Proprietà padding
Funzione:
-
La proprietà
padding
imposta lo spazio interno (padding) di un elemento. Viene utilizzata per creare spazio tra il contenuto e il bordo di un elemento. Si possono specificare i seguenti valori:. -
Valori fissi: Specifica la dimensione del padding.(ex:
10px
,1em
,5%
) -
Valori negativi non possono essere usati. I valori del padding possono essere specificati solo come numeri positivi.
Notazione abbreviata:
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}
Come per il margin
, puoi specificare da uno a quattro valori.
- Un valore: Si applica a tutti i lati.
- Due valori: Il primo si applica alla parte superiore e inferiore, il secondo a sinistra e destra.
- Tre valori: Si applica nell'ordine superiore, sinistra e destra, inferiore.
- Quattro valori: Si applica nell'ordine di sopra, destra, sotto, sinistra.
Proprietà box-sizing
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
è una proprietà CSS che controlla come vengono calcolati larghezza e altezza di un elemento.
- Nella classe
content-box
, la larghezza dell'elemento è 360px. Lalarghezza
è 300px, con ilpadding
a sinistra e a destra che totalizzano 40px e ilborder
a sinistra e a destra che totalizzano 20px, per un totale di 360px. - Nel
border-box
, la larghezza dell'elemento è 300px.padding
eborder
sono inclusi nellalarghezza
specificata.
Valori di box-sizing
Ci sono principalmente due valori per box-sizing
: content-box
e border-box
, con content-box
come valore predefinito.
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*/
Quando viene specificato content-box
, solo la larghezza e l'altezza del contenuto sono impostate da width
e height
. padding
e border
vengono aggiunti per determinare la dimensione finale. In altre parole, width
e height
si riferiscono solo all'area del contenuto.
In questo esempio, la larghezza
specificata è 200px, ma con le larghezze del padding
e del border
a sinistra e a destra aggiunte, la larghezza effettiva finale dell'elemento è 260px.
border-box
1.border-box {
2 width: 200px;
3 padding: 20px;
4 border: 10px solid black;
5 box-sizing: border-box;
6}
Quando viene specificato border-box
, width
e height
vengono calcolati includendo padding
e border
. In altre parole, la larghezza
e l'altezza specificate diventano la dimensione totale del contenuto, del padding
e del border
.
In questo caso, il width
specificato è 200px e, poiché anche padding
e border
sono inclusi, la larghezza effettiva finale dell'elemento rimane 200px. padding
e border
sono regolati al suo interno.
Riepilogo delle differenze di box-sizing
Proprietà | Metodo di Calcolo | Calcolo della Larghezza Effettiva |
---|---|---|
content-box (predefinito) |
width si riferisce solo al contenuto. Vengono aggiunti padding e border . |
width + padding + border |
border-box |
width include tutto (contenuto, padding , border ) |
Il width specificato viene utilizzato così com'è. |
Vantaggi di box-sizing
-
L'uso di
border-box
stabilizza il layout. L'aggiunta dipadding
oborder
non modifica la dimensione specificata, rendendo i calcoli semplici. -
È utile per creare layout flessibili. Nei design responsivi o nei layout complessi,
border-box
viene spesso utilizzato per evitare fluttuazioni impreviste delle dimensioni.
Come applicare border-box
globalmente
1*,
2*::before,
3*::after {
4 box-sizing: border-box;
5}
Impostando il CSS in questo modo, è possibile applicare border-box
a tutti gli elementi per evitare cambiamenti imprevisti delle dimensioni.
Riepilogo
box-sizing
controlla sepadding
eborder
sono inclusi nelwidth
e nellaheight
di un elemento.- L'uso di
border-box
semplifica i calcoli delle dimensioni ed è adatto al design responsivo.
Proprietà visibility
1.visibility-visible {
2 visibility: visible;
3}
4
5.visibility-hidden {
6 visibility: hidden;
7}
8
9.visibility-collapse {
10 visibility: collapse;
11}
La proprietà visibility
viene utilizzata per mostrare o nascondere elementi, ma a differenza della proprietà display
, influisce sul layout anche quando l'elemento è nascosto. Nasconde solo l'elemento, mantenendo la sua posizione e dimensione originali senza influire sul layout degli altri elementi.
Sintassi di Base
1element {
2 visibility: value;
3}
value
: Un valore che specifica la visibilità dell'elemento.
Tipi di valori
- La proprietà
visibility
può essere impostata sui seguenti valori:.
visible
- Specificando
visible
, l'elemento verrà visualizzato. Questo è il valore predefinito.
hidden
- Specificando
hidden
, l'elemento sarà nascosto ma lo spazio del suo layout verrà preservato.
collapse
collapse
è utilizzato principalmente per righe o colonne di una tabella. L'elemento diventa invisibile e anche il suo spazio viene ignorato. Quando applicato a righe o colonne di una tabella, le righe o colonne nascoste vengono completamente rimosse dal layout.- Tuttavia, quando viene utilizzato su elementi blocco o inline normali, eccetto gli elementi della tabella, si comporta come
hidden
e lo spazio del layout viene mantenuto.
inherit
- Specificando
inherit
si erediterà il valore della proprietàvisibility
dall'elemento genitore.
Differenze tra visibility
e display
Esistono le seguenti differenze tra visibility
e display
.
visibility: hidden
nasconde l'elemento ma mantiene il suo spazio e il layout.display: none
rimuove completamente l'elemento dal layout, permettendo agli altri elementi di occupare tale spazio.
Puoi seguire l'articolo sopra utilizzando Visual Studio Code sul nostro canale YouTube. Controlla anche il nostro canale YouTube.