box-sizing
Omaisuus CSS ohjaa miten laatikkomallista käsitellään elementille se koskee.
.module ( box-sizing: border-box; )
Yksi yleisimmistä tavoista käyttää sitä on soveltaa sitä kaikkiin sivun elementteihin, mukaan lukien pseudoelementit:
*, *::before, *::after ( box-sizing: border-box; )
Tätä kutsutaan usein universaaliksi laatikoiksi, ja se on hyvä tapa työskennellä! Asetamasi (kirjaimellinen) width
on leveys, jonka saat ilman, että sinun on suoritettava henkistä matematiikkaa ja hallittava monimutkaisuutta, joka tulee useista ominaisuuksista tulevista leveydestä. Meillä on jopa laatikkokokoinen tietoisuuspäivä täällä.
Arvot
content-box
: oletusarvo. Leveys- ja korkeusarvot koskevat vain elementin sisältöä. Pehmuste ja reunus lisätään laatikon ulkopuolelle.padding-box
: Leveys- ja korkeusarvot koskevat elementin sisältöä ja sen täytettä. Raja lisätään laatikon ulkopuolelle. Tällä hetkellä vain Firefox tukeepadding-box
arvoa.border-box
: Leveys- ja korkeusarvot koskevat sisältöä, täytettä ja reunusta.inherit
: perii ylätason elementin laatikon koon.
Esimerkki
Tässä esimerkkikuvassa verrataan oletusarvoa content-box
(ylä) ja border-box
(ala):


Kuvien välinen punainen viiva edustaa elementtien leveysarvoa. Huomaa, että oletusarvoinen elementti box-sizing: content-box;
ylittää ilmoitetun leveyden, kun täyte ja reunus lisätään sisältöruudun ulkopuolelle, kun taas elementti, jolla on box-sizing: border-box;
sovellettu, sopii täysin ilmoitetun leveyden sisään.
Laatikon koon käyttäminen
Oletetaan, että asetat elementin arvoksi width: 100px; padding: 20px; border: 5px solid black;
. Oletuksena tuloksena olevan laatikon leveys on 150 kuvapistettä. Tämä johtuu siitä, että laatikoiden oletuskokomalli on se content-box
, joka käyttää elementin ilmoitettua leveyttä vain sen sisältöön ja sijoittaa täytteen ja reunan elementin laatikon ulkopuolelle. Tämä lisää elementin viemää tilaa.
Jos vaihdat box-sizing
kohtaan padding-box
, pehmuste työnnetään elementin laatikon sisään. Sitten laatikon leveys olisi 110 kuvapistettä, sisäpuolella 20 kuvapistettä ja ulkopuolelta reunaa 10 kuvapistettä. Jos haluat laittaa pehmusteen ja reunuksen laatikon sisään, voit käyttää sitä border-box
. Laatikko olisi tällöin 100 kuvapistettä leveä - 10 kuvapistettä reunaa ja 20 kuvapistettä pehmustetta työnnetään elementin laatikon sisään.
Demo
Katso CSS-Tricksin (@ css-tricks) laatikkokokoarvojen kynän vertailu CodePenistä.
Liittyvät
width
height
padding
border
Selaimen tuki
Kromi | Safari | Firefox | Ooppera | IE | Android | iOS |
---|---|---|---|---|---|---|
Minkä tahansa *† | 3 * † | 1 ‡ | 7 * | 8 * | 2,1 * † | Minkä tahansa * |
* padding-box
ei tueta
† vanhemmat versiot vaativat -webkit
etuliitteen (Chrome 1-9, Safari 3-5, Android 2.1-3.x)
‡ -moz
etuliite vaaditaan versioon 28 asti, sitä ei ole esivalittu vuodesta 29 lähtien.