CSS har sin box model, som man behöver känna till för att verkligen få ihop responsiv desig. Ibland gå man på pumpen och då finns en räddare i nöden, Box sizing. Men det lilla css undret kan du på ett enkelt sätt ändra hur box model fungerar, och till exempel flytta på marginaler så att de istället placeras inne i boxen istället för utanför.

Tänk dig till exempel ett input-fält där du vill ha 4px padding inne i fältet men du vill kunna ha fältets totala bredd till 100% (för att flöda responsivt). Ett tänkbart sätt är att välja 2% padding och 96% bredd, vilket resulterar i att paddingen varierar mellan olika enheter vilket kan vara osnyggt. Men med box-sizing kan man enkelt vända på steken och lägga sin padding inne i boxen, och lungt kunna använda 100% för den totala bredden.
textarea, input[type="text"], input[type="password"], input[type="email"], input[type="url"], input[type="search"] {
@include box-sizing;
padding: 4px;
width: 100%;
}
och en box-sizing mixin kan se ut på detta sätt.
/*
* Box-sizing
*
*
* Usage:
* @include box-sizing;
* @include box-sizing($type = "border");
*
* Acceptable values are border, content, and padding - content is the default W3C model
*
*/
@mixin box-sizing($type: border) {
box-sizing: #{$type}-box;
-webkit-box-sizing: #{$type}-box;
-moz-box-sizing: #{$type}-box;
}
Jag har blivit smått förälskad i