Hvordan CSS-boksstørrelsesegenskaben styrer størrelsen på elementerne
CSS boksstørrelsesegenskab bruges til at justere eller kontrollere størrelsen på ethvert element, der accepterer et width
eller height
. Det specificerer, hvordan man beregner det samlede width
og height
af dette element.
I denne artikel vil jeg forklare, hvordan CSS- box-sizing
egenskaben kan bruges til at kontrollere størrelsen på elementer.
Forudsætninger
- Grundlæggende CSS-viden.
- Kode editor.
- Webbrowser.
Uden egenskaben CSS-størrelse
Hvis du ser på kodestykket nedenfor, vil du bemærke, at der er to div
elementer med det samme width
og height
- men det første div
ser ud til at være større end det andet div
.
Det er ret mærkeligt, ikke? For hvorfor skulle nogen tildele samme bredde og højde til to div
elementer, medmindre de ideelt set ønskede, at disse elementer skulle være de samme?
Fortsæt med at læse for at finde ud af, hvorfor de to div
elementer er forskellige ?? ??? ?.
Som standard beregner CSS-boksmodellen ethvert element, der accepterer en bredde eller højde i dette format:
- bredde + polstring + kant = gengivet eller vist bredde på elementets boks.
- højde + polstring + kant = gengivet eller vist højde på elementets boks.
Dette betyder, at når du tilføjer padding
eller border
til elementet, vil størrelsen på et element virke større end den størrelse, der oprindeligt blev tildelt det. Dette skyldes, at indholdet af dette element indeholder width
og height
egenskaber, men omfatter ikke padding
eller border
ejendom.
Forstår du det stadig ikke endnu? Se på kodestykket nedenfor for at se den faktiske beregning.
.first-box { width: 200px; height: 100px; border: 8px solid blue; padding: 20px; background: yellow; /* Total width: 200px + (2 * 20px) + (2 * 8px) = 256px Total height: 100px + (2 * 20px) + (2 * 8px) = 156px */ } .second-box { width: 200px; height: 100px; border: 8px solid blue; background: yellow; /* Total width: 200px + (2 * 8px) = 216px Total height: 100px + (2 * 8px) = 116px */ }
Som det ses i kodestykket, tilføjer CSS padding
og border
til det width
og height
allerede specificerede. Det viser den samlede værdi som elementets størrelse og ignorerer derved den faktiske størrelse, du har tildelt div
.
Med CSS boksstørrelses egenskab
Med box-sizing
ejendommen kan standardadfærden, der er forklaret ovenfor, ændres.
Brug den samme kode, lad os tilføje box-sizing
ejendommen og indstille den til border-box
og se, om vi faktisk kan kontrollere størrelsen.
Du må have bemærket, at de to div
elementer nu har samme størrelse.
Syntaks
box-sizing:content-box; box-sizing:border-box;
indhold-boks
Dette er standardopførelsen for egenskaben for boksstørrelse. content-box
tager ikke hensyn til width
og height
angivet for et element.
Det vil sige, at hvis du indstiller et element width
til 200 pixels , skal du indstille rammen til 8 pixels og polstringen til 20 pixels , størrelsen på border
og padding
føjes til den endelige gengivne bredde. Dette gør elementet bredere end 200 pixels .
div{ box-sizing:content-box; width: 200px; border: 8px solid blue; padding: 20px; background: yellow; /* Total width: 200px + (2 * 20px) + (2 * 8px) = 256px*/ }
Som det ses i kodestykket ovenfor, er størrelsen på dette div
element automatisk steget til 256 pixel, selv når det oprindeligt var indstillet til 200 pixel.
border-box
Når du indstiller box-sizing
ejendommen til border-box
, fortæller den browseren at tage højde for enhver border
og padding
tildeles elementets bredde og højde.
Det vil sige, hvis du indstiller et element width
til 200 pixels , vil de 200 pixels indeholde enhver kant eller polstring, du tilføjer, og indholdsboksen krymper for at absorbere den ekstra bredde.
div{ box-sizing:border-box; width: 200px; border: 8px solid blue; padding: 20px; background: yellow; /* Total width: 200px - (2 * 20px) - (2 * 8px) = 144px*/ }
Som det ses i kodestykket ovenfor, er størrelsen på dette div
element automatisk reduceret til 144 px, selv når det oprindeligt var indstillet til 200 pixels.
Lad os flette begge kodestykker og se nøjagtigt, hvordan feltet ser ud med content-box
og border-box
.
Konklusion
Med CSS-boksstørrelsesegenskaben har du muligheden for at indstille, hvordan størrelsen på elementerne i din kode beregnes.
Ifølge MDN er det ofte nyttigt at indstille box-sizing
til, border-box
når du lægger elementer. Dette gør det meget lettere at håndtere elementernes størrelser og eliminerer generelt en række faldgruber, du kan snuble på, mens du lægger dit indhold ud.
På den anden side, når du bruger position: relative
eller position: absolute
, bruger box-sizing: content-box
det, at placeringsværdierne er relative til indholdet og uafhængige af ændringer i kant- og polstringsstørrelser. Nogle gange vil du måske have dette.
Det var alt folkens! Jeg håber, det var nyttigt. I så fald del denne artikel og følg mig på Twitter.