Gli ultimi tutorial di sviluppo web
 

CSS3 Box Sizing


CSS3 Box Dimensionamento

Il CSS3 box-sizing proprietà permette di includere l'imbottitura e il bordo in larghezza totale di un elemento e l'altezza.


Supporto per il browser

I numeri nella tabella indicano la prima versione del browser che supporta pienamente la proprietà.

Numeri seguiti da -webkit- o -moz- specificano la prima versione che ha lavorato con un prefisso.

Proprietà
box-sizing 10.0
4.0 -webkit-
8.0 29.0
2.0 -moz-
5.1
3.1 -webkit-
9.5

Senza il CSS3 box-sizing Proprietà

Per impostazione predefinita, la larghezza e l'altezza di un elemento è calcolato in questo modo:

larghezza + padding + border = larghezza effettiva di un elemento
altezza + padding + border = altezza effettiva di un elemento

Questo significa: Quando si imposta la larghezza / altezza di un elemento, l'elemento spesso appaiono più grande di quanto si è impostato (a causa di confine e padding dell'elemento vengono aggiunti alla larghezza / altezza specificata dell'elemento).

L'illustrazione seguente mostra due <div> elementi con la stessa larghezza e altezza specificati:

Questo div è più piccolo (larghezza è 300px e altezza è 100px).

Questo div è più grande (larghezza è anche 300px e altezza è 100px).

I due <div> elementi sopra finire con diverse dimensioni del risultato (perché div2 ha specificato una imbottitura):

Esempio

.div1 {
    width: 300px;
    height: 100px;
    border: 1px solid blue;
}

.div2 {
    width: 300px;
    height: 100px;
    padding: 50px;
    border: 1px solid red;
}
Prova tu stesso "

Così, per un lungo periodo di tempo gli sviluppatori web hanno specificato un più piccolo valore della larghezza di quello che volevano, perché dovevano sottrarre l'imbottitura e confini.

Con CSS3, il box-sizing proprietà risolve questo problema.


Con il CSS3 box-sizing Proprietà

Il CSS3 box-sizing proprietà permette di includere l'imbottitura e il bordo in larghezza totale di un elemento e l'altezza.

Se si imposta box-sizing: border-box; su un padding elemento e di frontiera sono inclusi nella larghezza e l'altezza:

Entrambi i div hanno le stesse dimensioni ora!

Evviva!

Ecco lo stesso esempio di cui sopra, con box-sizing: border-box; aggiunto ad entrambi i <div> elementi:

Esempio

.div1 {
    width: 300px;
    height: 100px;
    border: 1px solid blue;
    box-sizing: border-box;
}

.div2 {
    width: 300px;
    height: 100px;
    padding: 50px;
    border: 1px solid red;
    box-sizing: border-box;
}
Prova tu stesso "

Poiché il risultato di utilizzare il box-sizing: border-box; è molto meglio, molti sviluppatori vogliono tutti gli elementi sulle loro pagine per lavorare in questo modo.

Il seguente codice garantisce che tutti gli elementi sono dimensionati in questo modo più intuitivo. Molti browser utilizzano già box-sizing: border-box; per molti elementi del modulo (ma non tutti - che è il motivo per cui gli ingressi e le aree di testo un aspetto diverso a width: 100%;).

L'applicazione di questo a tutti gli elementi è sicuro e saggio:

Esempio

* {
    box-sizing: border-box;
}
Prova tu stesso "